Mobile Native ️️ – Telegram
Mobile Native ️️
5.61K subscribers
1.13K photos
20 videos
3 files
1.28K links
Полезные материалы по мобильной разработке. Статьи, подборки, нововведения, анонсы.

Пробустить канал → https://news.1rj.ru/str/mobile_native?boost

Автор: @artemiygreg
iOS / Swift: @swift_tips
Библиотеки и инструменты: @mobile_dev_tools
Митапы: @meetup_today
Download Telegram
Edge-to-edge в Android: опыт внедрения и рекомендации по тестированию

Ребята из Авито рассказывают про свой опыт внедрения edge-to-edge в мобильное приложение Avito.

👉 Что такое edge-to-edge
👉 Причины поддержки edge-to-edge
👉 Feature-toggle для безопасного перехода
👉 Обработка WindowInsets на экранах
👉 Обработка цветов системных панелей
👉 Обработка клавиатуры
👉 OptOut-флаг
👉 Как выбрать девайсы для тестирования?
👉 На что стоит обратить внимание при тестировании
👉 Примеры из практики
👉 Заключение

Читать (Ru)
👍85🔥4
Stop Writing If-Else Trees: Use the State Pattern Instead

Полезная статья, в которой автор рассказывает как избавиться от ифчиков с помощью шаблона State, тем самым сделав свой код чище и логически понятней.

👉 How the State Pattern Works
👉 Why State Pattern Over Enums and Flags?
👉 Pros and Cons of the State Pattern
👉 Implementing the State Pattern in Dart (Phone Mode Example)
👉 Limitations and Trade-Offs

Читать (En)
4👍4🔥3
С Днём Победы!!!
С Великим Праздником, друзья!
🕊2923👍14🙏11🎃8
Мечтают ли андроиды о Robolectric? Разбираем фреймворк по косточкам

Давненько на канале не было постов, решил немного отдохнуть и перезагрузиться. Чутка отдохнул, а вот перезагрузиться не получилось 😂. Поэтому, разбираю избранное и плавно возвращаюсь в публикациям.

Довольно подробная статья про Robolectric: что это такое, как устроен под капотом, как работает с Android‑компонентами без эмулятора, проблемы и т.д.

Читать (Ru)
👍63🔥3👏1
16 things to know for Android developers at Google I/O 2025

Краткий обзор некоторых анонсов с Google I/O 2025.

🟢Building intelligent apps with Generative AI
🟢One app, every screen: think adaptive and unlock 500 million screens
🟢Material 3 Expressive: design for intuition and emotion
🟢Smarter widgets, engaging live updates
🟢Enhanced Camera & Media: low light boost and battery savings
🟢Build next-gen app experiences for Cars
🟢Build for Android XR's expanding ecosystem with Developer Preview 2 of the SDK
🟢Express yourself on Wear OS: meet Material Expressive on Wear OS 6
🟢Engage users on Google TV with excellent TV apps
🟢Build beautiful apps faster with Jetpack Compose
🟢Kotlin Multiplatform: new Shared Template lets you build across platforms, easily
🟢Gemini in Android Studio: AI Agents to help you work
🟢Android Studio: smarter with Gemini
🟢What’s new in Google Play
🟢Start migrating to Play Games Services v2 today
🟢And of course, Android 16

Плейлист 📹Android at Google I/O 2025

