Преглед на Google Flutter - Защо разработчиците на мобилни приложения обичат Flutter

Защо производителите на приложения обичат Flutter? Защото Flutter е невероятно.

Flutter обслужва както бизнеса (като предлага разумни разходи за разработка), така и разработчиците (като предлага голяма използваемост и бързина). Ето защо някои големи компании са преминали към Flutter, като Google Ads, Alibaba, Reflectly и много други.

Google свърши страхотна работа по изграждането на Flutter и те продължават да правят тази рамка още по-добра.

В тази публикация ще дам кратък преглед на Flutter и неговите чисто нови предимства и ще говоря защо тази рамка си заслужава да се работи. Освен това ще обсъдя какво може да попречи на големите компании да приемат Flutter.

Но първо нещата първо.

Каква е същността на пърхането?

Ето неща за Flutter, които може би вече знаете:

  • това е набор от инструменти с отворен код и различни платформи
  • приложенията са написани на езика за програмиране Dart
  • той има собствен графичен двигател (Skia)
  • той поддържа три платформи официално: iOS, Android и уеб (в бета версия)
  • неофициално - поддържа и десктоп

Google представи първата версия на Flutter в края на февруари 2018 г. Към април 2020 г. е налична версия 1.12.

Какво е толкова специалното в Flutter?

Flutter съчетава качеството на родните приложения с гъвкавостта при разработването на различни платформи.

Всъщност много инструменти за различни платформи ви позволяват да напишете кода веднъж и да го използвате както на iOS, така и на Android. И все пак не всички могат да направят един и същ вид като родно приложение.

Но точно това прави Flutter: вместо да бъде обвивка върху естествените компоненти на потребителския интерфейс (като React Native и Xamarin), Flutter рисува потребителския интерфейс от нулата.

Flutter поддържа родното изживяване и усещане за приложението и не е нужно да се притеснявате за неговото представяне на която и да е платформа.

Освен това, тъй като Flutter е рамка с отворен код, всеки разработчик може да прави промени в нея в GitHub и да изпраща заявки за обединяване. И ако погледнете популярността на Flutter - 90.4K GitHub звезди , 12k вилици и 18 445 ангажименти - ще получите идеята, че разработчиците обичат Flutter и допринасят за подобряването му.

Как работи Flutter?

Flutter не се компилира директно в приложения за iOS или Android . Приложенията се стартират въз основа на комбинация от механизъм за рендиране (изграден на C ++) и Flutter (изграден на Dart). Всички генерирани по този начин файлове се прикачват към всяко приложение и софтуер за SDK сглобявания за конкретна платформа.

Това е като разработката на играта: играта не разпределя своята рамка и функционалността се осъществява с механизма на играта. Същото е и за софтуера Flutter - всички приложения, базирани на Flutter SDK, заменят части от естествените рамки с елементи на Flutter.

Въпреки че може да повлияе на размера на крайното приложение, производителността все още е доста добра - рендирането се извършва със скорости до 120 FPS .

Благодарение на естествената компилация за ARM процесори, простото изобразяване и набор от интегрирани джаджи и инструменти, Flutter прави процеса на разработка по-опростен.

Освен това предлага няколко много вкусни функции като Hot Reload .

Ето как работи:

Когато кликнете върху бутона Hot Reload, всички промени в кода се показват веднага в джаджи, емулатори и симулатори. Приложението продължава да работи от мястото, където е било, преди да натиснете горещото презареждане: кодът се актуализира, но изпълнението продължава.

Защо да изберете Flutter за приложения с различни платформи?

Новите версии на Flutter ще продължават да излизат с по-разширени функции в ръкавите си. Но вече има много подобрени функции, които отлично обясняват защо Flutter е толкова обичан.

Първо , развитието на различни платформи с Flutter, противно на общоприетото схващане, не влошава софтуера.

