Что такое Flutter и почему вы должны изучать его в 2020 году

Привет, Хабр! Представляю вашему вниманию перевод статьи: "What is Flutter and Why You Should Learn It in 2020" автора Gaël Thomas.


Что такое Flutter?


Flutter — бесплатный и открытый набор средств разработки мобильного пользовательского интерфейса, созданный компанией Google и выпущенный в мае 2017 года. Проще говоря, с помощью Flutter возможно создать собственное мобильное приложение с одним массивом кода. Это означает, что для создания двух приложений (IOS и Android) можно использовать единый язык программирования и одну базу кода.


Flutter нацелен на две важные вещи:


  • SDK (Software Development Kit): набор инструментов, который поможет вам в разработке приложений. Он включает инструменты для компиляции кода в нативном машинном коде (код для IOS и Android).
  • Framework (Библиотека пользовательского интерфейса на основе виджетов): Коллекция функциональных элементов пользовательского интерфейса (кнопок, текстовых вводов, ползунков и т.д.), которые можно персонализировать под личные предпочтения.

Для разработки с Flutter используется язык программирования под названием Dart. Это также язык Google, созданный в октябре 2011 года, но значительно улучшившийся в последние годы.


Dart фокусируется на развитии вёрстки веб-страниц; его можно с легкостью использовать для создания мобильных и веб-приложений.


Зачем тебе учиться Flutter ?


Я приведу пару причин, почему мне нравится Flutter и я предпочту использовать его в следующем году.


image


Компании пользующиеся Flutter


Простое обучение и развитие


Flutter — современная платформа! С его помощью намного легче создавать мобильные приложения. Если вы пользовались Java, Swift или React Native, то знайте: Flutter представляет собой немного другое.


Лично мне никогда не нравилась разработка мобильных приложений до того, как я начал использовать Flutter.


Что мне нравится во Flutter? Так это то, что можно написать нативное приложение без кучи кода.


Быстрая компиляция: максимум производительности


Благодаря Flutter, вы можете изменять свой код и видеть результаты в реальном времени. Это называется Hot-Reload. Для обновления самого приложения требуется совсем немного времени. Некоторые значительные модификации могут перезагрузить приложение, но если вы работаете, как дизайнер, например, изменяете размер элементов, то это возможно просто в режиме Hot-Reload!


image


Идеально подходит для запуска MVP (Минимально жизнеспособный продукт)


Если вам нужно представить свой продукт инвесторам как можно скорее, вы можете использовать Flutter!


4 основные причины использовать Flutter для вашего MVP:


  • Разработать мобильное приложение с Flutter дешевле, потому что не нужно создавать и — поддерживать два мобильных приложения (одно для IOS и Android).
  • Для создания MVP достаточно одного разработчика.
  • Это эффективно; невозможно заметить разницу между нативным приложением и приложением Flutter.
  • Это красиво; Вы можете легко использовать виджеты, предоставляемые Flutter, и персонализировать их для создания оригинального пользовательского интерфейса для ваших клиентов.

Растущее сообщество


У Flutter классное, мощное сообщество, и это только начало!


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


Когда я начал использовать Flutter, первое, к чему я приступил, искал сообщества, и был удивлен… Существует просто огромное количество ресурсов для обмена опытом и общения!


Поддержка Android Studio и VS Code


Flutter доступен в различных IDE. Два основных редактора кода и разработки с помощью этой технологией — Android Studio (IntelliJ) и VS Code.


Android Studio — это полноценное программное обеспечение, где все нужное уже интегрировано; для запуска необходимо загрузить плагины Flutter и Dart.


VS Code — простой инструмент, все конфигурируется через плагины с маркетплейса.


Я использую Android Studio, потому что мне не нужно настраивать много параметров для работы.


Но вы можете выбрать предпочтительную вам среду IDE!


Фриланс


Если вы хотите начать с фриланса, вам стоит задуматься о Flutter!


В 2020 году эта технология должна выстрелить. Много компаний собирается искать разработчиков в этой сфере.


Крупнейшая во Франции платформа для фрилансеров под названием Malt недавно опубликовала технологические тенденции этого года. Flutter возрос на 303% на этой платформе в период с 2018 по 2019 год.


image


Статистика Flutter — Malt


Заключение


