Меню Закрити

Чому Flutter — це майбутнє розробника мобільних додатків

Розповідає Eric Grandt

Кілька років тому я спробував себе в розробці для Android та iOS, використовуючи Java й Objective-C. Попрацювавши десь місяць з обома, вирішив рухатися далі. Просто не міг із цим розібратися.

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

Працює на Dart

Flutter використовує розроблену Google мову Dart. Якщо ви раніше використовували Java, синтаксис Dart буде теж знайомим, оскільки вони дуже схожі. Але, крім синтаксису, Dart в іншому відрізняється від Java.

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

Найімовірніше, ви будете використовувати її у всіх ваших програмах Flutter, якщо  виконуєте IO-операції або інші часовитратні операції, такі як запит до бази даних. Без асинхронних операцій будь-які часовитратні операції призведуть до зависання програми під час їхнього виконання. Щоб цього уникнути, Dart надає нам ключові слова async та await, які дають змогу нашій програмі продовжувати виконання, очікуючи завершення цих часовитратних операцій.

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

Напишіть один раз, запустіть на Android та iOS

Розробка мобільних додатків може забирати багато часу, зважаючи на те, що треба використовувати різні кодові бази для Android та iOS. Якщо тільки ви не використовуєте SDK, як Flutter, із єдиною кодовою базою, що дає змогу створювати ваш додаток для обох операційних систем. До того ж його можна запускати в нативному форматі. Це означає, що такі речі, як прокручування та навігація, серед інших, працюватимуть, як потрібно у використовуваній ОС.

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

Розробка UI

Інтерфейс користувача створюється, об’єднуючи різні віджети й змінюючи їх, щоб вони відповідали вигляду вашої програми. У вас є майже повний контроль над тим, як відображаються ці віджети, тому в результаті отримаєте саме те, що треба. Для розміщення інтерфейсу користувача є такі віджети, як RowColumn та Container. Для контенту у вас є віджети, такі як Text та RaisedButton. Це лише деякі з віджетів, які пропонує Flutter, загалом їх існує значно більше. Використовуючи їх, ми можемо створити дуже простий вдалий інтерфейс користувача:

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

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

Flutter-додаток із використанням ThemeData

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

Бібліотеки

Flutter дає багато чудових можливостей “із коробки”, але бувають випадки, коли потрібно трохи більше, ніж він пропонує. Це зовсім не проблема, зважаючи на велику кількість бібліотек, доступних для  Dart and Flutter. Цікавить розміщення реклами у вашому додатку? Для цього є бібліотека. Бажаєте нових віджетів? Є бібліотеки й для цього.

Якщо ви майстер на всі руки, створіть власну бібліотеку та поділіться нею з іншими членами спільноти. Додавання бібліотек до проекту є простим і може бути зроблено шляхом додавання одного рядка до вашого файлу pubspec.yaml.

Після додавання до файлу запустіть flutter packages get, і все готово. Бібліотеки роблять розробку у Flutter простою й економлять купу часу.

Бекенд-розробка

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

Знову-таки Flutter додатки розроблені з використанням Dart, а Dart — чудовий, коли мова йде про бекенд-розробку. Тут багато йшлося про простоту, і бекенд-розробка з Dart і Flutter не виняток. Неймовірно просто створити програми як для початківців, так і для експертів, але ця простота жодним чином не дорівнює відсутності якості.

Бібліотеки також доступні, щоб ви могли працювати з базою даних за вашим вибором. Використовуючи бібліотеку sqflite, можемо швидко запускати й працювати з базою даних SQLite. А завдяки синглтонам можемо отримати доступ до бази даних і звертатися до неї практично з будь-якого місця без потреби щоразу відновлювати об’єкт.

Після отримання даних із бази можна перетворити їх на об’єкт за допомогою моделі. Або, якщо хочете зберегти об’єкт у базі даних, ви можете перетворити його в JSON за допомогою тієї самої моделі.

Ці дані не будуть корисними без можливості їх відображення користувачеві. Тому у Flutter є такі віджети, як FutureBuilder або StreamBuilder. Якщо вас цікавить детальніший розгляд створення керованих даними програм за допомогою Flutter, SQLite та інших технологій, пропоную вашій увазі мою статтю.

На завершення

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

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту та натисніть Ctrl+Enter.

1+

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: