История вопроса
Наверное, за последние 10 лет не было такой сферы разработки мобильных устройств, где бы не находились инициативные любители создать что-то под управлением Linux. Уже на заре возникновения рынка смартфонов, которые работали под первыми RTOS-системами, возникали различные проекты использования открытого программного обеспечения для построения гибкой, модульной и максимально настраиваемой мобильной ОС. Первые несколько лет энтузиасты "мобильного Linux" просто пытались по-разному портировать уже развитые к тому времени десктопные решения для работы на портативных устройствах. Мы не будем перечислять все эти разработки и останавливаться на каждой из них, объясняя причины неудач их создателей. Важно отметить другое – все эти проекты создавались из расчета, что когда-то наступит такое будущее, когда смартфоны и коммуникаторы не будут отличаться в работе от обычных компьютеров: они будут такими же производительными, иметь крупные экраны, простое и удобное управление, а также поддерживать работу со "взрослыми" приложениями. К сожалению, тогдашнее аппаратное обеспечение не удовлетворяло амбициям разработчиков, а выпущенные несколько специальных устройств так и остались только концептами, недоступными массовому рынку.
Поэтому мобильные приложения последнего десятилетия разрабатывались и разрабатываются под особые платформы, на базе которых работают современные смартфоны и коммуникаторы. Они, безусловно, позиционируются как удобная альтернатива десктопным решениям, но на деле лишь отдаленно приближаются к ним. Так, к примеру, практически ни в одной из современных мобильных ОС, считающихся "компьютерными системами", не реализована среда разработки, позволяющая программисту создавать приложения прямо на коммуникаторе. Эмуляторы и интепретаторы для таких платформ – "головная боль" как создателей неких универсальных разработок (например, Java-мидлетов), так и пользователей, которые вынуждены ими пользоваться. Они могут серьезно различаться от системы к системе, не поддерживать заявленные функции, нестабильно работать в самом устройстве или вовсе отсутствовать.
Если даже отвлечься от вопросов программирования, то и работать с большими объемами текста (или кода) на многих смартфонах и коммуникаторах крайне неудобно. В итоге получается, что каждая из существующих мобильных ОС мало того, что является ограниченно функциональной, но и, плюс ко всему, предполагает, что программы под нее будут писаться исключительно на нативном языке с использованием "родных" библиотек и так далее. Портирование одной и той же программы на несколько платформ, в итоге, отнимает у разработчика время и другие ресурсы, а внутреннее "разнообразие" разных версий одной и той же ОС увеличивает количество возникающих проблем, ошибок и других нештатных ситуаций. Есть ли выход из подобной ситуации? В сегодняшнем материале мы расскажем о Maemo – первой системе для мобильных устройств, которая в своей основе не является "мобильной", а предоставляет разработчику возможности классических десктопных решений.
Maemo как Linux
Проект Maemo (ранее известный как Internet Tablet OS) начался в середине 2000-х годов с момента появления первых планшетных компьютеров Nokia – 770, N800 и N810. Установленная в них операционная система была одной из вариацией Debian, одного из самого популярного дистрибутива Linux.
Проект Maemo был изначально создан для Интернет-планшетов Nokia
С самых первых версий она позиционировалась как десктопная система (только рассчитанная на работу на Интернет-планшете) и включала в себя несколько "взрослых" приложений – полноценный веб-браузер, Adobe Flash, медиапроигрыватели, а также менеджер пакетов. Тем не менее, на тот момент сами планшеты не имели GSM/UMTS-модулей и вся работа с беспроводными сетями велась по Wi-Fi.
Nokia N900 стала первым планшетом, который научился "звонить"
"Революция" началась, когда в 2009 году на рынке появилась Nokia N900. Теперь планшет "научился" звонить и выходить в Интернет через 3G-сети, стал работать на гораздо более производительном чипе, получил отдельный 3D-видеоускоритель с OpenGL и стал более компактным в размерах. Внешне устройство напоминает больше QWERTY-коммуникатор, чем уменьшенную копию планшетного компьютера.
Вместе с выходом Nokia N900 изменения произошли и в Maemo. Пятая версия стала основываться на другой графической подсистеме (Xorg) и библиотеке GTK+, на базе которой построен полностью переработанный пользовательский интерфейс, оптимизированный под тач-управление. В нем используется и актуальное решение последних лет – виджеты, помещенные на расширенный экран ожидания. Управление окнами реализовано аналогичным образом как на нетбуках под управлением модифицированных версий дистрибутивов Ubuntu – на экране в фокусе может находиться только одно запущенное окно (остальные работают в фоновом режиме и к ним легко перейти, нажав на иконку в верхней панели). Тем не менее, Maemo 5 полностью поддерживает реальную многозадачность в отличие от некоторых популярных мобильных ОС.
Реальная многозадачность - главная особенность Maemo
Nokia N900 благодаря Maemo 5 является полноценным сетевым и медиаустройством – на нем можно смотреть видео в HD-разрешении на широкоформатном экране (800*480 пикселей), делать фотографии встроенной 5-мегапиксельной камерой, открывать в браузере нагруженные графикой и флеш-элементами современные вебсайты, играть в 3D-игры с продвинутой графикой (как созданных непосредственно под Maemo, так и под некоторые другие платформы, например, Palm OS или Nintendo – через эмулятор). Кроме этого, сам планшет по-прежнему плотно интегрирован с веб-сервисами - в Maemo 5 есть клиенты VoIP, микроблогов и социальных аудиосервисов, интерактивные онлайн-карты и так далее). Это позволяет считать Maemo-устройства реальными прообразами будущих "тонких клиентов" и мультимедиа-компьютеров нового поколения.
Maemo 5 прекрасно интегрируется с веб-сервисами
Заметим, что Nokia N900 является своего рода первым мобильным аппаратом на базе Linux, в котором штатная ОС позволяет "из коробки" стабильно и корректно работать с модулями UMTS, Bluetooth, Wi-Fi и поддерживать популярные медиаформаты. Обычно для этого требуется устанавливать или дополнительное программное обеспечение, или дожидаться выпущенных энтузиастами или вендором патчей и обновлений.
Разработка под Maemo
Выше мы уже сказали, что в основе своей Maemo представляет Debian Linux с поддержкой обычных десктопных системных служб (оболочки интерфейса, диспетчера пакетов) и приложений. Работа с программами на Maemo не отличается ничем от того, что реализовано на любом другом Linux-дистрибутиве. Например, помимо уже упоминавшегося менеджера пакетов, в системе есть терминал (в базовой поставке) и с ее помощью пользователь легко может запускать приложения от учетной записи суперпользователя (sudo) - логин gainroot и пароль rootme использовались еще до Maemo 5 и актуальны до сих пор. Через консоль можно и устанавливать обычные deb-пакеты через команду apt-install. Тем не менее, сама система, как и любой другой "мобильный Linux" является устойчивой и в меру безопасной – возможность несанкционированного доступа к данным сведена к минимуму за счет продуманной системы авторизаций.
Привычный терминал в Maemo 5
Использование нативного ядра Debian позволяет запускать на планшете обычные программы, разработанные под настольные системы (потребуется перекомпиляция под ARM-архитектуру), что дает фору разработчикам open-source продуктов в их чрезвычайно простом портировании под Maemo. Для этого нужно будет воспользоваться специальными инструментами (кросс-компилятор Scratchbox), входящими в состав Maemo SDK или существующими в виде отдельных разработок (например, Madde). В ряде случаев, когда речь идет о адаптации сложного пользовательского интерфейса, разработчику потребуется внесение небольших изменений в код, но никак не переписывании его с нуля, как происходит, например, на других "мобильных Linux".
Maemo SDK устанавливается на основанные на Debian дистрибутивы Linux и включает все необходимое для разработки
В результате для Maemo 5 уже выпущены популярные open source-продукты – мессенджер Pidgin, офисный пакет Open Office.org, текстовый процессор Abiword (и табличный редактор Gnumeric), медиаплеер Mplayer и многие другие. Заметим, что основные фазы разработки и отладки софта производятся под x86-архитектурой, а его компиляция для ARM производится только на финальной стадии. На других платформах разработка идет изначально в изолированной среде ("песочнице"), что может накладывать определенные существенные ограничения на функциональность конечного продукта.
Портирование на Maemo уже существующих разработок под Debian - очень простая операция
В качестве нативного языка программирования для Maemo выступает C, а сами приложения при помощи библиотек GTK+ во фреймворке Hildon. Кроме того поддерживаются и другие популярные языки разработки – C++/C#, Ruby, Mono. Разработчик не ограничен в реализации обязательным применением специальных классов из SDK для реализации взаимодействия программы и интерфейса мобильной ОС.
По информации Nokia в Maemo 6 появится долгожданный набор библиотек Qt (сейчас она поддерживается в экспериментальном режиме), что еще больше упростит процесс создания софта – под Qt пишутся программы для Symbian OS, другого популярного проекта, развиваемого Nokia. Помимо этого, уже сейчас на Maemo можно запускать Java-мидлеты (для этого есть виртуальная ява-машина Jalimo) и Python-программы (и, естественно, разрабатывать их на самом устройстве в соответствующей версии фреймворка). Есть возможность создания интерактивных веб-виджетов или расширений, интегрируемых с браузером или отдельными частями интерфейса Maemo (очень похоже на другой новый проект "мобильного Linux", развиваемый Palm).
В самой Maemo есть все, что нужно разработчику
Все применяемые в разработке инструменты являются open source-разработками, что представляет собой огромное преимущество для программиста: над программой трудится не только он один, но целое сообщество, которое вносит улучшения и развивает сам продукт. В частности, к таким проектам относится Maemo.org и maemo.nokia.com, где можно найти документацию, обучающие примеры и образцы созданных приложений, а также необходимую информацию по адаптации уже существующего софта под Maemo.
Перспективы Maemo 6
Мы упомянули выше, что ОС Maemo в скором времени будет обновлена до шестой версии (это случится к 2011 году). Основные изменения (помимо перехода на Qt) коснутся пользовательского интерфейса – в частности поддержки виджетов, встроенных в сами приложения, а также работы не только в горизонтальной, но и в вертикальной ориентации для всех программ. Окна самих приложений будут поддерживать масштабирование отдельных деталей интерфейса, что сделает работу на самом планшете более удобной.
В следующей версии Maemo будет дальнейшее развитие концепции виджетов
Параллельно с этим Nokia сделала несколько ключевых заявлений, объявив о том, что Maemo станет системой "по умолчанию" для своих топовых устройств в недалеком будущем, в то время как Symbian OS останется системой на массовом рынке. Учитывая тенденции последнего времени ("второе рождение" Интернет-планшетов, расширение функциональности коммуникаторных аппаратных платформ и постепенное стирание границ между мобильными и десктопными ОС в сфере работы с веб-приложениями) и выход самой Nokia на рынок Интернет-планшетов и нетбуков, появление решений на базе Maemo будет как никогда своевременным. В ближайшие годы на рынке появится 1-2 Maemo-планшета от Nokia, что позволит разработчикам в спокойных условиях освоиться с новой для них платформой и создать или перевести под нее наиболее актуальное программное обеспечение. Заметим, что Nokia активно поддерживает их начинания – использование API популярного веб-сервиса хранения заметок Evernote позволило создать полностью интегрированное с Maemo расширение. Его и другие полезные продукты можно загрузить из соответствующих разделов магазина приложений Ovi Store (Магазин Ovi). Разработчики могут размещать их там бесплатно и зарабатывать на продаже платного контента.
Прямой и простой путь попадания программы в Application manager на Maemo "лежит" через Ovi Store
В итоге, Maemo справедливо может быть отнесена к наиболее перспективным платформам для будущих мобильных устройств, выходящих за стереотипное определение коммуникаторов и смартфонов. Поддержка со стороны крупнейшего вендора (Nokia), использование популярного в open source-среде решения (Debian Linux) и гибких инструментов разработки (Maemo SDK, Hildon, Qt и так далее) и продвижения контента (Ovi Store) делает Maemo в глазах программистов, вне всякого сомнения, лучшей системой.