Разработчики KDE портировали офисный пакет Calligra для платформы Android

В качестве эксперимента по оценке трудоёмкости портирования KDE-приложений для платформы Android, мобильная версия офисного пакета Calligra, продолжающего развитие KOffice, была успешно адаптирована для работы на планшете на базе Android. Несмотря на то, что пока остаются нерешёнными некоторые проблемы и не все возможности функционируют как задумано, в целом Calligra уже успешно запускается и работает под управлением Android. Представленная работа лишь проба пера, в дальнейшем можно ожидать переноса для Android и других популярных приложений на базе библиотеки Qt.

Для обеспечения работы Calligra в окружении Android были использованы наработки развиваемого разработчиками KDE проекта Necessitas, нацеленного на обеспечение запуска Qt-приложений на платформе Android. Основные трудности в портировании Calligra были связаны с работой подсистем DBus и KSyCoCa. Проблема с отсутствием поддержки DBus в Android была решена комментированием в kdelibs всех блоков кода, связанных с обменом данных через DBus. Так как DBus почти не используется в Calligra, его удаление заметно не отразилось на функциональности. Связанный с KSyCoCa код также был отключен, так как несмотря на все старания обеспечить работу KSyCoCa в Android не удалось. На базе KSyCoCa в Calligra построена система привязки обработчиков контента к плагинам, поэтому в порте Calligra для Android пришлось пожертвовать поддержкой подключения внешних дополнений.

Портирование стало возможным, так как ключевым отличием Calligra от KOffice является переработка внутренней архитектуры, которая теперь разделена на базовые внутренние подсистемы и внешние пользовательские оболочки, что позволяет создавать на одной основе как легковесные урезанные версии, так и полнофункциональные варианты офисного пакета для настольных систем. В частности, на базе Calligra уже развиваются два варианта для мобильных устройств - Calligra Mobile (задействован язык декларативного описания интерфейса QML) и Calligra Active (используется QML и технологий Plasma Active).

©  OpenNet