Огляд Google Flutter - Чому розробники мобільних додатків люблять Flutter

Чому виробники додатків люблять Flutter? Бо Флаттер дивовижний.

Flutter обслуговує як бізнес (пропонуючи розумні витрати на розробку), так і розробників (пропонуючи велику зручність та швидкість). Ось чому деякі великі компанії перейшли на Flutter, такі як Google Ads, Alibaba, Reflectly та багато інших.

Google зробив чудову роботу зі створення Flutter, і вони продовжують вдосконалювати цю структуру.

У цьому дописі я дам короткий огляд Flutter та його абсолютно нових пільг, і я розповім про те, чому з цим фреймворком варто працювати. Плюс, я обговорю, що може стримувати великі компанії від прийняття Flutter.

Але перш за все.

У чому суть метушні?

Ось речі про Флаттера, які ви вже могли знати:

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

Google представив першу версію Flutter наприкінці лютого 2018 року. Станом на квітень 2020 року доступна версія 1.12.

У чому особливість Флаттера?

Flutter поєднує в собі якість власних додатків та гнучкість крос-платформної розробки.

Насправді, багато крос-платформних інструментів дозволяють писати код один раз і використовувати його на iOS і Android. Проте не всі можуть надати однаковий вигляд як рідна програма.

Але це саме те, що робить Flutter: замість того, щоб бути обгорткою поверх власних компонентів інтерфейсу користувача (таких як React Native та Xamarin), Flutter малює інтерфейс з нуля.

Flutter підтримує природний досвід і відчуття роботи програми, і вам не доведеться турбуватися про її ефективність на будь-якій платформі.

Крім того, оскільки Flutter є фреймворком з відкритим кодом, будь-який розробник може вносити до нього зміни на GitHub і надсилати запити на злиття. І якщо ви подивитеся на популярність флатера в - 90.4K GitHub зірки , 12k вилки і 18,445 фіксацій - ви отримаєте ідею , що розробники люблять Flutter і внести свій вклад , щоб зробити його краще.

Як працює Flutter?

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

Це подібно до розробки ігор: гра не розподіляє свої рамки, а функціональність здійснюється за допомогою ігрового движка. Те саме для програмного забезпечення Flutter - усі програми, засновані на Flutter SDK, замінюють частини рідних фреймворків елементами Flutter.

Незважаючи на те, що це може вплинути на розмір кінцевої програми, продуктивність все ще досить хороша - візуалізація проводиться зі швидкістю до 120 кадрів в секунду .

Завдяки власній компіляції для процесорів ARM, простому візуалізації та набору інтегрованих віджетів та інструментів, Flutter спрощує процес розробки.

Крім того, він пропонує кілька дуже смачних функцій, таких як Hot Reload .

Ось як це працює:

Коли ви натискаєте кнопку гарячого перезавантаження, усі зміни в коді одразу відображаються в гаджетах, емуляторах і тренажерах. Додаток продовжує працювати з того місця, де був до того, як ви перейшли на гаряче перезавантаження: код оновлюється, але виконання продовжується.

Чому вибрати Flutter для крос-платформних додатків?

Нові версії Flutter продовжуватимуть виходити з більш розширеними функціями у рукавах. Але вже є багато вдосконалених функцій, які чудово пояснюють, чому Флаттера так люблять.

По-перше , крос-платформна розробка за допомогою Flutter, всупереч поширеній думці, не погіршує програмне забезпечення.

Flutter поставляється з усіма рідними віджетами для інтерфейсів Android та iOS, таких як Material Design та Cupertino. Крім того, фреймворк може змінити поведінку окремих елементів, щоб створити подібний UX для користувачів програми.

По-друге , Flutter дозволяє реалізувати дискретну компіляцію файлів у режимі розробника. Компіляція JiT прискорює розробку та налагодження програмного забезпечення.

По-третє , Flutter забезпечує гнучку та масштабовану бекенд.

