Обычно мы не говорим об альфа-выпусках, но этот важен, потому что он дает направление, в котором продвигается разработка Android. Шок заключается в том, что он осуждает большую часть того, что мы уже узнали, и вводит еще один подход.
Нет сомнений в том, что будущее Android-разработки за Kotlin, но недавнее объявление о том, что Jetpack Compose будет работать только с Kotlin, стало чем-то вроде шока. На самом деле, идея о том, что разработка пользовательского интерфейса Android может быть изменена на что-то новое, независимо от выбора языка, является шоком.
Рассмотрим работу и усилия, которые были вложены в Android Studio, чтобы сделать разработку пользовательского интерфейса простой и эффективной. Создание дизайнера пользовательского интерфейса стало большим шагом вперед, позволив новичкам участвовать в разработке Android. Это также упростило создание быстрых прототипов. Я знаю, что многие профессионалы Android утверждают, что не используют дизайнер пользовательского интерфейса, а создают пользовательский интерфейс в необработанном XML — ну, мы все можем выбрать трудный путь, если захотим.
Команда Android Studio пересмотрела дизайнера пользовательского интерфейса и то, как пользовательский интерфейс неуклонно реализуется, и это само по себе является поводом для беспокойства. Уровень оттока неприемлем. Это делает то, что вы упорно трудились, чтобы узнать неуместны. Он отображает так много документации, руководств, онлайн-курсов и т. Д., А также устаревших материалов. Где вы можете найти однозначное «вот как вы это делаете», если игра продолжает меняться так быстро?
Да, я знаю — мантра состоит в том, чтобы двигаться быстро и ломать вещи, но при этом поддерживать обратную совместимость и знания ваших преданных разработчиков. Однако это не маневренность, это схватка.
С введением макета ограничений, его включением в качестве макета по умолчанию в дизайнере пользовательского интерфейса и перемещением относительного макета в «устаревшую» корзину в недавнем выпуске я надеялся, что мы, возможно, вступаем в эру стабильности с Android Studio 4 — но нет. В первую очередь в списке новых функций стоит Jetpack Compose — совершенно новый способ создания пользовательского интерфейса Android!
Ты можешь в это поверить? Может быть, Compose лучше, пока рано говорить, но идея о том, что команда разработчиков Android может просто заменить все, что было раньше, предполагает отсутствие лидерства. Мы уже видели это раньше в безумной панике, связанной с необходимостью идти в ногу с Java, и плохо продуманной идее компиляторов Джека и Джилл. Это может быть принятие схемы ограничений и другие капризные изменения, которые также свидетельствуют об отсутствии сильного общего направления.
Android Studio 4 чересчур сложен и, несмотря на пропаганду, с появлением новых слоев проще не становится. Взгляните на видео «продающий» нам Compose. Самая важная вещь, на которую следует обратить внимание, это то, что сравнение между почти декларативным кодом Compose и полностью декларативным XML состоит в том, что команда Compose не использует конструктор !! Какого рода общение происходит здесь, когда одна команда, разрабатывающая новый подход к пользовательскому интерфейсу, кажется, не знает альтернатив? Есть много других примеров нивелирования игрового поля из-за выбора конкурирующего подхода.
Идея перехода от полноценного UI-дизайнера к предварительному просмотру, который на данный момент скрывает часть кода, с которым вы работаете, безумна и совершенно нежелательна.
Хорошо, а как насчет того, чтобы Android Studio 4 игнорировала отток Compose? Во-первых, сложно игнорировать Compose, потому что его поддержка в 4 имеет звездочку. Помимо этого есть множество мелких улучшений, но ничего серьезного или важного. Android Studio по-прежнему потребляет много ресурсов и работает медленно. У нас есть больше поддержки для Java 8, но подождите, я думал, что будущее за Kotlin? У нас также есть обновленный инспектор макетов в реальном времени и улучшения в дизайнере и, в частности, в редакторе анимации. Редактор анимации позволяет создавать интерактивную анимацию и создает за вас XML.
Также есть новый мастер фрагментов, который должен упростить использование фрагментов. Лично я считаю, что фрагменты были худшей идеей, когда-либо появившейся в среде Android, и приветствуется все, что упрощает их использование. Существует также галерея шаблонов фрагментов, упрощающая добавление стандартных фрагментов в пользовательский интерфейс. Изменение, в котором я не уверен, хорошее, заключается в том, что базовый шаблон приложения теперь поставляется с двумя стандартными фрагментами — этого достаточно, чтобы напугать любого новичка, поскольку то, как они работают, далеко не очевидно. Я надеюсь, что это изменение будет отменено до выхода финальной версии, но, учитывая мои выводы о том, как идет разработка Android Studio, я сомневаюсь в этом.
Мои другие жалобы включают тот факт, что в Android Studio отсутствует простой способ добавить пользовательские виджеты или даже стандартные виджеты в палитру дизайнера. Система шаблонов не документирована. Вся система фрагментов и схем ограничений слишком сложна и хрупка.
Да, нам нужно кое-что, чтобы наладить разработку под Android, но не путем начала, которое отбрасывает все, что у нас есть. И вы можете сказать: «Хорошо, вам не обязательно его использовать», но из-за того, как он продается, давление использовать его будет расти, и программисты не всегда могут делать логический выбор. Сочинение — это новый способ, и обычно предполагается, что новый способ — единственный или, по крайней мере, основной путь.
Майк Джеймс — автор книг «Программирование Android в Kotlin: Начиная с приложения» и «Программирование Android в Java: Начиная с приложения», 3-е издание, посвященное Android Studio 3.