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
Compose + Koin + Jetpack Navigation: что мы поняли за 2 года

Большая и полезная статья от разработчика core-команды WB Partners Wildberries & Russ, в которой он делится опытом развития архитектуры приложения на Jetpack Compose: с какими ограничениями столкнулись, как укротили навигацию от Google и каким образом всё это подружили с Koin.

Читать (Ru)
👍75🔥4
Improve app performance with optimized resource shrinking

В AGP версии 8.12.0 Гугловцы запилили более эффективный способ уменьшения размера приложения с помощью R8.

В новом подходе R8 одновременно оптимизирует ссылки на код и ресурсы, гарантируя, что все ресурсы, на которые ссылается неиспользуемый код, идентифицируются как неиспользуемые и затем удаляются.

P.S. Рекомендую использовать с осторожностью и перед релизом обязательно несколько раз потестить финальную сборку 😉

Читать (En)
👍6🔥32
Forwarded from Swift Tips
Swift на Android: создаём библиотеку

В Swift 6 появилась возможность работать с Android NDK. Это значит, что мы можем писать код на Swift`е и в последствии, с минимальной болью вызывать его из Android среды (Java, Kotlin) c помощью JNI*.

Java Native Interface (JNI) – это мост который позволяет нативному коду обращаться к Java Virtual Machine (JVM). Когда вы пишете Java код, то вы используете Android SDK. Но когда вы используете языки как Swift или C++, которые не компилируются в Java байткод, вам уже нужен Android NDK для коммуникации с Java через JNI.


Ловите подробную гайд-статью от @imike3049, как это всё можно завести.

Читать (Ru)
6👍4🔥2🤔2
Расширяем возможности GitHub Copilot для IDEA или как писать unit-тесты в пару кликов

В статье демонстрируется один из кейсов использования ИИ-помощников, а именно как научить плагин GitHub Copilot помогать писать unit-тесты буквально в пару кликов.

Статья может быть полезна тем, кто хочет узнать как влезать в работу сторонних плагинов, ускорить написание тестов и тем, кто ищет способы прокачать работу с ИИ-помощниками в своих проектах.

Читать (Ru)
6👍4🔥3👨‍💻1
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