Читать (En) | Смотреть (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍43
Stale Data & Leaks were killing my Kotlin apps for 5 years. Here’s the fix.

Большая и полезная статья про то, как правильно инициировать загрузку и получение данных для отображения в UI, чтоб всё это работало ожидаемо и без утечек памяти.

Читать (En)
👍94🔥3👎1
Всем привет! С первого раза как-то не особо получилось вернуться к публикациям, поэтому пробую ещё раз 😎.

За 1,5 месяца отсутствия активности на канале, в избранном что-то да накопилось. Сейчас разбираю отложенные материалы, поэтому до середины/конца следующей недели вероятно слегка поспамлю, но это не точно 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
12👏3🔥2
Хроника изменений API фоновой работы в Android

Начнём пожалуй со свежого.

Довольно подробная статья про то, как менялись инструменты для фоновой работы в Android: Service, AlarmManager, Doze Mode, JobScheduler и т.д.

Читать (Ru)
👍64🔥3
Эффекты в Jetpack Compose, лежащие на поверхности

Полезная статья про то, как реализовать универсальное решение, которое умеет накладывать различные эффекты(blur, magnifier) поверх готового контента в Jetpack Compose.

Читать (Ru)
👍104🔥3👏1
Ныряем в холодные потоки Kotlin Flow

Базовая статья по основам Kotlin Flow для начинающих.

👉 Термины
👉 Холодные и горячие потоки
👉 Холодные потоки, горячие каналы
👉 Создание Flow
👉 Структура Flow
👉 Пример использования

Читать (Ru)
👍156🤔4🔥2
The Kotlin Flow Operator Cheat Sheet

В догонку ещё один материал про Kotlin Flow – свежая шпаргалка по операторам, с примерами кода.

🟢map, filter, take(n)
🟢reduce, fold, runningReduce/scan,
🟢transform
🟢FlatMapConcat, FlatMapMerge, FlatMapLatest
🟢flowOn, buffer, conflate, collectLatest
🟢zip, combine, merge
🟢catch, onCompletion, retryWhen
🟢onEach, debounce(timeoutMillis), distinctUntilChanged

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93🔥3
Flow Marbles: Interactive diagram of Kotlin Flow

И ещё дополнение к постам выше 😎

В соседнем чате поделились крутым ресурсом – Flow Marbles: интерактивные диаграммы Kotlin Flow.

Читать (En)
🔥9👍32👨‍💻1
Хочешь стать техлидом? Возможно, что не стоит

А вот полезная статья от Абакара, в которой он рассказывает о специфике позиции техлида, ключевых сложностях и подводных камнях.

👉 Точно ли тебе это нужно ?
👉 Техническая подкованность
👉 Отстаивание своей позиции
👉 Стратегическое мышление
👉 Фокусировка внимания
👉 Конфликты
👉 Борьба за ресурсы
👉 Стрессы
👉 Увольнения
👉 Ты — пример

Если целитесь на такую позицию – обязательно почитайте.

Читать (Ru)
👍9🔥43
Создание кастомного тултипа Jetpack Compose

Пошаговый гайд по созданию гибкой и удобной системы тултипов в Jetpack Compose, с помощью модифайеров и специального оборачивающего блока.

Читать (Ru)
👍11🔥74
Развеиваем мифы о Stability в Compose: оптимизации Strong Skipping

Ещё про Compose. Интересная статья, в которой автор рассказывает, как лямбды и strong skipping режим влияют на работу компилятора и на рекомпозицию.

Выводы и рекомендации от автора

🟢Compose стал более агрессивно оптимизировать пропуск Composable функций, когда параметры не изменились.

🟢Акцент в отдладке Compose сдвигается от метрик и отчетов к отладке на основе LayoutInspector и других инструментов, потому что метрики и отчеты говорят слишком мало о реальной производительности компонентов.

🟢Чтобы обновить UI, используя нестабильные аргументы, нужно создать новый инстанс такого аргумента в памяти, и метод copy дата-классов для этого отлично подходит.

🟢При работе с коллекциями для оптимизации рекомпозиций больше не нужно использовать Immutable Collections, однако придется обновлять их с созданием нового инстанса. Альтернатива использовать - SnapshotStateList.

🟢При работе с лямбдами для максимальной производительности нужно захватывать только те объекты, которые действительно нужны: если нужно только одно поле класса, лучше прочитать поле в отдельную переменную и сослаться на нее.

Код экспериментов из статьи → ComposeStability

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥135👍3👌1
Типобезопасная передача результатов между экранами в Compose с Jetpack Navigation

Разработчик core-команды Wildberries рассказывает как они в проекте решили обеспечить типобезопасность при передаче результатов между экранами с применением библиотеки Compose Navigation.

В статье рассматривается механизм, который помогает избежать типичных ошибок и делает код более поддерживаемым.

Читать (Ru)
👍4👎32🔥1
Видим невидимое: контроль качества Android-библиотек через объектив AppTracer Lite SDK

Разработчик AppTracer Lite SDK(аналог Firebase Crashlytics) рассказывает про возможности инструмента и подводные камни, с которыми столкнулся при разработке.

Подход в статье универсален, может быть применим к любой библиотеке.

👉 Что такое AppTracer SDK
👉 Как трекать качество библиотеки
👉 Собираем краши
👉 Логируем аналитику
👉 Собираем метрики производительности
👉 Обфускация
👉 Crash-free интеграция Tracer
👉 Поддержка отключения Tracer в библиотеке
👉 Заключение

На данный момент AppTracer Lite SDK доступен только для внутреннего использования, но если вы хотите интегрировать его к себе пишите в чат @tracer_feedback

Читать (Ru)
🔥64👍3
This media is not supported in your browser
VIEW IN TELEGRAM
Creating an Engaging Progress Button in Jetpack Compose

Гайд по реализации вот такой кнопки с прогрессом на Jetpack Compose.

Исходный код → ProgressButton

Читать (En)
👍12🔥52
Под капотом Android: как создаются, управляются и восстанавливаются процессы приложений в системе

Большая и полезная статья с разбором ключевых системных компонентов (Zygote, SystemServer, AMS, Binder) и процесса восстановления состояния через Bundle.

Читать (Ru)
613👍5👎2🔥2
Погружение в разработку плагинов для Android Studio

Вторая часть про разработку плагинов для Android Studio. В этой статье рассматривается пошаговая реализациия более продвинутого плагина – Запускатель UI-тестов.

Предыдущая часть тут.

Читать (Ru)
🔥6👍42