Canonical только что анонсировала бета-версию SDK для Ubuntu Touch. Хотя это может выглядеть как еще одна попытка заставить разработчиков работать с еще одной мобильной операционной системой, это гораздо больше. Фактически, вам должен быть интересен этот SDK, даже если вы не интересуетесь мобильными устройствами.
У Canonical сейчас серьезная проблема со связью. Его главная новость заключается в том, что он готовит Ubuntu для работы на сенсорных устройствах — телефонах, планшетах и, предположительно, телевизорах. Это достаточно разумная идея, но многие воспримут ее с некоторой долей зевоты, потому что у нас уже слишком много мобильных операционных систем на базе Linux. Хотя энтузиасты Ubuntu могут подбодрить команду, остальные из нас уже слишком углубились в Android, iOS и даже Firefox OS.
Однако вы должны подавить этот зевок, потому что стратегия Ubuntu — это то, о чем вам нужно знать. Речь идет не только о разработке приложений для мобильной операционной системы, для которой на данный момент фактически нет оборудования. Речь идет о разработке того, что выглядит как нативные приложения, которые работают в очень популярной версии настольного Linux, то есть Ubuntu. Поэтому тот факт, что Canonical производит версии Ubuntu для мобильных устройств и устройств с сенсорным экраном в целом, является для многих разработчиков лишь вишенкой на торте.
Первое, что нужно сказать, это то, что вы можете заниматься собственной разработкой на C / C ++, используя Qt в качестве среды пользовательского интерфейса. В этом нет ничего нового, за исключением того, что UI-фреймворк поддерживает сенсорное управление. Вы также можете писать приложения, используя язык дизайна QML UI и JavaScript.
Особенностью этого SDK является то, что он позволяет писать приложения с использованием HTML и JavaScript, которые выглядят и ведут себя как собственные приложения. На данный момент вы можете сказать, что в этом нет ничего нового — в конце концов, и Firefox OS, и Chrome OS делают это. Но подождите, Ubuntu — это операционная система Linux, а не браузер. Естественно, у него нет способа отображать HTML или запускать JavaScript — если вы не установите поверх него браузер.
Ubunto позволяет писать HTML / JavaScript и запускать результат как собственное приложение. Он использует те же методы, что и Cordova, также известная как PhoneGap. В этом случае Cordova API был реализован для сопоставления вызовов JavaScrpt непосредственно с собственными вызовами. Пользовательский интерфейс создается с использованием атрибутов data-role для сопоставления div с виджетами Qt.
Это действительно так просто и работает с любым виджетом Qt, который вы хотите использовать. Например:
помещает Qt CheckBox на страницу.
Вы можете видеть, что это не совсем стандартный HTML-способ создания пользовательского интерфейса, но он близок и вы получаете что-то, что выглядит и ощущается как собственное приложение, которое будет работать на всем, от Desktop Ubuntu до планшета и телефона. Вы даже можете использовать адаптивный дизайн, чтобы макет выглядел хорошо.
Если вам кажется, что этот подход звучит знакомо, стоит сказать, что он очень похож на способ, которым Microsoft реализовала приложения HTML / JavaScript в WinRT, где используется тот же трюк с отображением тегов HTML на собственные элементы управления.
В этом SDK многого не хватает, и что-то не всегда работает с первого раза — например, приходится часто закрывать создатель Qt и запускать его снова — но вы можете видеть, к чему все это идет.
Canonical не только создает версию Ubuntu с сенсорным экраном, но и создает простую в использовании среду разработки, работающую на различных языках. Вы можете выбрать C / C ++, Qt, QML, HTML и JavaScript. В будущем, вероятно, будут официально поддерживаться другие языки, такие как Python.
Идея, похоже, состоит в том, чтобы написать один раз запустить где угодно — если это разновидность Ubuntu.
Все, что вам нужно для работы с SDK, — это последняя версия Ubuntu на настольном компьютере и, возможно, телефон разработчика.