Flutter се предлага с всички естествени джаджи за интерфейси за Android и iOS като Material Design и Cupertino. Освен това рамката може да промени поведението на отделни елементи, за да създаде подобен UX за потребителите на приложението.

Второ , Flutter дава възможност да се реализира дискретна компилация на файлове в режим на разработка. JiT компилацията ускорява разработката и отстраняването на грешки в софтуера.

Трето , Flutter дава възможност за гъвкав и мащабируем бекенд.

Той поддържа плъгини като Firebase, SQLite и т.н. (pub.dev ще ви помогне да намерите този, който ви е необходим). Firebase прави инфраструктурата на приложението мащабируема, безсървърна и излишна.

Така че, ако работите върху приложения, които изискват бази данни или функции в облак в реално време, Flutter ви е гръб.

И последното: Flutter е много лесен за научаване .

От самото начало разработчиците на Google си поставиха за цел да намалят бариерата за влизане. Те внимателно разработиха документация и ресурси, които разработчиците могат да използват. Той дори има специални раздели, които можете да използвате, за да започнете да изучавате рамката в зависимост от вашата специализация:

  • Flutter за разработчици на Android
  • Flutter за iOS разработчици
  • Flutter за React Native devs
  • Flutter за Xamarin. Формира разработчици
  • Flutter за уеб разработчици

Поради подробната документация на Flutter ще разберете как да пишете код в Dart, дори ако имате опит само с графичните инструменти на Unity за създаване на игри за Android.

Flutter 1.12 (последна версия) и неговите предимства

Нека да видим какви актуални функции Flutter представи в последната си версия 1.12:

iOS тъмен режим

Отсега нататък Flutter поддържа външния вид и усещане на iOS 13, включително пълна поддръжка на тъмен режим в джаджите от Купертино. И не става въпрос само за смяна на фона, а за адаптиране на останалите цветове, за да бъде добър мач.

Поддръжка на добавка към приложение

Друго голямо подобрение е актуализацията Add-to-App, която е за интегриране на Flutter във вече съществуващи приложения за iOS / Android.

Новата версия на Flutter поддържа добавяне на един екземпляр на цял екран Flutter към приложението, заедно с:

  • Стабилизирана интеграция на API в Java, Kotlin, Objective-C и Swift
  • Поддръжка за използване на приставки в модулите на Flutter
  • Допълнителни механизми за интеграция чрез Android AAR и iOS рамки

Бета уеб поддръжка

Новите Flutter master, dev и бета канали осигуряват подобрена поддръжка за мрежата. Искате няколко примера?

Ето Rivet , образователен проект, който използва Flutter и Firebase за създаване на уеб версия на тяхното приложение.

Дарт 2.7

Новата версия на рамката представя Dart 2.7.

Тази актуализация подобрява практическата работа с Dart 2.5 в това как безопасни низове се справят със способностите и процесите на разширение. Това помага на разработчиците да предотвратяват грешки, когато променливите получават нулева стойност и анализират цели числа в низ.

И ето някои други функции на най-новата версия на Flutter:

  • поддръжка на настолен компютър macOS (алфа)
  • отстраняване на грешки на няколко устройства
  • тестване на златни изображения
  • Подобрения в изграждането на Android
  • актуализиран DartPad

Добре е, но не и без проблеми: Какво задържа разработчиците?

Flutter е наистина страхотен: лесен за стартиране, лесен за работа и представен от огромна технологична компания. И все пак ето причините, поради които вашият старши разработчик може да не споделя вашия оптимизъм.

(Ниска) популярност на Дарт

За разлика от Java / Kotlin за Android или Swift / Objective-C за iOS, Dart все още няма висока популярност. И е малко вероятно да стане.

Dart не е твърде трудно да се научи и има много уроци (като този), но някои разработчици продължават да се придържат към Java и други познати инструменти.

В същото време не можете да използвате Flutter и да не използвате Dart: дори функцията убиец на Flutter - Hot Reload - няма да работи без Dart.

Не поддържа всички устройства

