Куда податься телефонному кодеру: полный гид по мобильным платформам для программиста

Тот факт, что зарабатывать космокредиты на кодинге под мобилы нелегко, сомнений не вызывает. Именно поэтому программистов для Symbian, iPhone, BlackBerry, Windows Mobile, Android и других мобильных платформ почтенно зовут девелоперами. А когда зовут - обещают много платить за хорошую работу. Может и тебе пора влиться в стройные ряды воинов мобильного R&D?

Apple iPhone

Справка:

  • Используемые языки низкоуровневого программирования: Objective C, C++
  • Примерное количество проданных устройств: около 15 млн.
  • Доля рынка смартфонов: 16%
  • Количество выпущенных моделей телефонов: 3

Позитив:

  • Удобный SDK
  • Единый магазин программ с большим количеством покупателей
  • Не надо заботиться о совместимости с архивом выпущенного железа

Негатив:

  • Принципиальная невозможность реализовать многие функции через официальный SDK
  • Необходимость иметь компьютер Apple или с Mac OS X для установки IDE
  • Сложно продать программу дороже $5

Софт для великого и ужасного гаджета из Куперитно не пишет только ленивый или бездарный. Компания сумела создать глянцевый телефон, глянцевый SDK, отполировала все грамотным пиаром и прикрепила качественную документацию (подробнее об этом мы писали в декабрьском ][).

Программы для iPhone продаются легко и быстро, – владельцы сверкающей мобилки оперативно и с завидной периодичностью заходят в специально отведенное место, именуемое AppStore, и покупают там свежие игры и софт. Основная часть покупаемого стоит от $0.99 до $4.99. Это достаточно простые программы кодеров-любителей или маленьких компаний, часто выполняющие 1-2 функции. Такой софт ласково называют iFart (в вольном перевода – "яПук"). Программы, которые после мелькания на главной странице попадают в top100 или, еще лучше, в top20, зарабатывают своему создателю тысячи долларов. Но стандартный сценарий таков: в первый день появления на главной – 20-30 покупок, затем падение в архив и 1-2 покупки в неделю (что приносит автору по одному-два бакса в день или неделю). Стабильно, но как-то не очень прибыльно. Подобная незавидная участь постигает 80% программ в AppStore.

Позитивный момент заключается в том, что существует единый магазин, который уже встроен в телефон, о котором пользователи знают, куда постоянно заходят и… покупают, покупают, покупают. Ни один другой производитель телефонов не смог привить покупателям своеобразный рефлекс, что софт надо брать не на форумах, а в магазине. Даже охочие до халявы жители нашей прекрасной страны, представьте себе, софт для Symbian воруют, а для iPhone – покупают.

Такая вот система ценностей. Если грамотно подойти к вопросу и создать программу, которую захотят купить тысячи пользователей, то можно срубить определенное количество денег.

Используемый язык похож на С++, среда разработки и документация – в порядке. Начать опытному кодеру будет легко. Своих нюансов хватает, но головной боли немного. Самое главное, не надо беспокоиться о совместимости со старыми версиями SDK и операционок (пламенный привет Symbian), с разношерстным железом, разными разрешениями экранов и миллионами способов ввода данных. Имеющиеся на рынке два (фактически даже один) телефона аппаратно чуть ли не идентичны. Посему – программить выходит реально легче.

Вердикт:

Возможно, путь мобильного девелопера имеет смысл начинать именно с яблочной мобилки. Вот только, чтобы чего-то добиться, надо уметь часто и много думать, ориентироваться на пользователя, чувствовать тренды и движения рынка. Смогешь?

Java ME

Справка:

  • Используемые языки низкоуровневого программирования: Java ME
  • Примерное количество проданных устройств: почти миллиард только в 2008 году
  • Количество выпущенных моделей телефонов: 80% всех выпущенных в мире телефонов

Позитив:

  • Совместима с большинством выпущенных телефонов
  • Легкая в освоении
  • Специалисты востребованы на рынке

Негатив:

  • Не работает на iPhone, Palm OS и без дополнительного ПО на Windows Mobile
  • Много проблем с совместимостью и поддерживаемым функционалом
  • Программы сложно продать