Він підтримує такі плагіни, як Firebase, SQLite тощо (pub.dev допоможе вам знайти потрібний). Firebase робить інфраструктуру програми масштабованою, безсерверною та надлишковою.

Отже, якщо ви працюєте над програмами, які потребують баз даних у реальному часі або хмарних функцій, Flutter вам допоможе.

І останнє: Флаттер дуже легко навчитися .

З самого початку розробники Google поставили за мету знизити бар’єр для входу. Вони ретельно опрацювали документацію та ресурси, якими можуть користуватися розробники. У ньому навіть є спеціальні розділи, якими ви можете розпочати вивчення фреймворку залежно від вашої спеціалізації:

  • Flutter для розробників Android
  • Flutter для розробників iOS
  • Флаттер для рідних розробників React
  • Флаттер для Xamarin. Форми розробників
  • Флаттер для веб-розробників

Завдяки детальній документації 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, таких як fl_chart (для малювання графіки у Flutter ), path_provider (використовується для пошуку файлу на Android / iOS), flutter_sliding_tutorial та багато іншого, кількість все ще обмежена.

Це не важко пояснити: Flutter - це відносно новий фреймворк, і розробники не мали достатньо часу, щоб розробити стільки бібліотек, скільки пропонують рідні мови.

І все-таки найважливіші бібліотеки вже є, і постійно з’являються нові.

Додатки Flutter мають більший розмір

... у порівнянні з власними розробленими програмами. Команда Flutter виміряла мінімальний розмір програми (без Матеріальних компонентів, лише один віджет Центру, побудований з apk build flutter --split-per-abi), в комплекті та стисненому, до 4,3 МБ для ARM та 4,6 МБ для ARM 64 .

Зараз основним додатком є ​​~ 4 Мб в Android і ~ 10 Мб в iOS.

Мало доведеного досвіду

Можливо, розробники люблять Flutter, але великі компанії не поспішали припиняти створювати власні (або React Native) програми та звертатися до Flutter.

Для більшості компаній найбільшою проблемою є новинка Flutter. Dart новіший за Java або C #, а сам Flutter - абсолютно новий.

Звичайно, існує багато програм із відкритим кодом Flutter, включаючи такі великі, як Google Ads або Hamilton (перегляньте повний список тут), але не надто багато.

І ніхто не хоче бути людиною, яка приймає абсолютно нові рамки, аби через кілька місяців перейти на власний розвиток.

Але що ще важливіше, те, що Флаттер - це шлях, по якому ти йдеш сам:

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

Де використовувати Flutter

Перш за все, краще використовувати Flutter для стартапів MVP, коли у вас є обмежений час і часто гроші для перевірки бізнес-моделі.

Додаток Flutter дешевший *:

  • * порівняно з вартістю двох власних додатків
  • команда розробників на 40% менша
  • лінійні процеси
  • Ви можете витратити більше часу на роботу над функціями програми

Вибираючи проект Flutter, ви скорочуєте кількість годин на розробку. Розвиток тріпотіння не займає стільки часу в порівнянні з рідним.

Ось приклад. Скажімо, ви робите подібний до Instagram додаток для двох платформ. Розвиток IOS збирається взяти, приблизно, близько 700 годин, Android - також 700H .

За допомогою Flutter ви охопите обидві платформи та заощадите час: 700 годин Android + 700 годин iOS проти 700 годин Flutter.

Ви економите багато часу, який можете витратити на щось інше, наприклад, на полірування функцій.

Підведенню

Якщо ви створюєте програми обмеженим часом з обмеженим бюджетом, Flutter однозначно варто спробувати.

Це так само добре, як здається, і з кожним новим оновленням розробники Google додають більш рівномірні інструменти для крос-платформної розробки.

Звичайно, цей фреймворк може здатися незвичним для любителів C # та Java, але це не означає, що він витіснить вас із зони комфорту. Опанувавши невеликі синтаксичні відмінності, незабаром ви побачите, що розробка інтерфейсу йде в кілька разів швидше порівняно з власною розробкою.

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