Проект "Аврора", на сегодня, выглядит одним из самых живых и интересных случаев развития операционных систем внутри России.
Во-первых, это мобильная операционная система для современных смартфонов, первый или второй не американский продукт такого рода, разработка ОС ведётся с 2016-го года (китайская Harmony OS отсчитывает своё рождение с 2012-го, но это более широкий проект и реальные работы по нему начались сильно позже).
Во-вторых, там есть заметное сообщество разработчиков: в одном ВК около 10 000 человек, в Telegram более 5 000
В-третьих, устройства на базе "Авроры" достаточно легко купить.
О разработке под "Аврору" мы спросили именно разраба Телеграфъ, поскольку он не страдает избыточной корпоративностью и аффилированностью с "Авророй" и вполне может рассказывать открыто о своём опыте разработки под новую мобильную операционную систему.
Представим нашего собеседника как "Михаил", тем более что именно так его и зовут.
Roem: Основной вопрос — почему нельзя из исходников Telegram собрать клиент под "Аврору"?
Михаил: Нативные приложения Авроры - это приложения Qt 5.6 со специфическими особенностями и особыми UI элементами
Roem: То есть, собрать из исходников можно разве что версию для командной строки, а весь UI надо делать тогда самостоятельно?
Михаил: Да. По-настоящему кроссплатформенный у Telegram только код бизнес-логики и CLI (command line interface)
Roem: А что удалось взять из предтечи Телеграфа — Ферншрайбера и что пришлось допиливать? (Fernschreiber — клиент Telegram под Sailfish OS)
Михаил: Из Ферна взяли почти всё. Вообще, сообщество Sailfish это основной донор софта для Авроры.
Допиливали уже нативные элементы управления пятой "Авроры", оптимизировали энергопотребление, ну и баги фиксили.
Надо понимать, что Sailfish-сообщество, в общем-то, в упадке (вместе с самой ОС), поэтому тот же Ферн обновлялся редко и мало в последнее время.
Да и всё ПО под Sailfish достаточно сырое (наверное как многий open source). Когда берёшь программу — она вроде бы и работает, а вроде бы и нет.
Сейчас пишут и программы с нуля, но переписывать клиент под Telegram — себе дороже, хотя, видимо, Tavro так и поступили. (Tavro это платный клиент Telegram под "Аврору" - прим. Roem.ru)
Roem: Что тебе пришлось сделать, всё же? Неужели форка хватило?
Михаил: Да, конечно. Различия между ОС пока минимальные, хотя Аврора 5 уже несовместима с Sailfish, если использовать новые элементы UI
Нужны новые элементы управления, новые API. Именно с пятой версии. До этого обе ОС были совместимы на 99.9%
Roem: Насколько высоки требования к квалификации разработчика для осуществления такой адаптации?
Михаил: Чтобы писать нативные приложения, надо не бояться слова "С++". Хотя в Qt достаточно его весьма базового применения
Roem: Куда обращаться за документацией и с вопросами по разработке под Аврору?
Михаил: Формально — на сайт "Открытой мобильной платформы"
Реально — в чаты разработчиков "Авроры".
Лично я "всё" изучил, просто разбирая сложное open source приложение — тот же Fernschreiber, предок Телеграфъ.
Roem: Собственная доработка кода планируется, чтобы были звонки, или оставишь как есть?
Михаил: Лично мне звонки не нужны :) В первую очередь там уже есть длинный список желаемых доработок (папки чатов, форумы, например).
Тут уже начинается тусовка программистов, поэтому может быть, звонки реализует кто-то другой.
Вокруг Телеграм-клиента активность предсказуемо высокая. (Код выложен на Gitflic - прим. Roem.ru)
(а что с примерами кода? — а вот они!)