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
Анимированные списки в связке MotionLayout + RecyclerView

Пример использования анимированных списков с помощью MotionLayout. Если кто-то еще не знает, MotionLayout – это ConstraintLayout на стероидах, который позволяет делать прикольные анимации c помощью Scene описанных в xml.

Оффициальная дока тут.
BottomSheet с анимацией при смене состояния и sticky button

В статье, кроме анимации рассматривается очень актуальный кейс с прижатой к низу кнопкой. Для тех, кто не знает – это не стандартный кейс, который не так уж просто реализовать.

Если вы не сталкивались с подобной реализацией, рекомендую закинуть статью в избранное 😉
Как приготовить 60 FPS RecyclerView?

Ловите годную статью про оптимизацию списков. Один из главных советов из статьи, который прям мастхев нужно юзать – легковесные ViewHolder`s. Это значит, что во вьюхолдере не должно быть никаких трудозатратных операций, преобразований, вычислений и т.д., во вьюхолдер должны прийти уже готовые данные для биндинга. Можно предварительно маппить во ViewModel, Repository где угодно, только не во вьюхолдере.

Ну и на всякий случай напомню про существование DiffUtil, setHasFixedSize(…), setItemViewCacheSize(…) и setRecycledViewPool(…)
О дизайн-системе замолвите слово

Дизайн-система одна из хайповых штук в последнее время. Основные цели ДС – переиспользование готовых компонентов, выстроить четкое взаимодействие между разработчиками и дизайнерами, ну и сэкономить время дизайнеров и разработчиков.

На глаза попалась интересная статья от HH, в которой ребята делятся своим опытом внедрения дизайн-системы.

Полезно будет почитать не только мобильщикам, но и фронтендерам, дизайнерам.
View Model не обязательно наследоваться от ViewModel

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

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

В статье рассматриваются возможные варианты утечек во фрагменте и как их можно избежать.

Ну и напомню про существование библиотеки LeakCanary от Square, с помощью которой можно отследить утечки.
👏1
Гайд по использованию Material Transitions

Когда в приложении есть анимации, работа с приложением для пользователей кажется более приятной и плавной, хоть и анимация по сути никак не влияет на функциональность. Меня прикалывают всевозможные анимации, особенно, когда на это не нужно тратить много времени 😁

Вот неплохая статья, в которой автор показывает, как добавить анимации переходов в свое приложение. Всё относительно просто 😉
Ну что, вот и зарелизили Compose. Для кого-то, это крутая новость, для кого-то не очень. Моё мнение на этот счет – вообще пофиг 😁. На данный момент к Compose отношусь скептически.

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

Полезные материалы про Compose на канале будут, вдруг в будущем понадобится 😉

А вы готовы юзать или уже юзаете Compose в проде?
Полезные Kotlin расширения для Android

В статье собрано несколько полезных Kotlin расширений, с помощью которых можно более эффективно работать с API в Android.
Несколько бесплатных ресурсов для изучения Android разработки на Kotlin. Полезно будет начинающим.
В Room версии 2.4.0-alpha04 добавили поддержку
Map
для возвращаемых типов, что очень удобно для использования запросов с Join.

На хабре есть пример использования от нашего коллеги.
Mailru Group открывает набор на бесплатные курсы по мобильной разработке

Mail•ru Group запускает два бесплатных курса по Android- и iOS-разработке для студентов вузов Москвы и Санкт-Петербурга. За один семестр вы освоите базовые навыки мобильной разработки, научитесь работать в команде и сможете с нуля создать собственное приложение.

Лучшие выпускники получат возможность присоединиться к командам Юлы, AliExpress России, Одноклассников и другим проектам экосистемы VK.

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

На дворе 2021 год, но до сих пор встречаются такие подходы как: проброс каких-нибудь интерфейсов, взаимодействие через host activity, статичные поля 😳 и т.д. Глядя на это все возникает вопрос – зачем? То ли разработчики не следят за развитием системы, то ли лень разбираться, либо я хз как это объяснить. В эпоху Jetpack, выглядит это мягко говоря не очень.

Существует несколько нативных, нормальных подходов к коммуникации между фрагментами, один из которых – расшарить ViewModel, второй – использовать Fragment Result Listener.

Вот статейка на хабре про использование Fragment Result Listener. Официальная дока к построению коммуникации между фрагментами тут.
Template на примере формирования списков в Android

Полезная статья, в которой показано, как с помощью паттерна Шаблонный метод сделать более читабельный и лаконичный код, без кучи блоков if else. Но нужно понимать, что паттерн имеет как плюсы, так и минусы. Поэтому использовать нужно с умом и по ситуации, впрочем, как и большинство паттернов 😉
Kaspresso tutorials. Часть 1. Запуск первого теста

Авторы Kaspresso запускают большую серию статей-туториалов о Kaspresso в частности и UI-тестах под Android в общем. Если кто не знает, Kaspresso – это фреймворк для автотестирования c удобным синтаксисом и дополнительными плюшками, разработанный крутыми чуваками android сообщества.

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

Оставлю тут статейку про тестирование рекламы в мобильных приложениях. Вдруг кому-то понадобится.
Фоновая работа в Android: обзор возможностей WorkManager

Каждый разработчик периодически сталкивается с задачами, которые нужно выполнить в фоне, кейсов может быть множество от загрузки/отгрузки больших данных до синка локальной БД с удаленной. И вот тут начинается делема, как же это сделать. Одним из актуальных решений были Services, но потом появился WorkManager.

Если вы его еще не юзали, на хабре есть отличная статейка, в которой демонстрируются его возможности (периодичность выполнения, цепочки, критерии запуска и т.д.). Кстати, WorkManager совместим с Rx и Корутинами, что очень радует.
👍1
Как работа с тикетом «Тормозит скролл в RecyclerView» растянулась на три недели

Крутой доклад о том, как искать узкие места, какими инструментами пользоваться и как оптимизировать скролл.

Достаточно старый, но тем не менее, актуальный доклад и на сегодняшний день.
2021 Best Open Source Android Apps written in Kotlin

Возможно вы уже видели эту подборку, но все же оставлю на канале. Все проекты не смотрел конечно, но вот понравилась организация и структура кода проекта MoneyFlow. Проект написан на Kotlin Multiplatform, Jetpack Compose и Swift UI.

P.S. Собираю материалы по Compose, скоро сделаю крутую подборку с полезными статейками и инструментами 🔥
Получаем результат правильно. Activity Result API.

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

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

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