Надеюсь, что это введение в технологию вас заинтересовало и мотивировало. Что вы думаете о Flutter? Захотели попробовать его в следующем году?

AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 16

    +2
    React Native уже не канает да?)
      +1
      Так и в статье не написано, что Flutter является единственной универсальной средой. У каждого свои преимущества и недостатки.
      +4
      У Флатера упор на анимации, у React Native тоже есть анимация но у флатера она гораздо удобнее, там больше возможностей и делается она проще. Но «паровозный» код флаттера мне лично не нравится и хуже читается чем у RN.
        +1
        Намного хуже я бы сказал, а то сильно веская причина в пользу RN
          0
          Что значит «паровозный» код?
            +1
            Это значит — если тот, кто писал этот код уволиться или что-то иное, то команда не сможет завершить этот проект адекватно или за адекватные сроки, т.к. этот код будет непонятным, не очевидным, не поддерживаемым.
            Иными словами если с первой попытки проект не вывести в прод, до тех пор пока тот кто его делал с начала не уволится, то шанс его вывести в прод будет крайне мал)
              +2
              Ну что значит проект не можно будет завершить? На любом языке можно написать тонны макарон и паровозов. Чтобы не было длинных паровозов нужно выделять код в отдельные функции/виджеты. И в Dart-е никто же не отменял нормальных практик написания кода.
            +2
            Паровозный код можно писать на всех языках. На Flutter можно писать нормально.
            +1
            Красиво так написано, прямо “silver bullet”, а вот про минусы Flutter автор исходной статьи не удосужился сообщить (((
              +1
              Какие, на ваш взгляд, минусы?
                0
                Я не знаком с Flutter, так как разрабатывал на Java. Вот и хотел примериться к новой технологии. Но судя по всему статья однобокая и поверхностная. Например ничего не говориться про то как Flutter обрабатывает жизненный цикл (поворот экрана, уход в спящий режим). Очевидно что любая программная прослойка будет жрать ресурсы. Только понять где Flutter стоит — над Java или вместо Java (в Андроиде)?
                  +1
                  есть отличный доклад Артура Василова на эту тему
                    +1
                    Под Android это выглядит как нативное приложение на Java/Kotlin с одной Activity, в которой либа на Flutter рисует весь интерфейс. Эта либа компилится под конкретную архитектуру процессора при помощи NDK и подключенная через JNI.
                    С одной стороны это надстройка над Java, с другой стороны работает быстро как системные библиотеки.
                    Рисование производится при помощи SKIA, которая используется в том числе и самим Android для рисования интерфейса.
                      +1
                      Для себя я отметил следующие недостатки:
                      • всё-таки не до конца нативный вид под обоими платформами, в каких-то мелких деталях
                      • больше APK на размер рантайма Flutter ~5Mb
                      • немного дольше старт, так как сперва стартует Activity, которая потом грузит эту либу и только после этого что-то начинает отрисовываться
                      • сложнее взаимодействие с платформой, которое неизбежно, когда нет нужной либы на Dart Pub
                      • на декларативном UI иногда бывает сложнее и/или менее эффективно написать код по сравнению с обычным императивным подходом
                      • Dart как язык сильно уступает Kotlin, хотя большинство кейсов он покрывает, но нужно писать больше буков и скобочек
                      • Однопоточный язык, сложнее делать всякие реально асинхронные операции. Есть только аналог ServiceWorker как в браузере
                      • Background сервисы flutter и dart не покрывают. Там надо писать нативно.


                      Возможно что-то еще забыл…
                        0
                        Больше на 5 метров? У меня Hello World на iOS собирается либо в 56 Мб в отладочной версии, либо в 13 Мб для финальной. Плюс после десятка запусков «данные приложения» распухли до 6 Мб.
                  +1
                  На досуге как-то посмотрел флаттер (основное занятие у меня — это android и kotlin) — так вот весьма понравилось мне. По тьюториалам, конечно, сложно судить, но то, что я видел и пробовал, очень неплохо. Понравилось, как работают с состояниями и как изменения в состояниях рендерится на UI.

                  Длинный код (всё описание view в коде) с непривычки — да, необычно. Можно нагородить нечитаемых вещей. Но, как я понимаю, в Compose будет примерно так же.

                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                  Самое читаемое