Мы успели обсудить почти все платформы, более-менее интересные для разработчиков мобильных приложений, а сегодня закончим этот разговор, подведем итоги и даже немного позанимаемся любимым делом всей пишущей братии - попробуем дать прогнозы. Конечно же, всё по поводу обсуждаемых нами мобильных программных платформ.
Bada
По сути дела, из всех действительно многообещающих участников "зоопарка" мобильных операционных систем до сих пор нерассмотренными остались считанные платформы. И первая в этом списке - система с достаточно странным для европейца названием. Bada. Samsung Bada. Загадка этого названия легко проясняется, если вспомнить, из какой страны компания-производитель. Да-да, эта страна - Корея. По-корейски Bada означает "океан". Не знаю, конечно, каковы были мотивы маркетологов Samsung, когда они выбирали название для своей новой платформы, но, думаю, Samsung Ocean звучало бы гораздо привлекательнее. Впрочем, это всё дело вкуса, нам сейчас интересно немного другое.
Bada - это, как и Android, в значительной степени Linux (по крайней мере, как сообщалось в анонсе этой платформы, ядро в ней используется именно "линуксовое"). Поверх ядра есть три "слоя": Device, Service и Framework. Device предоставляет основную функциональность - вывод на экран графики, осуществление звонков, работу с протоколами передачи данных и т.д. Service предоставляет уже функции, связанные с использованием конкретных сервисов. Ну, а уровень Framework - это именно то, с чем, в основном, и имеет дело программист: он предоставляет прикладные API-интерфейсы, которыми приложение "укореняется" в операционной системе.
Приложения в Bada нативные, то есть нет такой виртуальной машины, как, например, в Android или BlackBerry OS. По идее, они должны выполняться быстрее и быть терпимее к разным вещам, требующим большого объёма вычислений. Программировать предлагается с помощью специального SDK, которое можно найти на www.bada.com, а в качестве языка программирования выступает C++. Для разработки приложений доступен плагин к Eclipse, который позволяет, ко всему прочему, строить в графическом режиме и интерфейс мобильного приложения, а также отлаживать их под эмулятором.
Что касается сравнительной простоты разработки, то, конечно, здесь концептуальная сложность C++ несколько компенсируется дизайном API самой платформы, хотя в отношении той же "сборки мусора" Java для среднестатистического разработчика всё-таки остаётся предпочтительнее. При всём при том, C++ остаётся для среднестатистического программиста предпочтительнее, чем "яблочный" Objective-C. Что касается маркетинговых аспектов разработки под Bada, то здесь всё, в принципе, точно так же, как и со всеми не топовыми платформами - Windows Phone 7, WebOS, Brew Mobile. Сложно предположить, насколько популярной будет эта платформа в недалёком будущем, но однозначно можно сказать, что потенциал у неё достаточно неплохой.
Maemo
Компания Nokia, конечно, не могла спокойно смотреть на то, как умирает "курица, несущая золотые яйца" - программная платформа Symbian. На смену ей, по задумке инженеров компании, должна была придти платформа с достаточно красивым и в некотором роде поэтичным названием - Maemo. Забегая вперёд, скажу, что сегодня вместо этой платформы Nokia активно продвигает платформу под названием MeeGo, которую она разрабатывает совместно с компанией Intel.
Итак, Maemo. Сегодня эту платформу можно увидеть на таких устройствах, как Nokia 770 Internet Tablet, Nokia N800, N810 и Nokia N900. Технически она, как и множество других, базируется на ядре Linux, что, впрочем, как и в случае со многими другими платформами, совсем не мешает ей быть достаточно самобытной, а местами и закрытой.
Что касается разработки программных продуктов под данную платформу, то, в отличие от множества других мобильных программных платформ, она достаточна демократична в отношении средств разработки. "По умолчанию" предлагается разрабатывать софт на обычном классическом C, с использованием соответствующего Maemo SDK, но если есть желание обратиться к каким-либо альтернативам, то можно писать с помощью Java (для Jalimo JVM), на Python, на Ruby, а также с использованием Mono. Пользовательские интерфейсы под Maemo 5 можно писать на Qt или GTK+ (Qt, скажем так, дефолтная платформа для написания интерфейсов под Maemo, что вполне понятно в свете общей политики Nokia в отношении данной библиотеки).
Есть ли смысл сегодня затевать разработку под Maemo? Очевидно, нет. Дело в том, что устройств под управлением этой операционной системы не так уж и много, да и новых, судя по всему, не предвидится. Так что если вы не ярый поклонник продукции Nokia и пишете свой софт не для других таких же фанатов, а для простых обывателей, то, очевидно, игра не будет стоить свеч.
MeeGo
Сложно сказать, насколько удачно решение компании Nokia создать собственный небольшой "зоопарк платформ" в долгосрочной перспективе, но пока что пользователей это, скорее, отталкивает, чем привлекает. Сегодня это, пожалуй, одна из самых молодых программных платформ на всём рынке. Но разрабатывать программное обеспечение для неё, пожалуй, всё-таки перспективнее, чем для той же Maemo или даже WebOS. Если только, конечно, компания Nokia вдруг не решит выпустить ещё одну операционную систему. Впрочем, учитывая участие в проекте компании Intel, можно этого особенно не опасаться. Приятно и то, что её обещают выпустить не только для смартфонов, но и для нетбуков, а сейчас, в период расцвета планшетов, наверное, и для них... В общем, если Nokia и Intel действительно доведут затею до её логического завершения, то подукт получится достаточно интересным и для пользователей, и для разработчиков.
Стоит ли удивляться, что и MeeGo, как и Maemo, основывается на коде ОС Linux и разрабатывать дополнительное ПО предлагается с использованием всё того же Qt на C? В общем-то, по большому счету, это даже удобно, потому что технологии достаточно неплохо изучены, и для Qt существуют удобные и качественные инструменты разработки. Можно писать и с использованием GTK, если есть такое желание, но, как и любые нестандартные решения, это сопряжено с рядом дополнительных трудностей.
Разные Linux'ы
Наверное, вы уже обратили внимание, что большое количество разных более-менее популярных программных платформ для мобильных устройств являются технологическими потомками Linux. В этом нет ничего удивительного, потому что Linux известна своей хорошей переносимостью между разным аппаратными платформами, ну и, конечно, открытостью исходного кода. Это порождает обилие разных дистрибутивов - и количество "мобильных Линуксов", которые не просто используют ядро ОС, а фактически адаптируют её практически целиком к использованию на мобильных устройствах, достаточно велико.
Самые известные среди мобильных Linux-систем - это Moblin, Mobilinux и OpenMoko. Объединяет все эти платформы не слишком широкая распространённость на мобильном рынке, а также ориентация на "гиков", для которых сам факт присутствия Linux на мобильном устройстве является залогом его привлекательности. Само собой, для коммерческой разработки такие программные платформы будут не очень привлекательны, потому что большая часть их пользователей изначально рассчитывают на свободные приложения. Что касается разработки, то здесь всё достаточно схоже с новыми ОС от Nokia - Qt и Gtk, в основном программирование на C или C++.
Подведём итоги
Не знаю, может быть, вы и не чаяли, что наш разговор о сравнительной лёгкости или сложности разработки приложений под мобильные операционные системы когда-либо завершится, но, тем не менее, это всё-таки случилось - мы подводим итоги.
Если говорить именно о технической простоте разработки и простоте самих инструментов, предлагаемых создателем программной платформы, то, наверное, лидером можно признать WebOS, которая, к сожалению, пока не может похвастать заметной долей рынка. Но, в любом случае, своё место под Солнцем она завоюет, и во многом в этом ей поможет именно простота разработки. Контрлидером можно считать операционную систему Symbian, которая, кстати, в отличие от WebOS, имеет достаточно неплохую долю рынка (пусть, конечно, будущее этой ОС и не внушает особого оптимизма...). Ну а вообще, конечно, проще писать под ту платформу, которую вы досконально изучили. Вопрос о том, какие из них стоит изучать, требует оглядки на рыночные реалии, а не только на технические особенности каждой из платформ.
Рыночная ситуация сегодня складывается таким образом, что вырисовываются самые главные игроки рынка - Android и iOS. Пусть даже доля BlackBerry OS и Windows Mobile (а в перспективе и Windows Phone 7) будет также не самой маленькой, у них сейчас меньше шансов стать "царем горы" и, возможно, таким же монополистом рынка мобильных устройств, каким стала Windows на рынке настольных компьютеров и лэптопов. Не очень верится в то, что существующая сегодня многокомпонентность рынка мобильных ОС сумеет продержаться ещё достаточно долгое время - десять лет или более. Впрочем, если окажется, что мои предсказания не оправдаются, можно будет только порадоваться, хотя, конечно, разработчикам проще писать приложения под одну платформу, а не под десять разных.
Вадим СТАНКЕВИЧ,
dreamdrusch@tut.by