Дорожная карта для Android-разработчика в 2024 году
В этой статье разберем библиотеки, на которые стоит обратить внимание Android-разработчикам и всем желающим освоить эту профессию.
Навигация по статье
Немного предыстории
1 ноября 2023 года Kotlin Multiplatform стал стабильным, инженеры Google начали переписывать библиотеки семейства Android Jetpack для поддержки мультиплатформы, а JetBrains выделил гранты для разработчиков KMP-библиотек.
Все эти события позитивно повлияли на разработку мобильных приложений. У нас появились удобные решения для написания общих UI и бизнес-логики.
Библиотеки для работы с UI
Библиотеку Jetpack Compose постепенно начали использовать в своих проектах Т-Банк (Тинькофф), Лемана ПРО (Леруа Мерлен) и HH.ru (HeadHunter).
Compose используется для написания UI в декларативном стиле.
Вот несколько плюсов от её использования:
- Современный UI из коробки (закругления, тени, анимации)
- Удобная дизайн-система (любой UI-компонент можно представить в виде комбинации Composable-функций)
- Эффективная отрисовка (благодаря рекомпозиции на экране перерисовывается только изменившаяся часть)
И всё же не всё доступно из коробки (ха-ха). Так, например, для асинхронной загрузки изображений используется библиотека Coil, её третья версия поддерживает мультиплатформу.
Полюбившийся многим ConstraintLayout также есть в Compose в виде отдельной библиотеки. И хоть библиотека имеет официальную поддержку только для Android, энтузиасты сделали мультиплатформенную версию.
Библиотеки для навигации
Среди решений можно выделить Jetpack Navigation и Decompose, первая библиотека - официальная от Google, а вторая - неофициальная и разработана инженером Google.
Обе библиотеки поддерживают мультиплатформу, первая - в альфа версии, вторая - с самого начала.
На момент написания статьи в крупных мультиплатформенных проектах используют Decompose, но всё может измениться, т.к. в Jetpack Navigation 2.8.0 обещают ввести type-safety.
Библиотеки для бизнес-логики
Если на вашем проекте ещё используют SharedPreferences для сохранения локальных настроек пользователя, не переходите на DataStore, а тем более Proto DataStore ;)
Вам потребуется освоить Kotlin Coroutines & Flow, а также позаботиться о шифровании данных.
И хотя в шаблонных проектах уже используется ViewModel для сохранения состояния приложения, не соглашайтесь, это слишком идеальное решение ;)
Для реализации архитектур MVVM с Single State или MVI, использующих это решение и подходящих для Jetpack Compose, также потребуются знания Kotlin Coroutines & Flow, рассмотренных выше.
Среди библиотек для работы с локальной базой данных стоит рассматривать - Room и SQLDelight. Обе подходят для мультиплатформы, но официальная библиотека еще в альфе и её возможности ограничены.
Вместо выводов
Изучение нового стека технологий - сложно, долго и неинтересно.
Если Вы тоже так считаете, можете посмотреть бесплатные вводные уроки по Kotlin и Android от Профессора Панды и убедиться в обратном ;)
Уроки можно найти на нашем сайте android-for-juniors.ru