Джо́но Бэ́кон (Jono Bacon) продолжает освещать процессы, происходящие внутри Canonical и Ubuntu. Целью является освещение того, что скрыто в недрах кода и часто малозаметно простым пользователям и разработчикам приложений. Статья описывает причины, побудившие создать Ubuntu SDK, выбор инструментария и фреймворков.
Долгое время разработчики в Убунту были сильно фрагментированы по различным критериям. Так произошло по ряду причин:
Canonical пыталась исправить часть вышеперечисленных проблем, рекомендуя разработчикам писать программы с использованием Python и GTK. Даже был создан инструмент Quickly для упрощения процесса написания. Quickly генерировал проект и помогал с задачами редактирования, создания UI, созданием пакета. Но Quickly был несколько примитивным и не являлся панацеей всех проблем.
Quickly показал наши ограничения в инструментарии. В то старое время, разработчикам рекомендовалось использовать GEdit, Glade и GTK. К сожалению, этот набор просто не сравним с инструментарием разработчиков Apple и Google. Стало ясно, что нужно обеспечить программистов более функциональным инструментарием и SDK.
Canonical намерена разрешить ситуацию и предоставить Ubuntu SDK. Первый вопрос был поднят об выборе фреймворка для построения высокоэффективных программ, способных работать на различных устройствах.
Составленный список насчитывал:
Некоторое время назад, решено было сфокусироваться на Qt, как на платформе, не только при создании Ubuntu SDK, но при объединении всех устройств под единой Ubuntu.
Qt обладает следующими достоинствами:
Выбор в пользу Qt Creator, как главной IDE, был сделан. Но чтобы помочь разработчикам, использующим HTML5 для создания веб приложений, Canonical инвестировала средства в Apache Cordova. Apache Cordova - это набор API, который позволяет JavaScript'у доступ к железу мобильных платформ. Ubuntu SDK будет поддерживать Cordova, что сделает создание приложений HTML5 более простым и гибким. Программист сможет писать HTML5 приложение:
Обе возможности будут доступны в IDE Qt Creator!
Canonical сформировала команду SDK и приступила к работе, которую разбили на две части.
Во-первых, начата работа над платформой для разработчиков приложений. В основе своей, это выяснение всего, что требуется программистам для написания ПО для Ubuntu, которая работает на множестве аппаратных платформ и на устройствах с различным форм-факторах. Так же, кроме выяснения необходимого, идёт создание поддержки этого со стороны Canonical.
Речь идёт о:
Эта работа в данный момент времени находится на разных стадиях завершения, но весь API платформы будет готов в конце августа 2013. Многие приложения используют данный API уже прямо сейчас. Главное, что все сервисы будут доступны на всех платформах и на всех устройствах с разными форм-факторами. Убунту стремится к единению устройств под своим началом.
Во-вторых, создание SDK как такового. Добавление нужного функционала в Qt Creator IDE для использования его при написании приложений Qt/QML, HTML5 и OpenGL. Работа в этом направлении задела ряд областей и результатом стало:
Всё вышеперечисленное уже доступно в Ubuntu SDK и программисты могут начать знакомство с developer.ubuntu.com.
Сайт developer.ubuntu.com должен стать центральным ресурсом для разработчиков, помогая во всех аспектах разработки. Сайт обеспечивает руководствами по созданию приложений, документацией по API, коллекцией примеров App Developer Cookbook на частые вопросы с AskUbuntu. Уже сейчас сайт является не плохим трамплином для начала работы. Но работа над ним продолжается и будут улучшения и нововведения:
Множество улучшений можно будет увидеть уже в ближайшие осенние дни. Читая эти строки у вас может возникнуть мысль, что 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.