Привет, Хабр! Это Юра Петров, Tech Lead Friflex. Последнее время многие меня спрашивают, как быстро начать разрабатывать приложения для системы Аврора с помощью фреймворка Flutter. Решил поделиться опытом и собрал ультимативный гайд. Всё, что я буду показывать, я буду делать на чистой системе Linux Mint. И в целом я рекомендую установить Linux для работы с Авророй, параллельно вашей системе. Это избавит вас от многих проблем. Я буду описывать процесс так, как будто вы никогда не использовали Linux.

Для удобства разделим статью на несколько частей:

Часть 1

  • установка Aurora SDK;

  • настройка эмулятора для Flutter;

  • установка и настройка Aurora-CLI;

  • установка и настройка Aurora PSDK;

  • установка Flutter Aurora.

Часть 2

  • установка и настройка VSCode для Авроры;

  • добавление эмулятора в VSCode;

  • настройка и запуск приложения на эмуляторе в режиме Dart Debug.

Установка Aurora SDK

На самом деле, для разработки приложений под Аврору на Flutter не требуется устанавливать Aurora SDK. Но если вам нужен эмулятор, то без этого не обойтись. Если у вас есть реальное устройство, то можно пропустить этот пункт.

Эмуляторы для Авроры работают на VirtualBox. До установки Aurora SDK необходимо сначала установить VirtualBox.

Cкриншот с сайта www.virtualbox.org
Поддерживаемые системы
Поддерживаемые системы

Выбираем пункт Ubuntu 24.04, скачиваем установщик с расширением .deb. После скачивания, устанавливаем простым кликом на файле. Файлы с расширением .deb  автоматически устанавливаются на Linux Mint. Если у вас, например, Ubuntu, можно воспользоваться инструкцией

Далее переходим на портал разработчика;

Выбираем тип системы

Пока не получится Aurora SDK на макбуках с процессами M! 

Можно выбрать два типа установки:

  1. Легкий установщик Все, что необходимо, скачается автоматически.

  2. Полный установщик. В нем уже все запаковано.

Выбираем первый вариант.

Скачиваем установщик, кликаем по нему правой кнопкой мыши и делаем его исполняемым.

Настройка запуска

После этого запускаем установку кликом левой мыши.

Установка Aurora SDK

Нажимаем кнопку Далее. Дальше оставляем все по умолчанию, устанавливаем.

Настройка эмулятора

После успешной установки Aurora SDK открываем VirtualBox и видим, что добавились две виртуальные машины.

Первая нас не интересует, переходим к AuroraOS-5.1.2.1—base. Это и есть эмулятор, который нам нужен. Также рекомендую установить настройки виртуальной памяти и выделения процессоров согласно вашей системе. Чем больше выделите, тем быстрее будет работать эмулятор.

Внешний вид VirtualBox

Запускаем эмулятор.

Внешний вид запущенного эмулятора

Далее переходим в «Настройки», в пункт «Средства разработчика». Включаем этот режим.

Меню «Настройки в эмуляторе»

Теперь необходимо включить «Терминал». Для этого переходим в пункт «Администрирование».

Включение терминала

Включаем терминал и задаем пароль для суперпользователя.

Переходим на главную и запускаем терминал. Здесь нам необходимо включить аутентификацию по паролю. Можно этого не делать, но тогда необходимо будет подключаться к эмулятору через ssh-ключ.

Пишем в терминале эмулятора следующую команду:

cd /etc/ssh/

Далее необходимо отредактировать файл sshd_config.sdk:

sudo vi sshd_config.sdk
Редактирование файла sshd_config.sdk

Находим параметр: PasswordAuthentication, он по умолчанию установлен как no.

Нажимаем на клавиатуре кнопку i и переходим в режим редактирования. Меняем no на yes. Выходим из режима кнопкой esc. Осталось сохранить. Нажимаем кнопку :, пишем в консоль wq и нажимаем enter.

На этом все, вы можете еще раз зайти в этот файл и проверить, сохранилось ли у вас правильно или нет.

Установка и настройка Aurora-CLI

Aurora-CLI значительно сокращает и упрощает процесс установки Aurora platfrom SDK и Flutter Aurora.

Переходим на сайт.

Открываем вкладку install и делаем все по инструкции.

Внешний вид сайта Aurora CLI
Вводим по очереди команды в терминал системы: Вводим по очереди команды в терминал системы: Вводим по очереди команды в терминал системы: Вводим по очереди команды в терминал системы: Вводим по очереди команды в терминал системы:
Вводим по очереди команды в терминал системы: Вводим по очереди команды в терминал системы: Вводим по очереди команды в терминал системы: Вводим по очереди команды в терминал системы: Вводим по очереди команды в терминал системы:

