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
Как работает WorkManager в Android

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

Читать (Ru)
👍15🔥1
Optimizing Android Performance

Несколько советов на тему оптимизации перфоманса.

👉 Rendering
👉 Memory
👉 Battery and network

Читать (En)
👍11🔥2
Clean Android multi-module offline-first scalable app in 2022

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

👉 Multi-module
👉 Jetpack Compose
👉 MVI
👉 Kotlin Сoroutines
👉 Kotlin Flow
👉 Kotlin serialization
👉 Hilt
👉 Room

Код на GitHub → Android Kotlin starter project - 2022

Читать (En)
🔥19👍4🤮1
Ошибка в stacktrace из продакшена

Полезная статья о том, как stacktrace может указывать на неверное место возникновения ошибки и как анализировать обфусцированный код.

Всему виной оптимизация R8 + ProGuard, ну и определенные версии kotlin stdlib и AGP.

А вообще с R8 и ProGuard постоянно всплывают какие-то траблы, это прям отдельная тема.

Читать (Ru)
👍9🔥1😁1
Comparing Jetpack Compose performance with XML

Если вы уже используете Jetpack Compose или собираетесь использовать, то наверняка вам будет интересно посмотреть сравнение производительности Jetpack Compose vs XML.

В результате, практически во всех проведенных тестах выигрывает XML.

Читать (En)
😁15👍5👏1🤔1
Migrating My App To Android 13

Как вы все уже знаете, пару дней назад зарелизили Android 13, в котором появилось несколько важных изменений по типу runtime permissions для нотификейшнов, permissions для media и т.д.

Сообственно если еще не разбирались, вот статья с подробным описанием по миграции на Android 13.

Читать (En)
👍11🔥1
Иерархия модулей: как выстроить связи между модулями в Android

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

Читать (Ru)
🔥11👍2👎1
Delegation Pattern: An effective way of replacing Android’s Base Activity with native Kotlin support

Статья в которой рассматриваются общие вопросы паттерна Delegation и в качестве примера показано как с помощью Kotlin Delegate можно избавиться от Base Activity.

Базовые классы vs Делегаты – вечно холиварная тема. На всякий случай про базовые классы, т.к. в Java/Kotlin нет множественного наследования классов, приходиться всё пихать в базовый класс, что собственно нарушает Single Responsibility Principle из SOLID.

Читать (En)
👍6💩51👎1🔥1
Few steps to new level security — Play Integrity API for Android apps.

Полезная статья о том, как можно повысить уровень безопасности вашего приложения с помощью Play Integrity API.

Читать (En)
👍8🔥1👏1🤩1
How to move View with Keyboard in Android using Kotlin

Несколько дней назад решил чутка заморочиться и сделать анимацию кнопки при появлении клавиатуры на API 30+, а сегодня на глаза попалась статья, в которой как раз подробно разибрается как это реализовать.

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

Вот еще несколько статей, которыми я воспользовался. Они 2020 года и там некоторые методы уже Deprecated, но суть понятна.

👉 Animating your keyboard (part 1)
👉 Animating your keyboard (part 2): reacting to WindowInset animations

Читать (En)
👍9🔥6
Как создавать анимации в Jetpack Compose

Неплохая статья с разбором и примерами анимаций в Jetpack Compose. Какие есть виды анимаций, создание высокоуровневых и низкоуровневых анимаций, способы кастомизации.

Читать (Ru)
👍12
MVI with state-machine

Серия статей о том, как готовить MVI + state-machine в Android.

👉 Part 1 – Basics
👉 Part 2 – Tools
👉 Part 3 – Modules
👍9
Testing Api layer in Android - Testing Fundamentals

Четвертая часть из цикла статей "Android Testing Fundamentals", в которой рассказывается про то, как писать unit тесты для сетевого слоя.

Читать (En)
🔥5👍2
6 Jetpack Compose Guidelines to Optimize Your App Performance

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

👉 Write Stable Classes
👉 Rules for Writing classes
👉 State properly
👉 State read scope
👉 Running expensive calculations
👉 Defer reads

Читать (En)
👍9🔥1
How To Avoid Use Cases Boilerplate in Android

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

Приоритетный подход от автора через котлиновские Functional (SAM) interfaces.

Читать (En)
👍5🔥4💩2
MAD Skills series on Performance

Если вдруг кто-то пропустил, стартовала новая серия статей про performance в рамках MAD Skills. Вышло уже 4 части, в которых разбираются такие штуки как: фазы старта приложения, скорость отрисовки кадров, как улучшить перфоманс с помощью Baseline Profiles.

👉 Introducing the MAD Skills series on Performance
👉 Important Performance Metrics
👉 Inspecting Performance
👉 Improving Performance with Baseline Profiles
👍11
Optimizing RecyclerView : Pre-inflated ViewPool

Вот вам интересная статейка про то, как можно оптимизировать RecyclerView с помощью Prefetch + AsyncLayoutInflater.

Вот такой прирост в скорости получился: 214.19ms → 118.35ms

Читать (En)
👍23💩2🤔1
Часто вижу, как какой-то простой функционал делают через ж… неправильно, будь то верстка или какие-то участки кода и т.д.. Решил такие штуки с разбором иногда постить на канале.

Сегодня про верстку.

Довольно популярный кейс, встречается наверное в каждом приложении. Нужно показать какой-нибуь текст с иконкой перед ним или после него. Казалось бы всё просто, НО, очень часто встречаю верстку из 2-ух вьюх 🤦‍♂️. Выглядит это так: TextView + ImageView. Капец как меня такое бесит.

Ну зачем так делать, если можно обойтись одним TextView, там же есть нужный функционал для такого кейса drawableEndCompat/drawableStartCompat. Так нет, нужно нагородить дополнительно ImageView, а потом еще в коде добавить логики по отображение и т.д.

И да, программно тоже можно задать иконку для TextView, например через TextViewCompat.setCompoundDrawablesRelative()

Вывод: не нужно изобретать велосипед, используйте компоненты по назначению и пользуйтесь функциями, которые уже есть в SDK.
👍57👎32🔥6🤔4
Jetpack Compose for Android Developers

Курсы от гугла по использованию Jetpack Compose.

👉 Compose essentials
👉 Layouts, theming, and animation
👉 Architecture and state
👉 Accessibility, testing, and performance
👉 Form factors
👍19🥰3
Фреймворк для мобильных приложений DivKit

Статья от Яндекса, про их новый опенсорсный фреймворк DivKit, с разбором возможностей на примерах. Инструмент позволяет внедрить подход server-driven UI второго поколения, то есть не просто описывать параметры блоков интерфейса с сервера, но и управлять всей версткой.

Код на GitHub → DivKit

Читать (Ru)
💩24👍9🔥2
Testing Composable in Jetpack Compose Android

Пятая часть из цикла статей "Android Testing Fundamentals", в которой рассказывается как тестировать Composable в Jetpack Compose.

👉 Creating a Composable
👉 Setting up the test environment
👉 Writing test cases

Читать (En)
👍7