Не можете да създавате приложения за 32-битови iOS устройства като тези, по-стари от iPhone 5s. Същото е и за настолните компютри на Windows: не можете да стартирате Flutter на вашия 32-битов лаптоп.

И разработчиците на Flutter нямат планове да го поправят, тъй като „това би изисквало много значителна работа“.

Така че, ако искате да кодирате с Flutter, ще трябва да притежавате x64-битово устройство или да надстроите това, което използвате сега.

Ограничен брой библиотеки

Въпреки че има много Flutter libs като fl_chart (за рисуване на графики във Flutter), path_provider (използва се за намиране на файл в Android / iOS), flutter_sliding_tutorial и много други, броят им все още е ограничен.

Това не е трудно да се обясни: Flutter е относително нова рамка и разработчиците не са имали достатъчно време да разработят толкова библиотеки, колкото родните езици предлагат.

И все пак най-важните библиотеки вече са там и през цялото време излизат нови.

Flutter приложенията са по-големи по размер

... в сравнение с местните разработени приложения. Екипът на Flutter измери минималния размер на приложението (без Материални компоненти, само една джаджа Center, изградена с apk build flutter --split-per-abi), в пакет и компресиран, на 4.3 MB за ARM и 4.6 MB за ARM 64 .

Основното приложение сега е ~ 4MB в Android и ~ 10MB в iOS.

Малко доказана експертиза

Flutter може да е обичан от разработчиците, но големите компании не са побързали да спрат да правят собствени (или React Native) приложения и да се обърнат към Flutter.

За повечето компании най-големият проблем е новостта на Flutter. Dart е по-нов от Java или C #, а самият Flutter е съвсем нов.

Разбира се, има много приложения с отворен код на Flutter, включително големи като Google Ads или Хамилтън (вижте пълния списък тук), но не твърде много.

И никой не иска да бъде човекът, който приема чисто нова рамка, само за да трябва да премине към родно развитие няколко месеца по-късно.

Но още по-важното е, че Flutter е пътят, по който вървите сами:

  • няма много потвърдени най-добри практики (поне при мащабни проекти)
  • винаги има шанс да сте първият, изправен пред този конкретен проблем
  • малко надежда някой да ви помогне - ще трябва да предприемете всяка стъпка внимателно и да сте готови да се изправите срещу последствията

Къде да използвам Flutter

На първо място, по-добре е да използвате Flutter за стартиране на MVP, когато имате ограничено време и често пари за проверка на бизнес модела.

Приложението Flutter е по-евтино *:

  • * в сравнение с цената на две собствени приложения
  • екипът за разработка е с 40% по-малък
  • линейни процеси
  • можете да отделите повече време за работа върху функциите на приложението

Избирайки проект за Flutter, вие намалявате броя на часовете за разработка. Развитието на трептене не отнема толкова време в сравнение с родното.

Ето един пример. Да приемем, че правите подобно на Instagram приложение за две платформи. развитие IOS ще отнеме, грубо, на около 700 часа, Android - също 700h .

С Flutter ще покриете и двете платформи и ще спестите време: 700h Android + 700h iOS срещу 700h Flutter.

Спестявате тонове време, което можете да отделите за нещо друго, като полиране на функциите.

Обобщавайки

Ако създавате приложения за ограничен период от време с ограничен бюджет, Flutter определено си струва да опитате.

То е също толкова добро, колкото изглежда, и с всяка нова актуализация разработчиците на Google добавят още равномерни инструменти за развитие на различни платформи.

Разбира се, тази рамка може да изглежда необичайна за любителите на C # и Java, но не означава, че ще ви принуди да излезете от зоната си на комфорт. След като овладеете малките синтаксисни разлики, скоро ще видите, че разработката на потребителски интерфейс върви няколко пъти по-бързо в сравнение с родната разработка.

И ако успеете и ако Flutter остане наоколо, това може да ви донесе вълнуващо мобилно изживяване и възможности в бъдеще.