Тренды андроид разработки в 2020 [Перевод]

Небольшая заметка с Medium о предполагаемых фишках в разработке под Android, которые станут популярнее в сообществе в 2020 году. Ссылка на оригинал.


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

Kotlin Corutines

Если вы еще не использовали корутины во время разработки на Kotlin, самое время начать. Это один из самых лучших способов организовывать асинхронную работу в вашем приложении. С момента анонсирования Гуглом использование корутин уже становится привычным для разработчиков. Это не просто инструмент параллельного выполнения задач, корутины также имеют ряд особенностей, например:

  • Каналы
  • Потоки
  • Продолженное выполнение

Они также удобны для использования в ViewModel и LiveData:

val userListLiveData: LiveData<List<User>> =
    liveData(viewModelScope.coroutineContext + Dispatchers.IO) {
        emit(repository.getUserList())
    }

fun getUserList() {
    viewModelScope.launch {
        usersLiveData.value = withContext(Dispatchers.IO) { repository.getUserList() }
    }
}

Корутины против реактивного программирования (RxJava2)

Это не заметка о различиях этих инструментов, так что не будем погружаться в детали. Главное отличие RxJava в том, что это очень разноплановый инструмнент не только для асинхронных задач. Если необходимо будет использовать какое-то решение для асинхронности, логичным будет использовать более простое в работе решение.

Темы

Темы приложений

Начиная с Android 10, Гугл официально поддерживает темные темы. Для разработчиков это означает, что мы можем просто положиться на систему и настроить тему нашего приложения, под тему системы. Возможность сменить тему уже добавлена в целый ряд приложений: Instagram, Chrome да и в Medium тоже. Разработчики могут использовать новый Material Components Styles, находящийся сейчас в версии 1.1.0 для реализации поддержки темной темы нативно в Android Q. К сожалению, пока что в бета-версии. Подробнее можно почитать здесь.

Jetpack Security

Безопасность

Гугл вкладывает огромные усилия для повышение безопасности приложений на Андроид в последнее время. Не каждое приложение нуждается в таких многофункциональных решениях, но все же стоит рассказать о новой библиотеке для защиты приложений от Гугл.

Jetpack Security это инструмент защиты данных, позволяющий хранить данные более безопасно в Shared Preferences. Важным элементом в работе этой библиотеки является система хранения ключей (Android Keystore System). Она была анонсирована недавно и сейчас в альфа-версии. Подробнее можно прочитать по ссылке.

Навигация

Навигация

Гугл представил компонент для навигации на Google IO в 2018, но понадобился почти год, что бы подготовить релизную версию компонента, которую представили в марте 2019.

Это совершенно новый подход к реализации управления навигацей в приложении. Это решение (граф активностей приложения) схоже с технологией используемой в разработке iOS приложений, там это называется Story Boards. Можно взаимодействовать как с графическим редактором графа навигации, так и программировать его через разметку XML-файлов. Компонент навигации поддерживает также: транзацию фрагментов на активность, глубокие ссылки, безопасные переходы и многое другое.

Подробнее можно узнать по ссылке

ViewPager 2

View Pager и Recycler View (список) в одной активности. Иногда это необходимо, но до появления нового компонента было невозможно. ViewPager 2 без проблем позволяет это сделать.

Более того, в ноябре 2019, вышла стабильная версия ViewPager 2.

ViewPager 2 позволяет:

  • работать с Recycler View
  • поддерживает вертикальную ориентацию
  • новый коллбэк для события PageChange (не требует обязательной перегрузки минимум трех методов)
  • добавлен нвоый вариант Page Transformers

Подробнее можно ознакомиться здесь

Сохранение состояния

Это библиотека позволяет сохранять состояния объекта приложения. Но зачем она нужна, если, например, ViewModel может без проблем пережить изменение состояния приложения? Изменение конфигурации это не единственный случай, где нам может понадобится сохранение состояния. Разработчик приложения должен также позаботится о внешних событиях инициированных системой (например, завершение процесса приложения). В таком случае, хотелось бы иметь возможность сохранить состояния приложения на диск, что бы потом вновь использовать.

Стабильная версия библиотеки стала доступна в сентябре 2019.

Jetpack Compose

Компоуз

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

Для ознакомления можно прочитать руководство по ссылке

К сожалению, Jetpack Compose сейчас находится в альфа-версии, но его уже можно использовать.

Заключение

В 2019 было множество новостей в мире Android-разработки. Самая крупная, это, Jetpack Compose, дождаться стабильной версии которого еще только предстоит. Стоит уже начать изучение новых технологий и библиотек для того что бы, когда они выйдут в стабильные версии уже быть во всеоружии.

Written on January 2, 2020