Авторские статьи

Ubuntu SDK и разработка ПО.


Джо́но Бэ́кон (Jono Bacon) продолжает освещать процессы, происходящие внутри Canonical и Ubuntu. Целью является освещение того, что скрыто в недрах кода и часто малозаметно простым пользователям и разработчикам приложений. Статья описывает причины, побудившие создать Ubuntu SDK, выбор инструментария и фреймворков.

Долгое время разработчики в Убунту были сильно фрагментированы по различным критериям. Так произошло по ряду причин:

  • Ни у кого до этого, и в Убунту тоже, не было единой согласованной платформы для разработчиков приложений. Как и все, Canonical поддерживала GTK, Qt и всё что разработчик найдёт в репозитории. Такой "выбор" приводит к "разношёрстности" у разработчиков и, следовательно, у пользователей тоже.
  • Отсутствовали документы Design Guidelines, которые бы определяли как разработчикам создавать свои приложения, одинаково выглядящие на платформе Убунту.
  • Нет единого портала для разработчиков, где в онлайн можно было бы помочь разработчикам ПО в создании приложений для платформы Убунту.
  • Нет чёткого ответа, как писать программу для множества устройств с разными форм-факторами.
  • Для разработчиков программ не было единого SDK, каждый волен выбирать из множества инструментов, с разной степенью качества.

Canonical пыталась исправить часть вышеперечисленных проблем, рекомендуя разработчикам писать программы с использованием Python и GTK. Даже был создан инструмент Quickly для упрощения процесса написания. Quickly генерировал проект и помогал с задачами редактирования, создания UI, созданием пакета. Но Quickly был несколько примитивным и не являлся панацеей всех проблем.

Quickly показал наши ограничения в инструментарии. В то старое время, разработчикам рекомендовалось использовать GEdit, Glade и GTK. К сожалению, этот набор просто не сравним с инструментарием разработчиков Apple и Google. Стало ясно, что нужно обеспечить программистов более функциональным инструментарием и SDK.

Выбор технологии.

Canonical намерена разрешить ситуацию и предоставить Ubuntu SDK. Первый вопрос был поднят об выборе фреймворка для построения высокоэффективных программ, способных работать на различных устройствах.

Составленный список насчитывал:

  • Qt/QML - нативные приложения, которые могут быть запущены на любом устройстве и адаптироваться к размеру экрана.
  • HTML5 - веб-приложения, которые могут адаптироваться к устройству, с глубокой интеграцией в систему и используя launcher, меню сообщений и тд.
  • Online Services - веб-сайт, в виде программы WebApp, интегрируется с системой, с использованием меню сообщений, интеграция с Unity и тд.
  • OpenGL - полная поддержка OpenGL для игр.

Некоторое время назад, решено было сфокусироваться на Qt, как на платформе, не только при создании Ubuntu SDK, но при объединении всех устройств под единой Ubuntu.

Qt обладает следующими достоинствами:

  • Обеспечивает быстрой C++ библиотекой и тулкитом QML, являющимся высокоуровневым декларативным языком. Это означает, что можно одновременно обладать мощью языка C для системных приложений и в тоже время программисты могут быстро разрабатывать прикладной софт на более высоком языке.
  • Qt идёт с отличным набором инструментов: IDE, дебаггер, дизайнер и многое другое.
  • Qt Creator IDE легко расширяется с помощью плагинов. Поэтому его можно использовать как главную IDE и использовать его для написания приложений HTML5 и OpenGL.
  • Отличная документация Qt и QML.
  • Qt обладает сильной экосистемой, связывающая множество компаний. Это делает найм программистов Qt и подрядные работы гораздо проще.
  • Qt - отличный upstream, который заинтересован работать с теми, кто его использует.

Выбор в пользу Qt Creator, как главной IDE, был сделан. Но чтобы помочь разработчикам, использующим HTML5 для создания веб приложений, Canonical инвестировала средства в Apache Cordova. Apache Cordova - это набор API, который позволяет JavaScript'у доступ к железу мобильных платформ. Ubuntu SDK будет поддерживать Cordova, что сделает создание приложений HTML5 более простым и гибким. Программист сможет писать HTML5 приложение:

  • используя в сочетании с Cordova API - HTML5 Cordova.
  • без Cordova API - HTML5 Stock.

Обе возможности будут доступны в IDE Qt Creator!

Ubuntu SDK.

Canonical сформировала команду SDK и приступила к работе, которую разбили на две части.

Во-первых, начата работа над платформой для разработчиков приложений. В основе своей, это выяснение всего, что требуется программистам для написания ПО для Ubuntu, которая работает на множестве аппаратных платформ и на устройствах с различным форм-факторах. Так же, кроме выяснения необходимого, идёт создание поддержки этого со стороны Canonical.

Речь идёт о:

  • Создание набора компонент Убунту (Ubuntu Component), чтобы разработчикам Qt и HTML5 было легко создавать свои приложения из готовых виджетов.
  • В стандартную модель работы процесса приложения в Linux будут внесены изменения, учитывающие особенности мобильных платформ. Речь идёт о возможности приостановить (suspend) приложение для экономии энергии батареи.
  • Создание сервиса определения Местоположения.
  • Сервис Мультимедиа и Музыки. Чтобы музыка продолжала играть в фоне, когда плеер не в фокусе, в новой модели работы процессов в памяти - нужно проделать некоторую работу.
  • Сигнализация и уведомления о назначенных встречах.
  • Календарь через Evolution Data Server.
  • Сервисы Сенсоров типа акселерометра.