Джава вообще стоит особняком – это не операционная система, привязанная к конкретным производителям, а универсальная платформа, которую поддерживают чуть ли не все телефоны дороже $60-80 (iPhone не в счет, он от Стива Джобса). Универсальность и многогранность платформы Java ME сочетаются с универсальностью и многогранностью самого языка: чтобы написать что-то толковое, надо достаточно неплохо разбираться в вопросе. Java-кодинг для мобилок напоминает верстку HTML – делаешь велосипед, а потом создаешь для него ассорти – педали, рули и седла, чтобы каждый желающий мог воспользоваться.

Правда, есть один существенный плюс: однажды написанную Java-программу относительно легко адаптировать и для свежеиспеченных сенсорных Nokia, и для настроенных на бизнес BlackBerry, и для обычных телефонов-звонилок, и даже для чего-то совсем нового, что выйдет только через год. И все же – Джава Джаве рознь. Отсюда и много дополнительной работы по адаптации готовых программ для новых устройств.

Но все проблемы по написанию софта кажутся мелочью по сравнению с тем, как непросто уговорить пользователя его поставить и, тем более, купить. Владельцы смартфонов предпочитают нативные программы, а большинство (абсолютное) владельцев телефонов и знать не знают о возможности установки дополнительного софта. Те, кто знают – или не подозревают, где его брать, или попросту не желают этим заниматься. Централизованного и официального магазина Java-программ нет, как не существует у владельцев телефонов сформированной культуры покупать Java-софт для телефонов.

Да, Java-проги собираются на разнообразных форумах или сайтах вроде GetJar.com, но туда ходят только относительно продвинутые пользователи или же дети, желающие вытянуть максимум из подаренной бюджетной трубки, чья цель – игры и другие развлекательные программы (почти как у iPhone, кстати). Только единицы готовы платить за Java-программы. Java ME – скорее, прерогатива игр (часто – нескромного содержания), которые присылаются в обмен на SMS, отправленное на короткий платный номер.

Вердикт:

Хороший бизнес для любителей клонировать порноигрушки и развлекательные программки. Зарабатывать доллары можно через показ рекламы или контракты с оператором.

Symbian

Справка:

  • Используемые языки низкоуровневого программирования: Symbian C++, C, C++
  • Примерное количество проданных устройств: 226 млн. (вместе с японскими моделями)
  • Доля рынка смартфонов: 44%
  • Количество выпущенных моделей телефонов: 159

Позитив:

  • ОС распространена и весьма перспективна
  • Специалисты востребованы и высокооплачиваемы
  • Множество средств разработки и совместимых фреймворков

Негатив:

  • Язык труден в освоении
  • Сложная система сертификации программ
  • Ряд проблем совместимости с разными моделями

Одна из самых древних операционных систем с жутко непростой историей и доброй сотней выпущенных устройств. За более чем 15 лет развития операционку и весь сопутствующий инструментарий доделывали, переделывали, обновляли и довели до того, что все стало дико сложно. Тут и язык, максимально напоминающий старый добрый C, который за уши притянули к паттернам и идеям ООП, и переживания по поводу совместимости с разными версиями платформы, сертификатах и прочих отвлекающих деталях.

Nokia постоянно пытается поправить ситуацию – портировали фреймворк Qt, библиотеки P.O.S.I.X, базовые компоненты STL и Boost, ряд ключевых API C++ (IOStreams и иже с ним). Есть отдельные проекты, позволяющие на Symbian-смартах запускать ПО, написанное на C#, Ruby, Python. Прибавь к этому сильное комьюнити, разнообразные поощряющие кампании для разработчиков… – и получишь примерную картину противоречивого мира Symbian-девелоперов.

Что до, собственно, продаж программ, – пока об этом можно не думать. Nokia анонсировала магазин ПО, который будет встраиваться в новые смарты, но пока непонятно, кого и как туда пустят. Во всех современных девайсах с интерфейсом S60 есть сервис Download!, куда финны пускают только супер-пупер компании с высоким статусом и очень толковыми продуктами. Еще существует все тот же GetJar, специализированный Handango и встроенный в сайт Nokia магазин, но это уже совсем другой User Experience, нежели покупка софта прямо с девайса.

