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
Получаем результат правильно. Activity Result API.

Как все мы уже знаем, onActivityResult() объявлен deprecated, а на его замену пришел Activity Result API.

Если вы еще не в теме или не успели заюзать, на хабре есть серия статей "Получаем результат правильно". Вот тут первая часть, а вот тут вторая.
Бесплатный курс Kotlin Basics от JetBrains

На платформе JetBrains Academy добавлен бесплатный курс Kotlin Basic, который включает в себя 10 проектов разного уровня сложности, более 120 образовательных тем и более 300 задач по программированию.
Hilt. Подборка полезных материалов.

Если кто-то еще не знает, Hilt – DI библиотека, которая работает поверх Dagger и якобы упрощает жизнь, за счет готовых компонентов и генерируемого bolierplate кода.

Сам я Hilt еще не юзал, поэтому решил закинуть на канал подборку. Возможно кому-то тоже будет полезно.

1. Официальная дока (En)
2. Hilt+Retrofit+Coroutine (Ru). В статье описаны базовые штуки.
3. Hilt еще один DI (Ru). Еще одна статья, в которой описаны основные моменты.
4. Пример проекта (En) с исользованием Hilt, MVVM, Coroutines, Flow.
5. Кратчайшее руководство (Ru) по Hilt
Safe delay in Android Views: goodbye Handlers, Hello Coroutines!

Уверен, все вы использовали Handler для выполнения операций с задержкой (postDelay) и наверняка сталкивались с проблемами/крешами, из-за чего приходилось городить дополнительные проверки – классика. А все потому, что Handler имеет один жирный минус – не имеет привязки к жизненному циклу Activity/Fragment/View.

Для таких кейсов, есть элегантное решение – Kotlin + Coroutine + Lifecycle, для использования, достаточно подрубить несколько зависимостей и использовать экстеншн метод View.delayOnLifecycle(...). В статье можно посмотреть, как все это дело подрубить.
👍3
Что посмотреть на выходных? Подборка полезностей 👇

👉 Performance - MAD Skills. Плейлист MADSkills по производительности приложений.
👉 Android Custom View. Крутые видосы про создание кастомных вьюшек.
👉 Jetpack DataStore. Основы DataStore с примерами кода.
👍1
Android in-app purchases

Один из способов монетизации приложений – встроенные покупки/подписки внутри приложения. На хабре есть целая серия статей от крутых ребят, с подробным руководством по использованию.

Если хотите подрубить в свое приложение или просто разобраться в in-app purchase, закидывайте пост в закладки 😎

Часть 1: конфигурация и добавление в проект
Часть 2: инициализация и обработка покупок
Часть 3: получение активных покупок и смена подписки
Часть 4: коды ошибок от Billing Library и как не облажаться с тестированием
Производительность и скорость: как в Duolingo внедрили MVVM на Android

Статья, о том, как в Duolingo удалось повысить производительность и скорость работы приложения за счет рефакторинга и внедрения MVVM, Android Jetpack, Dagger и Hilt.

👉 количество ANR снизилось на 41%
👉 увеличили frame rate на 28%
👉 на 40% увеличилась скорость прокрутки уроков
Серия статей по работе с Gradle

Достаточно полезные статьи, в которых максимально подробно описаны базовые моменты, конфигурации, зависимости, сборки, таски, плагины и вот это вот всё.

👉 Готовьсь, цельсь, пли! Как не обжечься при сборке Gradle-приложения, и настолько ли всё серьезно?
👉 Gradle Plugin: Что, зачем и как?
👉 Дикая природа Gradle Task: руководство по выживанию
Android in-app purchases: серверная валидация покупок

Вышла 5-я часть цикла статей по реализации Android in-app purchases. В статье рассказывают про то, что такое серверная валидация и зачем валидировать покупки.
Что посмотреть на выходных? Подборка полезностей👇

👉 Mobile QA от создания ферм до тонкостей релиза
👉 Экспертное Android собеседование. Боиштян собеседует Розова
👉 Публичное собеседование по многопоточности в Android / Сергей Боиштян (Авито)

Из собесов я сделал несколько важных заметок, на которые стоит обратить внимание и хотя бы поверхностно знать. Подготовлю материалы и закину отдельным постом 🤟
👍1
Оптимизируем отображение 10 000 объектов на карте

Интересная статья, о том, как в приложении ЦИАН оптимизировали отображение большого количества объектов на карте.

Я бы конечно поспорил на счет приведенных аргументов не использовать кластеризацию, но да ладно 😉
👍1
Improving perceived load times of images using blurred thumbnails — with Glide and custom loaders

Существует такой подход (Progressive image loading), когда картинка загружается частями, нужно это для того, чтобы улучшить воспринимаемое время загрузки. В статье показан 1 из подходов через Glide, с помощью которого можно сделать такую загрузку.

Работает это так: вначале загружается размытая картинка (можно с более меньшими размерами) через
thumbnail
, и параллельно грузится картинка нужного размера.

О загрузке картинок из сети, с вашего бэка. Будет вообще красиво, если на бэке будет использоваться Thumbor – сервис, который поддерживает всевозможные трансформации картинок от ресайзов до различных кропов, фильтров и т.д.
👍1
10 лучших советов по повышению скорости сборки Android-проектов

В статье собраны 10 советов, которые могут ускорить сборку вашего проекта. Обратите внимание на 8 пункт: Использование динамических версий в Gradle зависимостях.

compile 'com.android.support:appcompat-v7:+'


Никогда так не делайте, можно напороться на отсутствие каких-то методов в новой версии или отличное поведение работы той или иной функции. Всегда управляйте версиями зависимостей самостоятельно – проверено 😉.
👍1
Как Telegram оптимизирует изображения перед отправкой на сервер

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

Кстати, если кто не знает – у телеги открытый код, посмотреть на его чудо архитектуру можно тут.
👍4
Как правильно идентифицировать Android-устройства

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

Официальная дока с best practices от гугла тут.
👍1
8 распространенных ошибок при разработке Android-приложений

В статье собраны распространенные ошибки при разработке Android-приложений.

Если коротко: юзайте библиотеки Jetpack, Kotlin, корутины, следите за структурой проекта (строки, цвета), используйте фрагменты и все возможности ConstraintLayout.

Обратите внимание на 7 пункт о возможностях Android Studio – shortcuts и live template реально позволяют ускорить разработку, если по каким-то причинам до сих пор не юзали – обязательно попробуйте.
👍1
Change Retrofit Base URL on Runtime

В каждой нормальной компании, для разработки есть каким минимум 2 среды окружения DEV, PROD, а при хорошем раскладе может быть и больше (DEV, STAGE, BETA, PROD), но не суть. И когда таковых несколько, как то нужно переключаться.

Вариантов может быть несколько:

👉 Прописать урлы в конфиге гредла. Допустимый вариант, но каждое переключение будет требовать пересборки, что затратно по времени.

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

Вот вам статейка, в которой описан 1 из подходов, с помощью которого можно реализовать смену урлов в рантайме.
👍1
SOLID Principles: The Kotlin Way

Архитектура архитектурой, а принципы SOLID никто не отменял 😉. В статье найдете примеры по каждому принципу на Kotlin.
👍3👎1
Don’t abuse Kotlin’s scope functions

Небольшая статейка про то, когда и какие scope functions лучше использовать.
👍1