Приложение на Flutter для ОС Аврора
После установки Flutter с поддержкой ОС Аврора можно собрать приложение, добавив поддержку ОС Аврора, или создать новое.
Создание проекта
Flutter SDK имеет интерфейс командной строки (Flutter CLI),
дающий доступ к инструментам Flutter.
С помощью Flutter CLI можно создать приложение из шаблонов, доступных во Flutter SDK,
собрать приложение и многое другое.
Создать приложение из шаблона можно следующей командой:
flutter-aurora create --platforms=aurora --template=app --org=ru.aurora app_demo
Детали команды:
flutter-aurora—alias, добавленный при установке;create— команда для создания приложений/пакетов из шаблонов;--platforms=aurora— для какой платформы создавать шаблон;--template=app— тип шаблона (app,package,plugin_ffi,plugin);--org=ru.aurora— имя организации (Organization name), участвует в формировании названия пакета;app_demo— название приложения (Application Name), участвует в формировании названия пакета.
После выполнения команды будет создан проект из шаблона Flutter SDK, имеющий следующую структуру:
.
├── analysis_options.yaml
├── app_demo.iml
├── aurora
│ ├── CMakeLists.txt
│ ├── desktop
│ │ └── ru.aurora.app_demo.desktop
│ ├── icons
│ │ ├── 108x108.png
│ │ ├── 128x128.png
│ │ ├── 172x172.png
│ │ └── 86x86.png
│ ├── main.cpp
│ └── rpm
│ └── ru.aurora.app_demo.spec
├── lib
│ └── main.dart
├── pubspec.lock
├── pubspec.yaml
├── README.md
└── test
└── widget_test.dart
7 directories, 15 files
Структура проекта Flutter-разработчику должна быть знакома.
Исключением является директория aurora, в которой находятся файлы, обеспечивающие работу
приложения на платформе ОС Аврора:
CMakeLists.txt— приложение Flutter для ОС Аврора имеет платформенную часть на С++, а сборка реализована через CMake;desktop/ru.aurora.app_demo.desktop— файл интеграции приложения в меню. В нём можно указать название приложения, требуемые права для приложения и некоторые другие настройки;icons/*.png— иконки приложения;main.cpp— точка входа в приложение для ОС Аврора. Это зачастую шаблонный код для запуска всех необходимых компонентов Flutter и приложения;rpm/ru.aurora.app_demo.spec— спецификация сборки RPM пакета, подобноpubspec.yaml, предназначен для конфигурации сборки пакета для ОС Аврора.
Если требуется более подробное знакомство с Flutter, начать можно со страницы документации Flutter и создать первое приложение.
Сборка приложения
Flutter CLI имеет следующие команды, участвующие в сборке:
pub— работа с зависимостями;build— команда сборки Flutter-приложения;clean— очистка временных каталогов.
Для сборки приложения предварительно нужно обновить зависимости приложения. Сделать это можно командой:
flutter-aurora pub get
Flutter обновит зависимости и выведет отчёт:
Resolving dependencies...
flutter_lints 2.0.3 (3.0.2 available)
lints 2.1.1 (3.0.0 available)
matcher 0.12.16 (0.12.16+1 available)
material_color_utilities 0.5.0 (0.11.1 available)
meta 1.10.0 (1.14.0 available)
path 1.8.3 (1.9.0 available)
test_api 0.6.1 (0.7.1 available)
web 0.3.0 (0.5.1 available)
Got dependencies!
8 packages have newer versions incompatible with dependency constraints.
Try `flutter pub outdated` for more information.
Далее можно собирать приложение командой build:
flutter-aurora build aurora --release
Детали команды:
-
flutter-aurora—alias, добавленный при установке; -
build— команда сборки приложений; -
aurora— платформа, для которой сборка будет осуществляться; -
--release— тип сборки проекта. Доступны следующие варианты сборки:--debug— во время разработки при использовании горячей перезагрузки;--profile— когда необходимо проанализировать производительность;--release— когда приложение будет готово для выпуска.
После успешной выполненной задачи по сборке появится путь к файлу RPM c собранным приложением.
┌─ Result ────────────────────────────────────────────────────────────────────────────────────┐
│ ./build/aurora/psdk_5.0.0.60/aurora-arm/release/RPMS/ru.aurora.app_demo-0.1.0-1.armv7hl.rpm │
└─────────────────────────────────────────────────────────────────────────────────────────────┘
Этот путь указывает на установочный RPM-пакет, который нужно подписать и установить на эмулятор или устройство.
Инструменты
Платформа ОС Аврора, как и другие платформы, имеет свои дополнительные инструменты для работы с операционной системой. Следующие подразделы описывают особенности по работе с платформой ОС Аврора.
Целевая архитектура
Собрать проект можно под разные архитектуры.
В команде сборки есть флаг: --target-platform, позволяющий указать целевую архитектуру для сборки.
По умолчанию команда build для сборки приложения на платформу ОС Аврора использует
архитектуру armv7hl.
Всего доступны три архитектуры для сборки на ОС Аврора:
armv7hl— архитектура для устройств, указать можно как--target-platform aurora-arm;aarch64— архитектура для устройств, указать можно как--target-platform aurora-arm64;x86_64— архитектура для эмулятора, указать можно как--target-platform aurora-x64.
Platform SDK
Для сборки Flutter приложений Flutter CLI использует нативную для платформы SDK — Platform SDK.
На персональный компьютер (ПК) для сборки можно установить несколько Platform SDK. По умолчанию используется та версия Platform SDK, которая указана в конфиге Flutter через команду:
flutter-aurora config --aurora-psdk-dir $HOME/AuroraPlatformSDK/sdks/aurora_psdk
Например, на ПК установлено две версии Platform SDK — 5.100 и 5.200.
В параметре конфигурации aurora-psdk-dir указана версия 5.100.
Для сборки приложения с версией 5.200 нужно изменить её значение:
flutter-aurora config --aurora-psdk-dir /home/user/Aurora_Platform_SDK_5.200/sdks/aurora_psdk
Добавление в проект
Поддержку платформы ОС Аврора можно добавить в уже существующий проект. Для этого необходимо в корне проекта выполнить команду Flutter CLI:
flutter-aurora create --platforms=aurora --org={ORGNAME} .
Где {ORGNAME} — имя организации
(Organization name,
участвует в формировании названия пакета.
Нужно учитывать, что существуют зависимые от платформы пакеты (плагины), которые разрабатываются под платформу. В существующем приложении может быть много различных плагинов, все нужно проанализировать на зависимость от операционной системы. Ознакомиться с доступными пакетами можно в разделе Поддержка Flutter для ОС Аврора.
Настройка устройств
Для добавления и настройки физических устройств на ОС Аврора, а также для последующего запуска
и отладки приложений, Flutter CLI поддерживает команду aurora-devices, которая работает
по аналогии с командой custom-devices.
Доступные команды aurora-devices:
add— добавление нового устройства;delete— удаление устройства поid;list— вывод списка добавленных устройств;reset— сброс файла конфигурации устройств.
Настройка нового устройства:
-
Подключить устройство на ОС Аврора к компьютеру с помощью USB-кабеля.
-
Настроить ssh-ключ. Можно использовать существующий ключ или создать новый командой:
ssh-keygen. -
Выполнить команду
aurora-devices addи в интерактивном режиме заполнить запрашиваемые данные устройства:flutter-aurora aurora-devices add Please enter the IP address of your Aurora OS device. You can get it from Settings -> Developer Tools. (leave empty for 192.168.2.15) 192.168.2.15 Please enter the device port, the default is 22. (example: 22) 22 Please enter the path to the SSH private key used to authorized on the Aurora OS device. (leave empty for /home/user/.ssh/id_rsa) /home/user/.ssh/device_key Please enter the root user password. (example: 00000) 00000 Successfully added Aurora OS device to config file at "/home/user/.config/flutter/aurora_devices.json". -
Выполнить команду
ssh-copy-idдля копирования публичного ключа на устройство:ssh-copy-id -i ~/.ssh/id_rsa.pub defaultuser@192.168.2.15
В результате выполнения шагов в файл конфигурации устройств добавится новое устройство, готовое
для работы.
Файл конфигурации записывается в: ~/.config/flutter/aurora_devices.json.