В любом случае, – продать простенькую игру или программу в мире Symbian не удастся. Здесь другие интересы и желания. Symbian SDK предоставляет гигантские возможности и пользователи привыкли к максимально высокому функционалу. Но и стоит местное ПО не $5, а, как минимум, $25, а то и $50-70 (бывает и такое).

Вердикт:

Symbian-девелоперам лучше развиваться в сторону работы в софтверной компании, нежели в качестве индивидуального кодера. Вот это – действительно перспективно и пахнет зелеными купюрами!

Android

Справка:

  • Используемые языки низкоуровневого программирования: Java
  • Примерное количество проданных устройств: 1 миллион
  • Доля рынка: менее 1%
  • Количество выпущенных моделей телефонов: 6

Позитив:

  • Удобные средства разработки
  • Подробная документация
  • Бесплатность для разработчика

Негатив:

  • Крайне мало совместимых моделей
  • Система еще достаточно сырая
  • Специалисты мало востребованы на рынке

Google долго-долго смотрела на Symbian, Windows Mobile, BlackBerry, Palm и Apple, изучала их ошибки и проблемы, а потом задумала создать свою платформу, лишенную недостатков и, напротив, фонтанирующую достоинствами. Подход правильный, Энди Рубин – умничка, маркетологи тоже хорошо сработали, но пока получается не все гладко. Даже на завершившейся выставке MWC (в начале марта, – Прим. ред.) показаны всего два новых Андроида, предполагаемых для коммерческого использования: от Vodafone и HTC. Причем, оба внутри абсолютно одинаковые, как будто из одной бочки разливали.

Samsung и многие другие компании пообещали выпустить аппаратуру на базе Android, однако сложно говорить о популярности устройств в будущем.

Google удалось сформировать прекрасное комьюнити, привлечь большое количество разработчиков и подготовить для них подробную документацию с множеством примеров, удобную среду разработки. Это несомненные плюсы, вот только пока сложно получить за свою работу деньги, если Android-кодер, конечно, не работает на софтверную компанию с заказчиками в далекой Америке.

Вердикт:

Разумнее пока выступить в роли наблюдателя. На бумаге (и в обещаниях менеджеров) все красиво, а вот на деле у нас только три полуодинаковых телефона от HTC и много-много тематических новостей на блогах. Даже в этом материале наши эксперты упомянули об Android, но отдаваться этой платформе не спешат.

Windows Mobile

Справка:

  • Используемые языки низкоуровневого программирования: C++, С# .Net
  • Примерное количество проданных устройств: 50 млн. с начала существования, 20 млн. в прошлом году
  • Доля рынка: 13%
  • Количество выпущенных моделей телефонов: более 30 новых моделей в прошлом году

Позитив:

  • Позволяет работать с железом на низком уровне
  • Удобные средства разработки
  • Качественная документация

Негатив:

  • ОС сильно отстает от современных требований
  • Устройства – преимущественно азиатского происхождения
  • Основные пользователи – корпорации и технофрики

Такое ощущение, что платформу намеренно загнали в тупик – она не отвечает современным требованиям к скорости работы интерфейса, мультимедийности, качеству, интеграции с Web и сервисами. В эпоху ярко-красочных AMOLED-экранов WinMo поддерживает всего 65 535 цветов и безбожно тормозит даже на самом крутом железе. Свеженькая версия 6.5 имеет новый макияж да пару неконцептуальных инноваций, которые не сильно исправляют положение.

В то же время платформа предоставляет беспрецедентно низкий уровень доступа к железу. Очень часто программы, которые можно сделать для WinMo, нельзя реализовать ни на одной другой платформе. Именно поэтому все промышленные коммуникаторы и разнообразные специализированные устройства делаются на этой ОС.

А еще ОС от Microsoft используют вкупе с самым передовым железом. Когда-то только на девайсах с Windows Mobile можно было встретить VGA-экраны и Wi-Fi. Теперь в Windows-телефоны ставят экраны с сумасшедшим разрешением 800х480, c которыми могут соревноваться только монстры японского рынка.

При всем обилии функций, мощном железе и богатых возможностях конечные устройства совершенно не удовлетворяют запросам современного пользователя, привыкшего к красочному и быстрому интерфейсу iPhone. У WinMo проблема таится глубоко внутри, в  кривоватом коде и медленной разработке новых версий.

Вердикт:

