суббота, 6 апреля 2019 г.

Flutter + Android = Awesome


Я довольно редко радуюсь какой-то хорошей либе, новому SDK, т.к. во многом опыт, в том числе и негативный, даёт о себе знать. Но иногда всё же появляются вещи, которые сначала вызывают скепсис, а потом начинают нравиться. Одной из таких вещей стал для меня Flutter.

Мало кто знает, но когда я был ещё студентом, мне пришлось немного поработать за Android, когда ещё его 2.0 версия была довольно живой, а Android ещё только завоёвывал своё место под солнцем. Кодилось это всё дело под Java и было чертовски неудобно, т.к. эмулятор тормозил и жрал память (obligatory Java joke, да) и единственный нормальный способ работать с Android был - на реальном устройстве. Прошло несколько лет и, во многом, потрогав недавно это всё снова, я обнаружил, что классические проблемы эмулятора не ушли и некоторые вещи остались теми же самыми. Ну и добавились новые, например сборка при помощи Gradle готового приложения занимала просто кучу времени, разрабатывать под Android 4.1 (который юзается у меня) стало по классической формуле просто жутко неудобно (а то и невозможно, Android Studio просто отказывалось работать). Это вдвойне обидно, т.к. я конечно люблю работать на нативных для системы SDK, но, судя по всему, не судьба.

Собственно, поискав, я набрёл на Flutter  . Сначала всё же, у меня был скепсис, но он  развеялся, когда я узнал что он поддерживает Android 4.1. И захотелось попробовать.

Во многом, я пошёл по хелловорлдному гайду, поставив его на Android Studio. И о чудо: всё завелось, допиливать приложение оказалось чертовски просто, потому что:
  • Хот-релоад, который занимает хоть и занимает секунд 5 - но всё же. Для сравнения простой билд с Gradle предыдущего приложения занимал почему-то минут 15. Разобраться с этим почему-то было невозможно, всё выглядело нормально, но пересборка отнимала кучу времени.
  • Разметка интерфейса кодом. Это вообще отлично - я не знаю, какие мазохисты придумали разметку в виде XML, но Flutter избавлен от этого уродства. Виджеты добавляются буквально за секунды. Внести мелкую правку? 10 минут и всё, готово.
  • Синтаксис на Dart. Это не супер-победа, но всё же лучше многословной Java.
  • Удобная нативная отладка в Android Studio
  • И самое главное: тупой деплой в лоб на старые устройства. Вот просто совсем-совсем тупой. Подключил и заработало. Никаких подборов SDK и прочего.
Из недостатков можно назвать разве что первую сборку - она длится просто ужас как долго, из-за того что скачиваются Gradle, Flutter SDK и куча других либ. У меня она длилась где-то 0,5-1,5ч, пока это добро качалось. Но потом всё заводилось буквально за меньше чем минуту.

Что я не проверил:
  • Сборку под iOS - не на чем было тестировать.
  • Пуши - не было интересно.
  • Выкладку в Google Marketplace.
Но вообще верится, что сверхпроблемой это не станет. Если ешё не пробовали - попробуйте. 

Комментариев нет:

Отправить комментарий