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
Clipping and Masking in Jetpack Compose

Небольшая, но полезная статья про то, как в Jetpack Compose использовать Clipping и Masking для более дружелюбного UI: как обрезать компонент, кастомные шейпы, наложение градиента, различные эффекты и режимы наложение.

Читать (En)
🔥74👍3
Как я научил Jetpack Compose показывать рекомпозиции в реальном времени

А вот это прям достойный материал 🔥

Вот тут сервис, который в режиме реального времени показывает Compose рекомпозиции + показывает как делать нужно и как не нужно(потому что рекомпозиции).

А вот собственно статья, в которой автор рассказывает, как он делал этот сервис. Чтобы всё это добро заработало, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.

Исходный код на GitHub → Recomposition Visualization
Готовый сервис → Recomposition Visualization

Читать (Ru)
👍13🔥74
Гайд по File Templates: как шарить шаблоны с однотипным кодом

В статье рассказывается как можно облегчить жизнь своим коллегам и сэкономить немного времени, посредством шеринга шаблонов(File Templates) с однотипным кодом.

Читать (Ru)
🔥83👍2
Погружение в JNI: проблемы и решения при взаимодействии между JVM и нативным кодом

Разработчик из Яндекс Браузера рассказывает про взаимодействие с нативным С++ кодом из Android, подводные камни и проблемы, с которыми может столкнуться разработчик в процессе написания нативных библиотек, а также методы их обхода.

🟢Что такое JNI и для чего используется
🟢Пример реализации простой JNI‑библиотеки, способы сборки и интеграция в Android
🟢Кейс: интеграция библиотеки Алисы в мобильный Яндекс Браузер
🟢Подводные камни и проблемы
🟢Полезные инструменты для разработчика

Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥32
Загрузка данных во ViewModel: рекомендации и Flow-based архитектура

Перевод на Хабре вот этой статьи, про паттерны загрузки данных во ViewModel.

Читать (Ru)
🔥137👀6👍4👎3
Exploring 5 Lesser-Known Compose Components

В статье рассматривают 5 малоизвестных Jetpack Compose компонентов, с примерами кода когда и как их использовать.

➡️ TriStateCheckbox
➡️ SegmentedButton
➡️ RangeSlider
➡️ Badge
➡️ Tooltip

Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
6👍3🔥2
Погружаемся в недра Retrofit

Такое мы читаем 🔥

Абакар (главный техлид в Альфа-Банке) продебажил Retrofit и написал мощную статью, в которой рассказывает, что происходит с функциями в интерфейсе Retrofit сервиса, когда мы помечаем их ключевым словом suspend.

Читать (Ru)
🔥13👍75
The Art of Shadows in Jetpack Compose

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

Читать (En)
👍74🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Glitch Effect in Jetpack Compose

Статья с примером реализации вот такого "Глитч" эффекта в Jetpack Compose.

Читать (En)
6🔥5👍4
Почему моё Android-приложение крашится?

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

👉 Zygote и запуск приложений
👉 Как Android обрабатывает непойманные исключения?
👉 Кто сообщает о краше?
👉 Почему в итоге приложение закрывается?
👉 А можно ли сделать так, чтобы оно не закрывалось?

Читать (Ru)
👍7🔥52🥰1👀1
The Golden Rule of Coroutine Exceptions

Ещё одна большая статья с примерами про обработку ошибок в корутинах.

👉 The launch Builder
👉 The async Builder
👉 Parent-Child Relationships (coroutineScope)
👉 Isolating Failures (supervisorScope)
👉 The Global Catcher (CoroutineExceptionHandler)
👉 async Within a supervisorScope
👉 Cancellation is a Special Kind of Exception
👉 Unstoppable Cleanup with NonCancellable
👉 Nested Scopes & Propagation
👉 The Job Hierarchy in Detail
👉 supervisorScope vs CoroutineScope(SupervisorJob())
👉 Handling Timeouts
👉 Exceptions When Awaiting Multiple Jobs

Читать (En)
216👍5🔥4
Kotlin Mutex: Thread-Safe Concurrency for Coroutines

А вот достаточно крутая статья про то, как писать потокобезопасный код используя Kotlin Mutex с Корутинами. Там и кейсы, и ошибки, и лучшие практики, в общем всё как мы любим 🔥.

👉 What is Mutex?
👉 Core Use Cases for Mutex
👉 Best Practices
👉 Mutex vs. Other Synchronization Methods
👉 Common Pitfalls
👉 Performance Considerations
👉 Real-World Example: Thread-Safe Repository
👉 Testing Mutex-Protected Code
👉 Final Thoughts

Читать (En)
16👍134🔥3
К вопросу о шифровании данных на мобильных устройствах бизнес-пользователей

Название статьи кажется несовсем подходящее, т.к. про мобилки там совсем малая часть, но для общего понимания принципов и механики шифрования данных – почитать можно.

👉 Процесс шифрования данных
👉 Симметричные алгоритмы шифрования
👉 Асимметричные алгоритмы шифрования
👉 Шифрование на Android с помощью библиотек Cipher и SQLCipher
👉 Шифрование по ГОСТ: есть ли перспективы?

Читать (Ru)
👍10🔥42
This media is not supported in your browser
VIEW IN TELEGRAM
Pulse Indicator in Jetpack Compose

Пример реализации вот такого пульсирующего индикатора на Jetapck Compose.

Читать (En)
👍12🔥43
The LeakCanary Method

Новый материал про детект утечек памяти с помощью LeakCanary.

В статье рассказывается про процесс исследования, автоматизацию поиска утечек и как использовать YourKit поверх LeakCanary для поиска первопричин серьёзных утечек памяти.

Читать (En)
🔥75👍4👎1
Inside Kotlin Coroutines: State Machines, Continuations, and Structured Concurrency

Большая, свежая статья про внутрянку Корутин.

👉 Introduction
👉 A Primer on Finite State Machines (FSM)
👉 Suspending Functions and the suspend Keyword
👉 Deconstructing the State Machine: How Kotlin Compiles Coroutines
👉 Understanding State Machine Execution
👉 Pointer Movement: Resuming Execution After Suspension
👉 Exception Handling in Coroutines
👉 Cancellation Mechanics
👉 Structured Concurrency: The Complete Picture
👉 Performance and Advantages

Читать (En)
👍10🔥53
Актуальные практики работы в фоне Android-приложений

В статье рассматриваюся актуальные инструменты для работы в фоне, которые работают на последних версиях ОС и как их правильно использовать.

👉 WorkManager
👉 JobScheduler
👉 Foreground Service
👉 Специализированные API (AlarmManager, DownloadManager, Geofencing)

Читать (Ru)
🤝10👍6🔥4
How to simplify State and Entity mappings with Kotlin interfaces, delegation and covariant generics

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

👉 Understanding the Foundation: Data Classes in Android
👉 The Challenge: Adding Multi-Selection
👉 Internal ViewModel State
👉 Single State Class with Private Properties
👉 The Power of Interfaces

Читать (En)
👍104🔥4🤔3👎2
The Real Difference Between withContext and launch

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

Читать (En)
👍12🔥85👎3
Live Updates на Android: где макеты врут, a SDK ставит границы

Разработчик из Dodo Engineering рассказывает как они завозили Live Updates и с какими проблемами столкнулись.

Если коротко – не всё так радужно, как может показаться. Начиная от документации и заканчивая ограничениями в кастомизации и тестировании на эмулях.

Если планировали внедрять Live Updates, обязательно почитайте статью, вероятно сэкономите какое-то время.

Читать (Ru)
👍7🔥43