Windows Mobile не умер и не умрет – Редмонд еще долго будет поддерживать свою ОС и пытаться исправить положение. Потерю популярности умный кодер может использовать для реализации своих амбиций. Ведь надо же создателям новеньких HTC что-то ставить на свои дорогие игрушки?

Эпилог

Ты наверняка ждешь заключения, где умные люди отправят тебя по нужному адресу, скажут, что скачать, поставить и на чем кодить. И напрасно ждешь. Это не имеет смысла без учетов сотни вторичных факторов и условий. Цель статьи – помочь тебе сделать правильный выбор, увидеть тренды и услышать мнения экспертов. А уже выводы придется рождать самому. Дерзай!

Мнения экспертов

ScienceSoft

Отрасли: телекоммуникации, финансовая сфера, здравоохранение, безопасность, инженерия, транспорт и сбыт
Мобильные платформы: Windows Mobile, Symbian, J2ME, Brew, Android
Подробнее: www.scnsoft.com

О заказах: сейчас, скорее, мы объясняем клиенту, для какой платформы ему лучше разрабатывать ПО, нежели наоборот. Клиенты приходят лишь с идеями и сильным желанием воплотить их в жизнь. Дальше – уже работа наших экспертов. В зависимости от сферы деятельности, образа конечного пользователя и других факторов, эксперты планируют и рекомендуют те или иные платформы.

О перспективах: сложно выделить приоритетную платформу. Мы одновременно развиваем несколько направлений, таких как: Symbian, J2ME, WinMo, iPhone, Android и Linux, чтобы быть готовыми к возможным переменам рынка и чтобы нас не задели трудные времена или затормаживание развития любого игрока индустрии.

О работе: мы считаем, что успех проекта зависит не от исполняемого языка или платформы, а от степени готовности команды к решению возможных (прогнозируемых) проблем, а также от степени сложности проекта, конечного видения продукта заказчиком и нашей готовности быстро, качественно сделать продукт в отведенные сроки.

CactusSoft

Отрасли: мобильное ПО, встроенное ПО, VoIP, Java, .NET, сложные WEB-приложения
Мобильные платформы: iPhone, Android, Windows Mobile, BlackBerry, Symbian, J2ME
Подробнее: www.cactussoft.biz

О заказах: последние полгода мы получаем много заказов на разработку под iPhone. Большинство наших заказчиков – американские компании, а в США iPhone очень популярен. Подогревают интерес к программированию под iPhone и многочисленные success stories о "выстреливших" программных продуктах.

О перспективах: сейчас ориентируемся на iPhone, Symbian и BlackBerry, так как уже накопили достаточно опыта, а внушительное портфолио привлекает новых клиентов. В долгосрочной перспективе (скорее всего, ближе к 2010 году) мы рассчитываем на поток заказов под Google Android.

О работе: концептуальной разницы между проектами для разных систем нет, но для iPhone и Android, в общем, получается легче. В дальнейшем разрабатывать под Android будет сложнее (из-за большого количества устройств на рынке от различных производителей, что потребует дополнительных работ).

GetJar

Отрасли: самый популярный в мире каталог мобильного ПО и комьюнити разработчиков
Платформы: Java, Symbian, Windows Mobile, BlackBerry, Palm, Flash Lite
Подробнее: www.getjar.com

О платформах: сегодня самой популярной платформой, без сомнения, является Java. В этом несложно убедиться, просмотрев нашу статистику: stats.getjar.com. Большинство из первой двадцатки поддерживает только Java. И вообще, на рынке максимальное количество Java-совместимых телефонов. Что касается ближайшего будущего, то через 3-5 лет лидерами станут Symbian и iPhone (в приведенном порядке). Nokia активно продвигает Symbian, поэтому, пока она не сменит политику, у Symbian будет огромная доля рынка. Доля рынка iPhone увеличится после появления более дешевой модели, что должно случиться относительно скоро.

Об Android: Android претендует на место доминантной Linux-платформы. Он предлагает гибкую систему лицензирования, ничего не стоит производителям и удобен для разработчиков.

О работе: отличие GetJar от других магазинов и мобильных приложений в том, что мы не ограничиваем пользователя какой-то одной или парой платформ. Мы предоставляем максимальный выбор, привлекаем разработчиков всех перспективных платформ и позволяем им заработать. Наиболее активно развиваются отделы Java, Symbian, BlackBerry, Windows Mobile и Android.

