Noveo

Наш блог Flutter: история знакомства

Flutter: история знакомства

Старший разработчик Noveo Александр рассказывает историю своего знакомства с фреймворком Flutter, делится впечатлениями о технологии и дает краткий обзор учебного курса, благодаря которому это знакомство состоялось.

Введение

Почему я решил проходить курс по Flutter?

 

В своё время React Native произвёл фурор на рынке кроссплатформенной разработки мобильных приложений, предоставив React-разработчикам понятный им инструмент, который позволил бы создавать мобильные приложения, близкие к нативным по производительности за счёт использования нативных компонентов интерфейса платформ iOS и Android. Этот крайне приятный бонус и определил тогда мой переход в мобильную разработку на React Native.

 

Я занимаюсь разработкой на React Native около четырёх лет. На протяжении последних полутора лет я всё чаще начинал ловить себя на мысли о том, что экосистема React Native если не увядает, то находится в состоянии стагнации.

 

Этому способствовал и ряд заявлений известных компаний об отказе от использования React Native, и отсутствие каких-либо весомых и значимых обновлений, которые бы качественно толкали вперёд развитие самого фреймворка. Помимо этого, периодически попадалось множество нерешённых проблем в официальном GitHub-репозитории, в комментариях к которым часто можно было увидеть фразы вида: «Another reason to try Flutter…». А также значительный рост Flutter-сообщества: на момент написания статьи количество звёзд Flutter-репозитория опережает таковое у React Native на двадцать пять тысяч.

Flutter vs React Native

 

 

С позитивными мыслями о том, что разработка на Flutter обещает меньше проблем, позволит создавать приложения, которые идентичны по производительности нативным (за счёт полноценной компиляции Dart в машинный код, собственного рендер-движка и ряда других средств оптимизации), и о том, что разработка будет вестись на инструменте, давно вышедшем в официальный релиз, я и приступил к прохождению курса.

О выбранном курсе

Почему в качестве формата обучения я выбрал именно курс? Для себя я уже давно решил, что такой способ является наиболее продуктивным и результативным при погружении в совершенно новую тему. Грамотно структурированный курс и опытный преподаватель создают ощущение живого общения при обучении, кроме того, такой формат даёт возможность задавать вопросы и получать ответы, хорошие преподаватели регулярно обновляют материалы в своих курсах и поддерживают их в актуальном состоянии. Книги же по профильной теме зачастую могут устареть через год.

 

Для изучения Flutter я выбрал курс «Flutter & Dart — The Complete Guide» на Udemy от Maximilian Schwarzmüller; я уже проходил несколько курсов от этого преподавателя, и у меня остались только положительные впечатления.

Структура курса

Курс рассчитан на разработчиков, которые ранее не сталкивались ни с Flutter, ни с Dart. По мере прохождения курса рассматриваются основные концепции языка Dart, внутренняя архитектура Flutter, ведётся разработка нескольких учебных приложений, каждое из которых позволяет познакомиться с теми или иными аспектами разработки:

  • Встроенные виджеты Flutter.
  • Вёрстка экранов и создание пользовательских виджетов.
  • Навигация в приложении.
  • Решения по управлению состоянием приложения.
  • Работа с формами и обработка введённых пользователем данных.
  • Взаимодействие с бэкендом.
  • Особенности работы с аппаратными возможностями платформ: камера, геолокация и т.д.
  • Создание красивых и производительных анимаций.
  • Интеграция с сервисом Firebase.

 

Помимо этого, автор рассказывает о доступных инструментах разработчика, которые позволяют нам анализировать разрабатываемое приложение, находить и устранять возникающие ошибки.

 

 

Отзыв о курсе

После прохождения курса у меня сформировалось представление о том, как устроена экосистема Flutter, какие возможности даёт фреймворк, появился опыт создания пусть и учебных, но имеющих реальную ценность приложений. Учиться было приятно и увлекательно, особенно в те моменты, когда я сталкивался с ситуациями, в которых фреймворк действительно оправдывал выражение «Yet another reason to try Flutter…».

Митап по итогам курса

Пройдя курс, я решил поделиться опытом о своём знакомстве с технологией с коллегами, и был организован внутренний митап по Flutter.

 

В сжатой форме я попытался продемонстрировать концентрат учебных материалов курса. Мы поговорили об архитектуре Flutter, ключевых концепциях, возможностях, которые нам даёт технология, и как решаются основные задачи, с которыми сталкивается разработчик.

 

В завершении встречи мы обсудили новые возможности, которые предоставил нам недавний релиз Flutter 2, и как их предполагают использовать крупные IT-компании, а именно:

  • Flutter для Web готов к использованию в production. При этом Web становится всего лишь ещё одной целевой платформой для сборки, подобно iOS и Android.
  • Flutter для Desktop-платформ перешёл в стабильный канал разработки. Это означает, что мы уже можем пробовать писать приложения для Windows, Mac и Linux.
  • В Dart добавили поддержку null safety. Теперь система типов Dart помогает избежать ошибок типа null reference. Если поддержка null safety реализована, то она даёт математическую гарантию, что такая ошибка не возникнет.
  • Canonical, разработчики Ubuntu, сообщили, что намерены использовать Flutter в качестве фреймворка по умолчанию для написания десктоп-приложений.
  • На презентации Flutter 2 Toyota сообщила, что намерена использовать фреймворк в качестве решения для информационно-развлекательных систем в своих автомобилях.

Заключение

В заключение хочу сказать, что по итогам знакомства Flutter крайне приятно удивил меня. Технология активно развивается, сообщество разработчиков растёт вслед за ней. На текущий момент это единственная известная мне технология, которая позволяет создавать кроссплатформенные приложения по принципу «Write once, use everywhere» с наименьшим количеством оговорок и подводных камней. Одна кодовая база, сборка под разные платформы.

 

Фреймворк прекрасно задокументирован, разработчики регулярно выпускают и обновляют учебные материалы по тем или иным аспектам разработки.

 

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

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

НазадПредыдущий пост ВпередСледующий пост

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: