Начну с того, что такое Flutter и почему я остановил выбор именно на этом стеке. А если вы читаете эту статью, то для вас эта тема близка.
Итак, Flutter — это фреймворк, с бесплатным и открытым набором данных. А главное преимущество — с помощью Flutter можно разрабатывать мобильные приложения на разных платформах. Основные компоненты Flutter включают язык программирования Dart, движок Flutter и библиотеку Foundation.
Выбрал я Flutter из-за его основного плюса — кроссплатформенности. Один код на все устройства, прелесть же. И теперь с последними обновлениями Flutter — это не только про mobile, но и про MacOS, Web, Linux и Windows. В общем, я попал в яблочко.
Как я уже писал, Flutter написан на Dart — это язык программирования Google. Он оптимизируемый и заточен для создания пользовательского интерфейса. Синтаксис Dart мощный и чистый. Он создает такие условия, в которых можно создавать кастомный дизайн приложения, при этом сохранять четкую архитектуру. Если вы уже знаете Java, C# и им подобные, вы легко изучите Dart, значит сможете быстро вникнуть и работать на Flutter.
Почему Flutter может покорить сердце Mobile-разработчика:
Функция Hot Reload — позволяет мгновенно обновлять UI после внесения изменений в верстку.
Hot Restart — быстрый перезапуск приложения. Полезно, когда произошли глобальные изменения в коде.
Поддержка различных библиотек от pub.dev.
Собственный графический движок.
Flutter не обращается к нативу. Вместо этого Dart запускает собственный контейнер на устройстве, который отображает весь контент Flutter. За счет этого Flutter быстрее других кроссплатформенных фреймворков.
Но конечно, есть и свои сложности, вот некоторые из них:
Большое количество платформ, на которых выпускается Flutter. Следовательно, нужно иметь представление об устройстве этих платформ, понимать языки, на которых они написаны.
Строгая типизированность Dart не позволит не объявлять тип переменной, как в JavaScript. Оно и к лучшему.
Flutter может показаться простым, но, чтобы правильно и чисто писать код, нужно знать всю его «внутрянку».