Александр Труфанов

Опыт работы: Symbian OS (платформы S60 и UIQ), немного Windows Mobile
Заслуги: Accredited Symbian Developer, Forum Nokia Champion
Любит: Symbian OS, платформа S60
Не любит: iPhone

О кодинге: Symbian C++ позволяет сделать на S60 то, что не могут ни J2ME, ни какой-либо другой язык программирования или технология. Изучать его можно сразу после базового курса ООП и C++, который многим читают в вузе. Опыт разработки приложений для Windows не требуется – наоборот, может помешать.

"Индусский код", пренебрежение правилами, даже нарушение соглашения об именовании объектов – отольются программисту бессонными ночами за дебаггером. Все это я знаю по собственному опыту, так что мой совет – сначала читайте книжки и не один раз, до тех пор, пока не поймете теорию, и только потом садитесь за Carbide.

Последние SDK носят приставку all-in-one: в них входят средства разработки на Symbian C++, Open C/C++, Java, WRT (виджеты для браузера) и Python. В качестве IDE рекомендую Carbide.c++ 2.х – это наиболее мощный и удобный инструмент, к тому же, с декабря 2008 ставший бесплатным. На данный момент Carbide.c++ позволяет создавать приложения на Symbian C++, C/C++ и Qt.

О документации: SDK комплектуется внушительным справочником. В целом, недостатка в документации по платформе Symbian нет. Единственная проблема – очень мало русскоязычных материалов.

О комьюнити: за ответами на частные вопросы можно обратиться в Forum Nokia. Это полноценная организация, в задачи которой входит взаимодействие с бизнесом и разработчиками. За документацией на русском можно сходить на devmobile.ru.

Об Android: Android слишком сырой. Google удалось отчасти повторить WOW-эффект Apple, и многие программисты возложили на него необоснованные надежды. Но я бы подождал, пока Android покорит обещанные высоты, прежде чем всерьез рассматривать эту ОС. Android уже сейчас имеет серьезные проблемы с совместимостью. Боюсь, для этой ОС будут характерны все недостатки J2ME. Создание приложений на Java - занятие несложное, поэтому сообщество Android-разработчиков довольно многочисленно, а значит – высока конкуренция. Как разработчик, я сейчас не вижу возможностей получения прибыли от создания приложений для гуглофонов.

Об iPhone: разработка приложения для iPhone не импонирует мне по идейным соображениям. Платформа Apple имеет большое число ограничений, как вследствие технических особенностей, так и из-за особой политики компании. Целые классы приложений для iPhone создать просто невозможно. Среди однотипных программ сложнее конкурировать, и на первое место выходит маркетинг, а не мастерство разработчика.

О деньгах: Symbian имеет ряд преимуществ перед другими ОС – это широкие возможности и распространение. Свой AppStore недавно организовал Samsung, Nokia анонсировала Ovi Store и предоставляет набор различных программ по взаимодействию с бизнесом и каналы продаж софта и контента.

Александр Бакунович

Опыт работы: J2ME, Windows Mobile 2003/2005/6.0, Android
Заслуги: Senior Developer
Любит: J2ME (MIDP 2.0+), Windows Mobile
Не любит: Symbian

Об Android: на Google Android легко перейти, если хорошо знаешь Java. У языка/платформы есть свои сложности и заковырки, но где их нет? Вообще, в плане заковырок у всех телефонов нормальное распределение, то есть, у всех количество багов примерно равно :). Google сумела сваять очень удобный SDK, создав условия для комфортной работы девелопера. Понятно, что все это еще довольно сырое и будет меняться, но уже сейчас тут много всего удобного. И над Google не висел хвост совместимости с предыдущими версиями платформы и архивом девайсов, поэтому API для Android чище и красивее.

О документации: документацию сделали почти идеально – подробная и доходчивая. Я бы оценил на 4 по пятибальной. Да и комьюнити уже сформировалось. За советом и помощью смело можно шагать на code.google.com/android/groups.html.

Об остальных: лично мне, наверное, больше всего нравится J2ME (MIDP 2.0+). Она наиболее продумана, хотя и со своими недостатками. Раздражает вопрос совместимости с разными моделями телефонов, когда у каждого производителя определенный набор API.

