Коротко про Flutter
В компанії Postindustria я працюю iOS-розробником, а у вільний час в якості хобі займаюсь розробкой мобільних додатків для Android. Останні десь два роки я цікавлюсь Flutter - це фреймворк від Google для розробки додатків. Наразі це єдиний фреймворк (як запевняє Google), що дозволяє з одного коду отримувати додатки для шости платформ:
- iOS
- Android
- web
- Linux
- macOs
- Windows
Крім підтримки майже всіх популярних платформ він має наступні переваги:
- на iOS та Android програма компілюється в нативний код, тобто немає ніяких js-bridges, як, наприклад, для React Native;
- підтримує just-in-time та ahead-of-time режими компіляції. Перший дозволяє бистро компілювати код при розробці, а другий - отримувати оптимальну швидкодію для release-варіантів.
- як на мене, підхід до побудови інтерфейсів на Flutter більш приємний і зручніший, ніж нативні варіанти для мобільних платформ;
- режим hot reload дозволяє тестувати зміни інтерфейсу без перекомпіляції коду;
- версії додатка для різних платформ можуть мати однаковий вигляд оскільки всі віджети Flutter малює сам, а не делегує це базовій платформі
До недоліків можно віднести:
- це продовження останньої переваги. Flutter має багатий набір віджетів, що імітують виджети iOS або Android. Але коли на якійсь платформі з'являється новий, доводиться чекати, коли буде реалізований аналог на Flutter;
- дуже слабка підтримка SEO для web.
Таким чином, Flutter дуже підходить для розробки додактів, що мають виконуватись більш, ніж на одній платформі. При чому процес проходить дуже швидко и часто навіть приємніше ніж із застосуванням нативних засобів платформи.
Мета
За останній час я встиг розробити на Flutter кілька простих ігор. В деякі можна грати навіть з іншими гравцями по Internet. Однак, переважна більшість додатків відрізняється від ігор. Як правило, вони звертаються до якогось серверу, отримують данні, показують їх користувачеві, дозволяють їх редагувати. Я вирішив написати один такий невеличкий додаток і описати процесс в кількох статтях. Це не буде детальний опис програмування на Flutter. Я планую показати основні можливості. Також я хочу трохи самому розібратися с Clean Architecture від дядечка Боба і з тестуванням Flutter-додатків.
Додаток
Я розробив невеличкий додаток, що використовує сервис NUMBERSAPI в якості серверної частини. Цей сервіс має невеличкий API для отримання цікавих фактів про числа та дати.
Моя програма буде показувати факти, а також мати можливість перекладати факти на декілька мов.
Декілька скриншотів.
Android:
iOS:
web:
Тут можна побачити, як працює web-версія на сторінці в iframe.
Є невеличка проблема в тому, що на Github використовується https, а на сайте Numbersapi - http. З цієї причини виникає помилка mixed-content при виконанні запитів на Numbersapi. Але загальне уявлення про flutter-додатки в web отримати можна: кнопки і переклад працюють.
На Android встановити додаток можна з Google Play.
Вихідні тексти додатка можна отримати тут.
Для самостійної зборки треба встановити Flutter, як описано тут a також засоби розробки для Android або iOS з емудяторами. Після цього можна запускати:
flutter run -d Android
flutter run -d iPhone
flutter run -d chrome
Для Andoid/iOS після -d треба вказати справжнє ім'я емулятора.
В наступних статтях я буду пояснювати як саме розроблявся цей додаток.
Зміст
1. Кросплатформена розробка на Flutter. Частина I
Немає коментарів:
Дописати коментар