Обо мне
2 заметки с тегом

разработка

Google и Canonical реализовали во Flutter возможность создания десктоп-приложений для Linux

Компании Google и Canonical выступили с совместной инициативой по обеспечению поддержки разработки графических приложений на основе фреймворка Flutter для настольных Linux-систем. Фреймворк построения интерфейса пользователя Flutter написан на языке Dart (runtime-движок для выполнения приложений написан на C++), позволяет создавать универсальные приложения, работающие на разных платформах, и рассматривается как альтернатива React Native.

Несмотря на наличие Flutter SDK для Linux, он до сих пор применялся только для разработки мобильных приложений и не поддерживал сборку десктоп-приложений для Linux. В прошлом году компания Google объявила о намерении добавить во Flutter возможность разработки полноценных настольных программ и представила альфа-выпуск для разработки таких программ для macOS. Теперь Flutter расширен возможностью разрабатывать десктоп-приложения для Linux. Поддержка разработки приложений для Windows пока находится на стадии начального прототипа.

Для отрисовки интерфейса в Linux используется обвязка на основе библиотеки GTK (поддержку Qt и других тулкитов обещают добавить позднее). Помимо родного для Flutter языка Dart, на котором создаются виджеты, приложения могут использовать интерфейс Dart Foreign Function для вызова кода на C/C++ и обращаться ко всем возможностям платформы Linux.

Поддержка разработки приложений для Linux предложена в свежем альфа-выпуске Flutter SDK, в котором также реализована возможность публикации Linux-приложений в каталоге Snap Store. В формате snap можно найти и сборку самого Flutter SDK. Для разработки приложений на базе Flutter предлагается использовать редактор кода Visual Studio Code или среды разработки IntelliJ и Android Studio.

В качестве примера Linux-программ на базе Flutter предложено приложение Flokk Contacts для работы с адресной книгой Google Contacts. В каталоге pub.dev опубликовано три Flutter-плагина с поддержкой Linux: url_launcher для открытия URL в браузере по умолчанию, shared_preferences для сохранения настроек между сеансами и path_provider для определения типовых каталогов (загрузки, изображения, видео и т. п.)

 193   2020   AMD   canonical   dart   flutter   google   Intel   it   linux   opensource   pc   sdk   ubuntu   новости   разработка

Установка Swift на Ubuntu — подводные камни

Руководство по установке Swift на Ubuntu, которое поможет вам обойти стороной неприятные нюансы.

Поскольку разработчики Swift официально поддерживает LTS-версии Ubuntu— большой сложности с установкой нет, но есть пара нюансов.

Первая распространенная ошибка — распаковка архива в корневую директорию. Способ рабочий, но, если потребуется начисто удалить SDK, одной строкой в консоли не обойтись. Кроме того, данный способ установки мешает переключаться между несколькими версиями Toolchain, в чем у вас, как разработчика, может возникнуть потребность.

Посмотрим на разумный способ установки Swift на ваш компьютер с ОС Ubuntu.

Первым делом нужно определиться с директорией, в которой вам удобно держать подкаталоги с несколькими версиями Swift. Для меня наиболее удобным вариантом является /opt, но вы вольны выбрать другой путь.

Забегая вперед, скажу, что если планируете работать с приложениями, написанными на Swift, лучше
устанавливать Toolchain за пределами домашней директории пользователя. О причине читайте далее в статье.

Итак, следуя руководству официального сайта устанавливаем необходимые зависимости:

$ sudo apt update

# Возможны конфликты LLDB 6 со Swift Toolchain,
# удаляем lldb-6.0, если установлен.
$ sudo apt remove lldb-6.0 
$ sudo apt install -y clang libicu-dev wget gpg

Получаем публичный ключ для верификации дистрибутива:

$ wget -q -O - https://swift.org/keys/all-keys.asc | \
  gpg --import -

Страница загрузки Swift (https://swift.org/download/#releases).

Проверяем целостность и источник архива:

$ cd ~/Downloads
$ gpg --verify swift-5.2.1-RELEASE-ubuntu18.04.tar.gz.sig

gpg: assuming signed data in 'swift-5.2.1-RELEASE-ubuntu18.04.tar.gz'
gpg: Signature made Пн 30 мар 2020 23:19:13 MSK
gpg:                using RSA key 925CC1CCED3D1561
gpg: Good signature from "Swift 5.x Release Signing Key <swift-infrastructure@swift.org>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: A62A E125 BBBF BB96 A6E0  42EC 925C C1CC ED3D 1561

Полученный с официального сайта дистрибутив мы распакуем в директорию /opt:

$ cd /opt
$ sudo tar -xzf swift-5.2.1-RELEASE-ubuntu18.04.tar.gz

# Создаем символическую ссылку на текущую версию Toolchain:
$ sudo ln -s swift-5.2.1-RELEASE-ubuntu18.04 swift

В итоге мы должны получить следующее содержимое в /opt:

lrwxrwxrwx  1 root root   31 апр 13 21:40 swift -> swift-5.2.1-RELEASE-ubuntu18.04
drwxr-xr-x  3 root root 4096 апр 13 21:38 swift-5.2.1-RELEASE-ubuntu18.04

Как вы уже догадались, мы сможем перебрасывать символическую ссылку /opt/swift между несколькими релизами Toolchain.

Осталось всего два шага и мы у цели. Добавляем путь /opt/swift/usr/bin в PATH, если вы работаете с bash:

$ echo 'PATH="$PATH:/opt/swift/usr/bin"' >> ~/.profile

Чтобы обеспечить работу приложений, написанных на Swift, пропишем путь к Swift Runtime в ldconfig:

$ sudo bash -c "echo '/opt/swift/usr/lib' > /etc/ld.so.conf.d/swift.conf"
$ sudo ldconfig

# Проверим:
$ ldconfig -p | grep swift
	libswiftDemangle.so (libc6,x86-64) => /opt/swift/usr/lib/libswiftDemangle.so
	libsourcekitdInProc.so (libc6,x86-64) => /opt/swift/usr/lib/libsourcekitdInProc.so
	liblldb.so.7svn (libc6,x86-64) => /opt/swift/usr/lib/liblldb.so.7svn
	liblldb.so (libc6,x86-64) => /opt/swift/usr/lib/liblldb.so
	libdispatch.so (libc6,x86-64) => /opt/swift/usr/lib/libdispatch.so
	libIndexStore.so.7svn (libc6,x86-64) => /opt/swift/usr/lib/libIndexStore.so.7svn
	libIndexStore.so (libc6,x86-64) => /opt/swift/usr/lib/libIndexStore.so
	libBlocksRuntime.so (libc6,x86-64) => /opt/swift/usr/lib/libBlocksRuntime.so

$ swift --version
Swift version 5.2.1 (swift-5.2.1-RELEASE)
Target: x86_64-unknown-linux-gnu

Именно для обеспечения доступности Swift Runtime в самом начале я рекомендовал устанавливать Swift за пределами домашней директории пользователя.

На этом все, хорошего кода!

оригинал статьи https://engineering.lit.group/swift-installation-on-ubuntu/

 Нет комментариев    107   2020   apple   canonical   linux   swift   ubuntu   код   разработка