Android Jetpack Compose приветствуется, но как насчет оттока?


Постоянно меняющийся ландшафт разработки на платформе Android обновляется с помощью нового инструментария Jetpack Compose UI.

Думаю, важно знать, где провести грань между эволюцией и стабильностью. С одной стороны, инновации и привнесение новых идей и функций во фреймворк необходимы и приветствуются. С другой стороны, если вы постоянно и полностью заменяете способы работы, а не улучшаете их, вы заставляете всех работать только для того, чтобы не отставать.
Платформа Android — один из таких случаев, когда на каждом этапе пути нарушается обратная совместимость. Сначала была Java, теперь есть Kotlin. При этом не только введение Kotlin изменило лицо разработки, но и полное обновление платформы, библиотек и способа создания приложений.
По общему признанию, разработка для платформы никогда не была легкой задачей. Утечки памяти, пресловутая обработка фрагментов и асинхронное программирование, транзакционные исключения, изменения ориентации, повсюду прослушиватели, фрагментация выпусков версий, путаница в отношении правильных версий библиотек и т. Д. Сделали эффективное создание приложений трудным.
Ответом на эти проблемы стали компоненты архитектуры Android. Например, до того, как были введены Компоненты, было чрезмерное использование определенных шаблонов и практик. Возьмите самый популярный — Погрузчики. Большая часть кода была буквально «завалена» вызовами Loaders и LoaderManager для доступа к базе данных в отдельном потоке, для кэширования полученных данных, для сохранения изменений конфигурации и для обновления пользовательского интерфейса при возникновении событий Activity. Большой процент усилий по кодированию приходился на те задачи, которые собирались заменить Компоненты.
Но введение компонентов архитектуры также значительно изменило способ работы. Вам пришлось забыть то, чему вы научились, и начать с нуля. Это похоже на то, что новая технология полностью вытеснила своего предшественника, с некоторой степенью оттока и скоростью изменений, которые мы неоднократно комментировали в новых выпусках студии Android, еще одной части экосистемы, находящейся в постоянном развитии.
Майк Джеймс, осветил этот вопрос в статье «Разработка под Android — постоянный отток»:
Разработка под Android все больше похожа на прицеливание в цель, которая движется каждый раз, когда вам кажется, что она находится в вашем поле зрения.
Все это часть постоянной революции, которой кажется платформа Android Dev. Так же, как вы думаете, что знаете, что такое лучшие практики, они меняются, и у вас есть приложение, код которого устарел, если на самом деле не является устаревшим, и поэтому вам нужно над этим поработать. Даже вещи, которые в целом хороши, такие как Kotlin, заставляют нас переделывать большие части нашего кода, чтобы воспользоваться ими.
Команда Android, похоже, не знает обо всех руководствах и справочниках по программированию, которые они аннулируют своими постоянными изменениями.
Отток не годится.
Затем у нас был Jetpack, который охватывал все компоненты архитектуры, а сегодня у нас есть новый набор инструментов Jetpack Compose UI, с помощью которого вы пишете значительно меньше кода пользовательского интерфейса декларативным образом.

Только что выпущенная альфа-версия Jetpack Compose включает:

Анимации
Макет ограничения
Первоначальная поддержка A11Y
Ввод и жесты
Взаимодействие с представлениями (начните смешивать составные функции в существующем приложении)
Ленивые списки
Материальные компоненты пользовательского интерфейса
Оптимизация производительности
Тестирование
Текст и редактируемый текст
Тематика и графика
Управление окнами

Он также обещает обратную совместимость со «старыми» базами кода пользовательского интерфейса на основе представлений:
компоновка элементов в существующий пользовательский интерфейс, либо путем создания полностью нового экрана на основе Compose, либо путем добавления элементов Compose в существующий фрагмент или макет представления.
или же
добавьте элемент пользовательского интерфейса на основе представления в ваши составные функции. Это позволяет вам добавлять виджеты, не являющиеся компонентами Compose, например MapView или WebView, в дизайн на основе Compose.
на самом деле «переход на Compose зависит от вас и вашей команды», акцент на «переходе» подразумевает действительно большой сдвиг парадигмы — начало нового. Когда мы можем просто «идти в ногу» с улучшениями, а не «мигрировать» — вот в чем вопрос.
Другой вопрос, это только Котлин? Просмотр официальной документации подтверждает этот случай:
Если вы хотите начать новый проект, который по умолчанию включает поддержку Jetpack Compose, Android Studio включает новые шаблоны проектов, которые помогут вам начать работу. Чтобы создать новый проект, включающий Jetpack Compose, действуйте следующим образом:
Обратите внимание, что в раскрывающемся меню «Язык» Kotlin — единственный доступный вариант, поскольку Jetpack Compose работает только с классами, написанными на Kotlin.
Это все равно что сказать:
«Уважаемые Java-разработчики, ваше время истекло. Теперь вам нужно перейти на Kotlin, чтобы воспользоваться всеми новыми преимуществами».
Спасибо за предполагаемую совместимость Java-Kotlin. Кроме того, рано или поздно вам придется выучить новый язык программирования.
С учетом сказанного, я считаю, что слишком сложно поддерживать радикальные изменения, и я думаю, что говорю не только за себя. Я не профессиональный разработчик Android, хотя у меня была достаточная доля программирования на платформе в рамках участия в программе Udacity Android Developer Nanodegree и ее окончания. Не будучи профессиональным разработчиком Android, мне просто не хватает мотивации заново изучить платформу.
Как выразился Майк Джеймс: «Я могу очень просто описать сегодняшнюю среду Android — слишком много оттока и слишком много неопределенности».


Добавить комментарий