На втором месте – Windows Mobile. Эта ОС дает программисту больше возможностей по управлению железом телефона, но и знать нужно больше. Для J2ME и для WM есть отличные IDE (Eclipse и Visual Studio) и средства отладки. Очень много документации и различных how to. И там, и там нужен опыт, сразу мало что получается. Переход на эту платформу означает максимум сидения за дебагом и на форумах, минимум кодинга. Под WinMo помогает опыт программирования WinAPI. Symbian мне совсем не понравилась. Возможно, потому что знаком относительно поверхностно.

О деньгах: пока возможности продавать через Android Market нет, но обещают, что вот-вот будет. Я сейчас разрабатываю Augment Reality - игру для Android. Можно считать, что это хобби. Надеюсь, из него получится что-то достойное.

Андрей Образцов

Опыт работы: J2ME, Sony-Ericsson UIQ, Motorola, немного BlackBerry OS и были еще платформы от LG и Samsung
Заслуги: Sun Certified Mobile Application Developer
Любит: Sony Ericsson - 4ever!
Не любит: S40, S60 за большое количество недокументированных ограничений

О Java ME: участники Java Community Process во главе с Sun усиленно дорабатывают Java ME, но новые решения принимаются как-то очень медленно и несогласованно, поэтому производители делают свои ни с чем не совместимые API. Отсюда все проблемы и головная боль. Не существует стандартного API для обработки звонков или Instant Messaging, нет SIP-стека для VoIP, а стандартный набор UI-компонентов более чем скромен. Все это и многое другое у каждого производителя уникально, а кодеру приходится подстраиваться. Лучом света в темном царстве выглядит JavaFX Mobile, но это будущее. Возможно, далекое.

О кодинге: Java ME по синтаксису практически совпадает с "большой" Java. Отсутствует finalization, JNI для работы с библиотеками, написанными не на Java, и есть ряд других ограничений. Все классы, относящиеся к ME, сгруппированы внутри пакетов javax.microedition. Стандартные средства языка сгруппированы по тем же пакетам, что и в Java SE, только, конечно, в весьма сокращенном составе.

Большим недостатком является отсутствие инструментов для удобной отладки приложений на устройствах, ведь работающая на эмуляторе программа вовсе необязательно также без проблем будет исполняться на телефоне!

О совместимости: когда речь заходит о менее тривиальных вещах (например, progressive download, Bluetooth-чат с несколькими (более чем 1) устройствами), обнаруживается масса плохо документированных особенностей, приспособиться к которым предстоит непосредственно программисту. Кроме всего прочего, реальные устройства страдают всяческими ограничениями в ресурсах и прочими неприятными "сюрпризами".

О документации: все, что касается базовой платформы JTWI-устройств (Java Technology For Wireless Industry), – хорошо проработано и отлажено. Но дьявол кроется в деталях, и добравшемуся до тестирования приложения на телефоне вряд ли удастся обойтись без углубления в детали. Готовьтесь к часам корпения в debug’e.

О комьюнити: существует несколько больших девелоперских комьюнити, посвященных разработке мобильных приложений. В первую очередь, это ресурсы, поддерживаемые производителями телефонов. Лучшие - у Nokia, Sony Ericsson, Motorola. Кроме, естественно, спецификаций и guide-lines, доступных для скачивания, ответы на некоторые вопросы, связанные с особенностями имплементации той или иной функциональности, можно найти на форумах.

Об Android: в мобильном подразделении компании ScienceSoft (www.sciencesoft.com) , где я работаю, мы участвуем в проектах по всем направлениям развития мобильной Java: J2ME, Blackberry (которая очень близка к стандартам Sun), Android. Сейчас многие java-программисты с надеждой смотрят в сторону Android. Он таки открыл многие недоступные j2me-шникам API – это отличная новая ниша для роста доли рынка Java, пусть и не в русле политики Sun. А к J2ME-платформе в полной мере применимы слова генерала Де Голля: "Ее ждет великое будущее, и всегда будет ее ждать... ".

Взято с http://www.xakep.ru/post/48783/default.asp


Ведете ли вы блог?

Да
Нет
Планирую


Результаты опроса

Новостной блок