В этой статье разберем библиотеки, на которые стоит обратить внимание Android-разработчикам и всем желающим освоить эту профессию.Навигация по статьеНемного предысторииБиблиотеки для работы с UIБиблиотеки для навигацииБиблиотеки для бизнес-логикиНемного предыстории1 ноября 2023 года Kotlin Multiplatform стал стабильным, инженеры Google начали переписывать библиотеки семейства Android Jetpack для поддержки мультиплатформы, а JetBrains выделил гранты для разработчиков KMP-библиотек.Все эти события позитивно повлияли на разработку мобильных приложений. У нас появились удобные решения для написания общих UI и бизнес-логики.Библиотеки для работы с UIБиблиотеку Jetpack Compose постепенно начали использовать в своих проектах Т-Банк (Тинькофф), Лемана ПРО (Леруа Мерлен) и HH.ru (HeadHunter).Compose используется для написания UI в декларативном стиле.Сравнение подходов к разработке UI - XML vs ComposeВот несколько плюсов от её использования:Современный 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. Обе подходят для мультиплатформы, но официальная библиотека еще в альфе и её возможности ограничены.Для работы по сети подходят близнецы - Retrofit и Ktorfit. Их отличие только в том, что вторая библиотека подходит для мультиплатформы, использует под капотом библиотеку Ktor и является клоном первого собрата.После упоминания DI все разработчики обычно выходят из чата, поэтому напишем тут, что удовлетворительным решением для мультиплатформы является Koin (пока что у него нет проверки графа зависимостей на этапе компиляции проекта), а для Android - Hilt.Вместо выводовИзучение нового стека технологий - сложно, долго и неинтересно.@Неизвестный_разработчикЕсли Вы тоже так считаете, можете посмотреть бесплатные вводные уроки по Kotlin и Android от Профессора Панды и убедиться в обратном ;)Уроки можно найти на нашем сайте android-for-juniors.ruА в Telegram-канале задать интересующие вопросы @android_for_juniors