Вводим по очереди команды в терминал вашей системы:

sudo apt update
sudo apt install python3-pip
python3 -m pip install aurora-cli --break-system-packages

После успешной установки в терминале вы увидите предупреждение, что надо добавить путь к aurora-cli.

Результат успешной установки aurora-cli

Переходим в домашнюю папку, включаем отображение скрытых файлов и находим файл .bashrc. Переходим вниз файла и добавляем эти строчки:

export PATH=$PATH:/home/dev/.local/bin

Проверяем установку и доступность aurora-cli. Перезапускаем терминал и вводим команду:

aurora-cli --version

Если все хорошо, то вы увидите текущую версию Aurora-CLI.

Установка и настройка Aurora PSDK

Переходим в раздел Features и находим раздел Platform SDK, далее жмем Install.

Раздел установки Platform SDK

Устанавливаем последнюю версию.

Результат успешной установки Platform SDK

После установки необходимо добавить в .bashrc эти строки:

export PSDK_DIR=/home/dev/AuroraPlatformSDK-5.1.2.10/sdks/aurora_psdkalias aurora_psdk=/home/dev/AuroraPlatformSDK-5.1.2.10/sdks/aurora_psdk/sdk-chroot

Далее перезапускаем терминал и проверяем установку psdk командой:

aurora_psdk sdk-assistant list

Результат этой команды должен быт такой:

Результат проверки установки Platform SDK

Установка и настройка Flutter-Aurora

Преходим в раздел Flutter.

Раздел для установки Flutter-Aurora

Устанавливаем последнюю доступную версию Flutter командой:

aurora-cli flutter install

Ждем успешный результат:

Результат успешной установки Flutter-Aurora

Добавляем alias flutter-aurora в файл .bashrc. По этому алиасу мы будем обращаться к flutter-aurora. Это удобно, если у вас стоит оригинальный Flutter.

alias flutter-aurora=/home/dev/.local/opt/flutter-3.24.0/bin/flutter

Перезапускаем терминал, проверяем правильность установки командой

flutter-aurora doctor

Обычно никаких проблем нет, и в разделе Aurora toolchain нет замечаний. Но в этом случае мы видим, что Flutter не смог найти PlatformSDK (Я надеюсь, в следующих версиях aurora-cli это поправят). Но нам этот кейс полезен как пример.

Согласно ошибке, нам необходимо указать путь к Platform SDK. В нашем случае Platform SDK находиться в домашней папке.

Расположение Platform SDK

Нам просто необходимо выполнить конфигурацию flutter-aurora с помощью команды:

flutter-aurora  config --aurora-psdk-dir=$HOME/AuroraPlatformSDK-5.1.2.10/sdks/aurora_psdk

После выполнения видим сообщение:

Перезапускаем терминал и снова выполняем команду: 

flutter-aurora doctor

Отлично, теперь мы видим, что проблем нет. Можно начинать разрабатывать приложение на Flutter под систему Аврора.

Я надеюсь, эта статья вам понравилась. В следующей части мы рассмотрим, как установить и настроить VSCode для работы с Авророй, добавим эмулятор в VScode и попробуем запустить приложение на Flutter в режиме Dart Debug.

Полную видео версию статьи вы можете посмотреть в VK Видео.

Комментарии (2)


  1. John_Hooper
    02.11.2024 14:46

    А есть ли способ узнать, что код запускается из-под Авроры? С остальными платформами понятно, там из пакета dart:io доступны булевы значения Platform.isAndroid и т.д.


    1. mrDevGo Автор
      02.11.2024 14:46

      Для определения запуска на Авроре мы не используем флаг isAurora, который входит в портированный Flutter-Aurora. Это в дальнейшем может поломать логику проекта, если вы будете использовать оригинальный Flutter. 

      Лучше идти от обратного. И для этого есть два способа:

      1. Вы просто проверяете, что у вас не Android и IOS, соответственно это Аврора.

        bool isAurora() {
          if (Platform.isAndroid || Platform.isIOS) {
            return false;
          }
          return true;
        }
      1. И так как Аврора — это Linux base система, соответственно, можно получить считать ID:

      bool isAurora() {
        if (!Platform.isLinux) return false;
        try {
          return File('/etc/os-release').readAsLinesSync().contains('ID=auroraos');
        } on Object catch (_) {
          return false;
        }
      }