We Love Android – Telegram
We Love Android
632 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Forwarded from Android Good Reads (Egor Tolstoy)
Роман Елизаров написал лонгрид про то, с какими проблемами сталкиваются дизайнеры Kotlin и как они оптимизируют язык с учетом реальных потребностей его пользователей:
0️⃣Поиск компромисса между null safety и интеропом с Java
🧱 Дизайн корутин с учетом необходимости интеграции их с уже написанными библиотеками
🤝Трейдоффы в системе вывода типов, усложняющие язык, но упрощающие частые юзкейсы разработчиков
🤏Как небольшие улучшения в языке тащат за собой много сложностей
👍1
Forwarded from Android Good Reads (Egor Tolstoy)
Контекстные ресиверы – это новая языковая фича, прототип которой был выпущен в Kotlin 1.6.20. С ее помощью можно неявно передавать в функцию дополнительные параметры. В статье разбирается пример того, как контекстные ресиверы помогают сделать запутанную бизнес-логику более понятной и корректной.
Forwarded from Android Guards
Сколько было разговоров о том, что Fuchsia OS заменит Android и начнется новая эра? И где теперь эта Fuchsia OS? Оказалось, что она все еще активно разрабатывается и похоже не собирается умирать. Чтобы не прозозохать все на свете и быть готовым, когда Fuchsia OS придет в ваш дом - рекомендую прочитать этот серьезный материал. Из статьи вы узнаете:
- Что из себя представлет Fuchsia OS и как выглядит ее модель безопасности
- Как собрать ОС из исходников и написать приложение для нее
- Как выглядит ядро ОС и как его подебажить с помощью GDB и QEMU
- Как разрабатывать эксплойты для ядра Fuchsia OS (Zirocon)

Под чай с печеньками прочитать не выйдет. Придется включать мозги 👨‍🔬
😁1
Forwarded from Mobile Native ️️
Многомодульный BDSM: стоит ли внедрять Gradle модули и какие типы модулей бывают?

Достаточно полезная статья про многомодульность, в которой рассматриваются актуальные вопросы и проблемы: стоит ли внедрять Gradle модули, для чего это нужно, какие типы модулей бывают, связи и зависимости модулей и т.д.

Читать (Ru)
Forwarded from Android Live 🤖
​​Как мы уменьшили ANR в 3 раза
#android

Ошибка "Приложение не отвечает" — весьма неприятное событие для пользователя, ведь в этом случае он вынужден закрывать приложение и делать незавершённое действие с начала.
Кроме этого, эти ошибки довольно непросто повторить и поправить, ведь они могут то появляться, то исчезать, а также иметь зависимость от устройств.

Вот неплохая статья, которая описывает то, откуда вообще появляются ANR и то, как с ними бороться.
Автор говорит, что они ощутимо снизили процент этих ошибок в своём приложении, а также значительно улучшили время старта приложения.
Forwarded from Android Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
#compose

Lazy Grid layouts in Compose

Примеры настройки LazyGrid в различных вариациях, будет полезно если не знали о возможностях
Forwarded from Mobile Native ️️
19 Things to Know About Kotlin Flow — A Quick Note

Статья-заметка, 19 пунктов о которых нужно знать про Kotlin Flow.

Читать (En)
Forwarded from Android Live 🤖
​​Parallax Effect в Jetpack Compose
#compose

Попалась красивая реализация эффекта параллакса, которая написана на Jetpack Compose.
Не уверен на 100%, что вам есть где использовать этот эффект в приложении, но любопытно посмотреть на саму реализацию. Тем более, на столь популярном в последнее время Compose.

@Composable элементы меняют своё положение на основе ориентации устройства и приходящих данных с SensorManager. Далее, создаётся DisposableEffect, который используется для репозиционирования Image.

Автор добавил немного модификаторов для тени и карточки. В итоге получился приятный и красивый эффект.
Чуть больше деталей реализации, ну и, конечно, примеры кода можно найти тут. 🤓
👍1
Forwarded from Android Good Reads (Egor Tolstoy)
Uber рассказывают, как они используют ApplicationExitInfo API, чтобы детектить Application Not Responding события. По сравнению с другими способами, таким образом получается детектить больше ANR и получать полную информацию о стектрейсах.
Forwarded from Android Good Reads (Egor Tolstoy)
И еще про Uber. Смотрите, как выглядит их ферма из сотней Pixel девайсов. Она используется для всех видов тестирования – ручного, автотестов, перфоманса.
#compose

Jetpack Compose: Quick tips to avoid recomposition

Советы по тому как уменьшить количество рекомпозиций в Jetpack Compose, что позволит увеличить производительность UI. Советы:
👉 Переиспользуйте лямбды или используйте ссылки на методы
👉 Используйте обертку над List
👉 Логируйте рекомпозицию
👉 Анализируйте с помощью Compose Compile Metrics
👍1
Forwarded from Android Live 🤖
​​How to write the best Usecase/Interactors ever!
#android

Попалась на глаза неплохая статья, которая рассказывает о принципах написания корректных UseCases. Если вы совсем не знакомы с тем, что это за слой архитектуры, то стоит ознакомиться с этой статьёй.

ℹ️ ВообщеUseCase — весьма полезный класс, который сильно облегчает взаимодействие между Repository и ViewModel. Правда, существует много разных подходов, связанных с корректным управлением жизненным циклом этого UseCase.

🤔 Автор рассказывает о том, как лучше сделать базовый класс для ваших UseCase, а также как с наименьшим количеством повторяющегося кода запускать, показывать индикатор загрузки и отменять запущенные UseCase.

🖖 Идея с CoroutinesUseCaseRunner удобная, так что рекомендую попробовать подобный подход в своих проектах.
Занимательный пост. За 4 месяца чуваки выпустили первую версию STEPN. Ну и вот рассказали, с какими трудностями столкнулись. Про решения там без конкретики, да :С
За ссылку скажем спасибо @istima.

#gps #blockchain #gamedev
Forwarded from Android Broadcast
#compose

Jetpack Compose under the hood: Touch Events (5 мин)

Из статьи вы узнаете как происходит обработка касания экрана в Composе. Полезно знать чтобы делать крутые штуки
Forwarded from Android Broadcast
#compose

Diving Into Compose — Lessons Learned While Building Maps Compose (7 мин)

Google сделали библиотеку Maps Compose - обертку над MapView для Compose. Авторы библиотеки делятся то как происходила адаптация, какие изменения пришлось вносить и пр. опыт, который получили в результате создания
Достаточно содержательный доклад с прошедшей конференции Android Makers 2022 о создании собственного UI-фреймворка Apex от Romain Guy и Chet Haase.

В основе построения пользовательского интерфейса был использован подход Entity Component System, часто применяемый в геймдеве. Каждый элемент UI-фреймворка представляется в виде простой сущности, которой можно добавить некоторое поведение или свойство с помощью отдельных компонентов.

В процессе доклада авторы показывают, как можно реализовать собственные сущности и компоненты, а также детально раскрывают то, как происходит итоговая отрисовка иерархии сущностей на Android с помощью Choreographer.

https://www.youtube.com/watch?v=4U9B0qMxIc0