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
Статья шпаргалка, про то, какие параметры, для чего используются в
build.gradle
для Android проектов. Особенно будет полезно начинающим.
Introducing Security By Design

Security by Design – бесплатный курс по безопасности приложений от Гугла. В курсе рассказывают как проверить своё приложение на уязвимости, какие средства использовать для шифрования важной инфы.

Описание тут, пройти курс можно тут. Так же есть страница с лучшими практиками по безопасности приложений от Гугла.
Kotlin Collections vs Sequences

В статье рассказывают об основных отличиях Collections и Sequences и как работают операторы filter, map, take для Collections и Sequences.

Интересно, а вы используете Sequences в своих проектах?
Анимированные списки в связке 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» растянулась на три недели

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

Достаточно старый, но тем не менее, актуальный доклад и на сегодняшний день.