Дорожная карта для Android-разработчика в 2024 году

Дорожная карта для Android-разработчика в 2024 году

В этой статье разберем библиотеки, на которые стоит обратить внимание Android-разработчикам и всем желающим освоить эту профессию.

Навигация по статье

Немного предыстории

1 ноября 2023 года Kotlin Multiplatform стал стабильным, инженеры Google начали переписывать библиотеки семейства Android Jetpack для поддержки мультиплатформы, а JetBrains выделил гранты для разработчиков KMP-библиотек.

Все эти события позитивно повлияли на разработку мобильных приложений. У нас появились удобные решения для написания общих UI и бизнес-логики.

Библиотеки для работы с UI

Библиотеку Jetpack Compose постепенно начали использовать в своих проектах Т-Банк (Тинькофф), Лемана ПРО (Леруа Мерлен) и HH.ru (HeadHunter).

Compose используется для написания UI в декларативном стиле.

Сравнение подходов к разработке UI - XML vs Compose
Сравнение подходов к разработке UI - XML vs Compose

Вот несколько плюсов от её использования:

  • Современный UI из коробки (закругления, тени, анимации)
  • Удобная дизайн-система (любой UI-компонент можно представить в виде комбинации Composable-функций)
  • Эффективная отрисовка (благодаря рекомпозиции на экране перерисовывается только изменившаяся часть)

И всё же не всё доступно из коробки (ха-ха). Так, например, для асинхронной загрузки изображений используется библиотека Coil, её третья версия поддерживает мультиплатформу.

Полюбившийся многим ConstraintLayout также есть в Compose в виде отдельной библиотеки. И хоть библиотека имеет официальную поддержку только для Android, энтузиасты сделали мультиплатформенную версию.

Библиотеки для навигации

Среди решений можно выделить Jetpack Navigation и Decompose, первая библиотека - официальная от Google, а вторая - неофициальная и разработана инженером Google.

Дорожная карта для Android-разработчика в 2024 году

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

На момент написания статьи в крупных мультиплатформенных проектах используют Decompose, но всё может измениться, т.к. в Jetpack Navigation 2.8.0 обещают ввести type-safety.

Библиотеки для бизнес-логики

Если на вашем проекте ещё используют SharedPreferences для сохранения локальных настроек пользователя, не переходите на DataStore, а тем более Proto DataStore ;)

Вам потребуется освоить Kotlin Coroutines & Flow, а также позаботиться о шифровании данных.

Дорожная карта для Android-разработчика в 2024 году

И хотя в шаблонных проектах уже используется ViewModel для сохранения состояния приложения, не соглашайтесь, это слишком идеальное решение ;)

Для реализации архитектур MVVM с Single State или MVI, использующих это решение и подходящих для Jetpack Compose, также потребуются знания Kotlin Coroutines & Flow, рассмотренных выше.

Среди библиотек для работы с локальной базой данных стоит рассматривать - Room и SQLDelight. Обе подходят для мультиплатформы, но официальная библиотека еще в альфе и её возможности ограничены.

Для работы по сети подходят близнецы - Retrofit и Ktorfit. Их отличие только в том, что вторая библиотека подходит для мультиплатформы, использует под капотом библиотеку Ktor и является клоном первого собрата.

После упоминания DI все разработчики обычно выходят из чата, поэтому напишем тут, что удовлетворительным решением для мультиплатформы является <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Finsert-koin.io%2F&postId=1351857" rel="nofollow noreferrer noopener" target="_blank">Koin</a> (пока что у него нет проверки графа зависимостей на этапе компиляции проекта), а для Android - <a href="https://api.vc.ru/v2.8/redirect?to=https%3A%2F%2Fdeveloper.android.com%2Ftraining%2Fdependency-injection%2Fhilt-android&postId=1351857" rel="nofollow noreferrer noopener" target="_blank">Hilt</a>.
После упоминания DI все разработчики обычно выходят из чата, поэтому напишем тут, что удовлетворительным решением для мультиплатформы является Koin (пока что у него нет проверки графа зависимостей на этапе компиляции проекта), а для Android - Hilt.

Вместо выводов

Изучение нового стека технологий - сложно, долго и неинтересно.
@Неизвестный_разработчик

Если Вы тоже так считаете, можете посмотреть бесплатные вводные уроки по Kotlin и Android от Профессора Панды и убедиться в обратном ;)

Дорожная карта для Android-разработчика в 2024 году
Уроки можно найти на нашем сайте android-for-juniors.ru
А в Telegram-канале задать интересующие вопросы @android_for_juniors
66
Начать дискуссию