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-платформе в полной мере применимы слова генерала Де Голля: "Ее ждет
великое будущее, и всегда будет ее ждать... ".
|