Эта работа в данный момент времени находится на разных стадиях завершения, но весь API платформы будет готов в конце августа 2013. Многие приложения используют данный API уже прямо сейчас. Главное, что все сервисы будут доступны на всех платформах и на всех устройствах с разными форм-факторами. Убунту стремится к единению устройств под своим началом.

Во-вторых, создание SDK как такового. Добавление нужного функционала в Qt Creator IDE для использования его при написании приложений Qt/QML, HTML5 и OpenGL. Работа в этом направлении задела ряд областей и результатом стало:

  • Создание шаблонов проектов для QML, HTML5 (Cordova), HTML5 (Stock) и Scopes (поисковые движки для линз Unity). Это позволяет программисту легко начать свой проект на базе типового шаблона.
  • Интеграция с Bazaar и Git делает проще совместную работу программистов над своим проектом.
  • В один щелчок программист может оценить своё творение на любом форм-факторе любого устройства.

    Qt Creator IDE тестирование приложения
  • Легкость создания для приложения готового пакета Click для отправки на одобрение в репозитория Canonical.

    Qt Creator IDE создание пакета Click
  • Ubuntu Component Showcase - программист может легко видеть различные компоненты UI и код примера.
  • Интегрированная документация, IRC, документы Design Guidelines и поддержка AskUbuntu.

Всё вышеперечисленное уже доступно в Ubuntu SDK и программисты могут начать знакомство с developer.ubuntu.com.

developer.ubuntu.com

Сайт developer.ubuntu.com должен стать центральным ресурсом для разработчиков, помогая во всех аспектах разработки. Сайт обеспечивает руководствами по созданию приложений, документацией по API, коллекцией примеров App Developer Cookbook на частые вопросы с AskUbuntu. Уже сейчас сайт является не плохим трамплином для начала работы. Но работа над ним продолжается и будут улучшения и нововведения:

  • Пересмотрена навигация и структура сайта для простоты использования.
  • Более чёткая и улучшенная интеграция с документацией API.
  • Расширение API.
  • Cookbook для всех представленных шаблонов приложений.
  • Полная интеграция документации Juju Charm и API.

Множество улучшений можно будет увидеть уже в ближайшие осенние дни. Читая эти строки у вас может возникнуть мысль, что Canonical забросила десктоп и "играет" только в мобильные платформы, нянчась с Ubuntu Touch. Это не так! 29 августа 2013 года пройдёт в виде онлайн встреч Ubuntu Developer Summit для обсуждения вопроса единства дизайна и поведения программ на различных платформах. А в начальных неделях сентября 2013 уже планируется переработать документы Design Guidelines для десктопа по итогам саммита.

И где это всё?

Canonical на данный момент обладает мощным Ubuntu SDK, с поддержкой Qt/QML, HTML5, OpenGL и Scopes (поисковые движки, работающие в Dash для нужд линз). Можно взять нужное на developer.ubuntu.com, установить Ubuntu SDK и прочесть пару руководств для начала работы. Пока Ubuntu SDK в статусе бета, но официальная версия Ubuntu SDK 1.0 будет представлена в октябре 2013, где ожидается больше улучшений, глубже интеграция и увеличение возможностей. Так как Canonical понимает и осознаёт необходимость для разработчиков приложений в хорошей и расширяемой платформе.


Мои пять копеек после слов Джоно Бэкона.
Unity Next - это реинкарнация Unity на Qt/QML. Qt/QML даст разработчикам лёгкость в адаптации Убунту под разные устройства с их разными экранами и наличию, отсутствию сенсорных, новомодных штучек. Canonical уже "играла" в Qt.
Сначала обе оболочки Unity и Unity2D появляются в Убунту 12.04. В Убунту 12.10, написанная на Qt оболочка Unity2D для слабых машин объявляется устаревшей и лишней из-за своей отдельной кодовой базы. Для слабых машин Unity работает через llvmpipe. В новых версиях Убунту декларируется использование Qt/QML.
Canonical шатает как медведя по лесу?
Canonical оправдывается так: "На саммите UDS Q обсуждался вопрос - на что ставить при разработке Unity? Ставить на Qt/QML, который переживал переход? Или сыграть надёжно и сохранить полный контроль над тем, что нам дорого? Было много обсуждений, аргументов за и против и было решено объявить Unity2D излишней со своей отдельной кодовой базой. Промотай много месяцев назад и скажи нам в прошлом, что наши опасения не оправдались и Qt5 вышла хороша, то мы бы не затеяли дебаты и давным давно использовали бы одну технологию - Qt!".
Появление реальной кодовой базы Unity Next означает, что Canonical определилась с выбором и выбор - Qt.

Дополнительные материалы:
Оглавление "серии заметок об Ubuntu".
Процесс загрузки приложения в репозиторий Ubuntu. Предыдущая статья из серии.
Unity и Единство. Следующая статья из серии.
Новая модель работы процессов.
Цикл статей о магии Juju.

Дата последней правки: 2023-03-31 16:32:49

RSS vasilisc.com   


Разделы

Главная
Новости
Ворох бумаг
Видео Linux
Игры в Linux
Безопасность
Статьи об Astra Linux
Статьи о FreeBSD
Статьи об Ubuntu
Статьи о Snappy
Статьи об Ubuntu Phone
Статьи о Kubuntu
Статьи о Xubuntu
Статьи о Lubuntu
Статьи об Open Source
Карта сайта