Fuchsia Friday: Первый взгляд на SDK Fuchsia, который можно скачать здесь

С учетом важных новостей этой недели о том, что SDK Fuchsia и «устройство» Fuchsia добавляются в Android Open Source Project, сейчас кажется подходящим временем, чтобы узнать больше о SDK Fuchsia. Сегодня в рамках Fuchsia Friday мы углубимся в SDK Fuchsia и посмотрим, что он может предложить разработчикам, которые, возможно, захотят получить преимущество в работе с Fuchsia.

Знакомство с SDK Fuchsia

В целом, пакет средств разработки программного обеспечения (или SDK) используется для помощи разработчикам в создании приложений. Некоторые, как Android SDK, специально разработаны для одной платформы, а другие, как Flutter SDK от Google, могут создавать приложения для нескольких платформ. SDK Fuchsia, как и ожидалось, относится к первой категории.

В настоящее время нельзя просто скачать SDK Fuchsia и приступить к работе, поскольку Google не сделал его общедоступным. Однако, поскольку подавляющее большинство Fuchsia является открытым исходным кодом, SDK *можно* собрать и использовать соответствующим образом.

Реклама — прокрутите вниз, чтобы увидеть больше контента

Любопытные могут найти ссылку для скачивания внизу этой статьи, но я, очевидно, не рекомендую использовать его для каких-либо крупных проектов, поскольку он быстро устареет и/или станет совершенно неверным. Инструменты во включенной версии предназначены для использования с 64-разрядной версией Linux, поэтому, если вы используете OS X, вам придется справляться самостоятельно.

Тем не менее, команда Chromium в настоящее время использует SDK Fuchsia для создания приложения Web Runner для Fuchsia, которое мы демонстрировали ранее в этом году.

Примечание о Fuchsia SDK и Flutter SDK:

Flutter SDK, несмотря на то, что мы знаем о связи Fuchsia с Flutter, не является тем же самым, что и Fuchsia SDK. Точно так же, как Flutter сегодня использует Android SDK для создания приложений для Android, вы, вероятно, сможете использовать Fuchsia SDK через Flutter в будущем.

Пока что нам нужно использовать Fuchsia SDK напрямую для создания приложений Fuchsia. На самом деле возможно создавать приложения Flutter напрямую, используя Fuchsia SDK, потому что Flutter глубоко поддерживается Fuchsia.

Bazel

В настоящее время SDK Fuchsia способен создавать приложения, написанные на C++, Dart и Flutter (который, по сути, также является Dart). Независимо от того, какой язык или фреймворк вы выберете для своего проекта, вам нужно будет использовать Bazel для управления зависимостями и выполнения окончательной сборки.

Bazel — это разработанный Google фреймворк для сборки и тестирования программного обеспечения, который стремится пересобирать только те аспекты вашей программы, которые изменились. О тонкостях Bazel можно узнать много чего, но для наших целей вам просто нужно знать, что Bazel подключает ваше приложение к библиотекам в SDK Fuchsia и использует включенные в SDK инструменты для фактической сборки реальных, устанавливаемых пакетов Fuchsia.

Что находится в SDK Fuchsia?

Разработчики, которые осмелятся погрузиться в SDK Fuchsia, получат доступ ко многим аспектам платформы, которые мы раскрывали за последний год. Например, внутри пакета Dart «fuchsia_modular» вы найдете возможность работать с агентами, как управляется Maxwell, возможность создавать предложения и работать с сущностями. (Сущности — довольно общий термин в Fuchsia, как вы, возможно, помните.)

С помощью SDK можно даже работать с ядром Zircon используя Dart. Также имеется пакет «fidl», который предоставляет доступ к способности Fuchsia связывать программы и функции написанные на разных языках.

Для разработчиков C++ доступен целый ряд низкоуровневых пакетов, включая прямой доступ к Vulkan (используемому для графики Fuchsia) и ресурсы, предоставляемые ядром Zircon. FIDL также предоставляет разработчикам Dart и C++ доступ ко многим другим сервисам и утилитам, доступным в Fuchsia, таким как UI-код, Bluetooth, WiFi и даже возможности преобразования речи в текст.

Получение SDK Fuchsia

Для разработчиков, которые просто хотят поближе взглянуть на то, как они могли бы однажды перенести свои приложения на Fuchsia, вы можете ознакомиться с ним в недавно созданном репозитории GitHub. Для экономии места и для обеспечения соответствия лицензиям мы включили только код и библиотеки, но не двоичные файлы или копии самой операционной системы Fuchsia.

Напоминание: Информация в нем будет быстро устаревать, поскольку Fuchsia находится в постоянной разработке, и SDK будет продолжать изменяться годами. Если вы хотите создать собственное приложение на основе SDK Fuchsia, я рекомендую собирать SDK самостоятельно, *часто*.

Лучший способ получить свежую копию — собрать ее самостоятельно из исходного кода Fuchsia. Если вы уже загрузили исходный код Fuchsia и связанные с ним инструменты на свой (Linux или OS X) компьютер, вы можете собрать SDK, используя приведенные ниже команды, а затем следуя этим инструкциям.

fx set x64 --args=build_sdk_archives=true
fx full-build

Что я могу сделать с этим сегодня?

Предположим, вы собрали SDK Fuchsia сегодня, что вы можете разумно ожидать от него? Без доступа к устройству Fuchsia — не так много. Однако, как мы видели на прошлой неделе, Google работает над этим, медленно делая официальный Android Emulator совместимым с Fuchsia.

Если вам *случайно* удалось заполучить устройство Fuchsia, вы *должны* иметь возможность использовать Bazel и SDK для создания приложения Fuchsia. После некоторых первоначальных трудностей мне действительно удалось собрать пример приложения Flutter для Fuchsia. Мы подробно рассмотрим этот процесс совсем скоро.

Fuchsia Friday — это нерегулярная серия, в которой мы погружаемся в исходный код Fuchsia и интерпретируем, что текущее состояние операционной системы может означать для конечного продукта. Вся информация в этой статье является предположениями, основанными на доступной информации, и может быть изменена.