Google Flutter скоро будет выпущен как продукт версии 1, готовый к использованию. Вопрос в том, стоит ли вам интересоваться способом создания почти нативных приложений, работающих на iOS или Android? Полагаю, это зависит от того, что означает «почти родной»?
Flutter — странный проект для поддержки Google. Он предназначен для создания приложений, работающих на iOS или Android. Поскольку Google действительно заинтересован только в том, чтобы заставить вас писать приложения для Android, трудно понять, какова мотивация помочь Apple в получении приложений.
Похоже, все это было продиктовано желанием сделать язык Дарт более полезным. Dart собирался заменить Google JavaScript, но он не получил необходимой внешней поддержки, поэтому его незаметно отодвинули на второй план. Затем, в начале года, казалось, что он вернулся к жизни с Flutter, кроссплатформенной средой разработки приложений, использующей Dart в качестве языка.
Теперь, примерно шесть месяцев спустя, у нас есть предварительный выпуск, который должен быть чем-то вроде кандидата на выпуск. Также есть официальный пост в блоге, в котором рассказывается о проекте. В нем упоминается 50% -ное увеличение числа активных пользователей Flutter, вход в топ-100 репозиториев на GitHub и множество групп пользователей, встреч и мероприятий. Что еще более важно, некоторые приложения на основе Flutter появляются в App Store и Play. Хотя все это хорошо, все же сложно сказать, есть ли у Flutter шанс взлететь. Повышение интереса — это не обязательно то же самое, что большой интерес.
Настоящий вопрос в том, зачем вам использовать Flutter?
Альтернативы — создать собственное приложение или веб-приложение. Проблема с собственными приложениями в том, что их сложнее создать, и вам понадобятся как минимум две, не такие похожие реализации. Веб-приложения развиваются в смысле прогрессивных приложений, но у них все еще есть свои проблемы. Если вы готовы использовать нестандартный подход, тогда Flutter может вам подойти. Это альтернатива подходам вроде PhoneGap / Cordova. Если PhoneGap / Cordova обертывает стандартное приложение HTML / JavaScript в расширенном браузере, чтобы создать что-то, похожее на собственное приложение, Flutter оборачивает пользовательский SDK / Dart пользовательского интерфейса в оболочку C ++. Другими очевидными альтернативами Flutter являются React Native и Xamarin.
Разработка с Flutter кажется довольно простой. Вы даже можете использовать Android Studio с надстройкой или альтернативной IDE. Большая часть Flutter связана с созданием пользовательского интерфейса в коде. Вы можете создать что-то, что будет хорошо смотреться на Android или iOS. Как только вы выйдете за пределы пользовательского интерфейса, все станет немного сложнее. Существует модуль взаимодействия, который предоставляет способы вызова собственного API из Dart. На стороне Dart это работает независимо от платформы, но цена заключается в том, что вам нужно предоставить встроенную реализацию функции.
Таким образом, вы можете более или менее изобрести собственную платформенную реализацию собственных API-интерфейсов. Это не так уж сложно, но было бы намного лучше, если бы Flutter обеспечил стандартную регуляризацию API-интерфейсов iOS и Android — но это был бы огромный проект. Более разумной была бы базовая реализация наиболее часто используемых вызовов API.
Из-за этого собственного взаимодействия API я не уверен, что вы могли бы создавать приложения, которые были бы такими же сложными, как полные собственные приложения — например, как бы вы использовали Android Fragments? Мне кажется, что идеальное приложение Flutter — это в основном пользовательский интерфейс с несколькими собственными вызовами API для предоставления данных. Конечно, прежде чем приступить к проекту разработки приложения Flutter, вы должны убедиться, что понимаете, как работает взаимодействие, и убедитесь, что у вас есть опыт работы с Android и iOS для реализации собственных компонентов проекта.
Скоро будет выпущен Flutter, и у нас есть еще один способ создания приложений. Будет интересно посмотреть, как высоко он может зайти.