В "Компьютерных вестях" мы не раз рассуждали о том, под какую мобильную платформу проще всего писать приложения. Уже успели обсудить гигантов вроде iOS, Android, BlackBerry OS и Symbian. А сейчас поговорим о других платформах, присутствующих на рынке.
Лирическое вступление
Сначала, если позволите, краткое отступление на тему всех рассмотренных нами платформ.
Как вы наверняка заметили, большая часть из них основана на собственном стеке технологий - за исключением разве что Andorid и BlackBerry OS, которые работают на основе Java. Пожалуй, можно говорить о том, что сегодня основную головную боль для разработчиков мобильного софта представляет именно этот зоопарк технологий, а не сами особенности платформ. Именно технологии и языки представляют наибольшую сложность, и даже в случае с Java для Andorid и BlackBerry OS всё не так просто из-за различия во внутренней архитектуре платформ и библиотек API, предлагаемых создателями этих операционных систем разработчикам мобильного софта под них.
Конечно, такие технологии, как MonoTouch, позволяющие разрабатывать ПО для мобильных платформ с помощью "неродных" для них инструментов, в некоторой степени облегчают жизнь разработчикам, но до настоящей кросс-платформенности пока что далеко, поскольку все они ещё находятся, если можно так сказать, в зачаточном состоянии, что, в общем-то, вполне понятно: поскольку и сам рынок мобильных устройств "взорвался" сравнительно недавно, сторонние инструменты разработки (т.е. те, которые предлагаются не самими производителями этих платформ, а другими компаниями) просто не успевают за самими платформами - в отличие от того же сегмента десктопов, где всё уже давным-давно понятно. Конечно, сообразуясь с потребностями рынка и марксовским "спрос рождает предложение", вендоры девелоперских тулзов однозначно подтянутся, но для этого нужно время. Пока же поставщикам платформ неинтересно и невыгодно делать какие бы то ни было шаги в сторону поддержки кросс-платформенности, поэтому мы и наблюдаем то, что наблюдаем сейчас.
Windows Mobile
Операционная система Windows Mobile сегодня представлена на рынке мобильных устройств более чем широко, начиная от самых дешевых смартфонов и заканчивая достаточно солидными и дорогими коммуникаторами. Но её доля постоянно сокращается под давлением более успешных конкурентов (прежде всего, конечно, "фруктов" и "роботов"). Тем не менее, Windows Mobile всё еще живее всех живых и уж точно живее многих своих конкурентов, как достаточно давних, так и сравнительно свежих.
В чем главное преимущество Windows Mobile, с точки зрения разработчика (то есть, в чисто техническом разрезе)? Прежде всего, это всё-таки Windows. Это очень хорошо - с той точки зрения, что и методы разработки под неё очень хорошо известны, и можно пользоваться достаточно большим объёмом кода, который разработан для "старших" настольных и даже в некоторых случаях и серверных версий Windows. Опять-таки, и распространенность платформы играет на руку разработчику: приложений под неё пишется достаточно много, соответственно, если вдруг возникает какой-то вопрос, можно и спросить у других, и почитать FAQ, то есть без помощи и поддержки разработчик, пишущий под Windows Mobile, вряд ли рискует остаться.
Писать под Windows Mobile можно с помощью Microsoft .NET Compact Framework. И, пожалуй, из всех способов разработки под эту платформу именно .NET Compact Framework выглядит наиболее привлекательно. Как пишут на сайте Microsoft, "Microsoft .NET Compact Framework - это среда, не зависящая от оборудования, поддерживающая создание и выполнение управляемых приложений на вычислительных устройствах, ресурсы которых ограничены". По сути дела, Compact Framework - это мобильная версия "большого" .NET Framework'а, оптимизированная для работы в условиях с ограниченными ресурсами и обладающая несколько урезанной, по сравнению с "нормальным" фреймворком, функциональностью, но при этом вполне отвечающая его общей архитектуре и идеологии.
Конечно, сторонники открытых технологий могут сказать, что Java в случае Android более интересна и приемлема, но, в принципе, по удобству и по скорости разработки приложений вряд ли можно говорить о существенных различиях в этих параметрах для данных платформ. Поскольку кода на C# и Managed C++ написано в мире тоже немало, то и его повторное использование при создании приложений на Microsoft .NET Compact Framework выглядит весьма привлекательно. Нужно отметить, что не для всех версий платформы Windows Mobile можно писать код с использованием Microsoft .NET Compact Framework, полный список этих версий можно увидеть здесь: msdn.microsoft.com/ru-ru/library/ms172550%28VS.90%29.aspx. Справедливости ради стоит отметить, что все более-менее интересные, с точки зрения создания новых приложений, версии Windows Mobile (т.е. достаточно свежие) поддерживаются Compact Framework'ом.
Но есть, конечно, и другие варианты программирования под Windows Mobile. Можно писать на чистом, то есть не "дотнетовском", C++. Вполне понятно, что этот подход к разработке позволяет делать более компактные и быстрые приложения (при должном умении, конечно), но требует соответствующих усилий от создающих их программистов. Есть и более экзотические альтернативы: Lazarus, Lexico, NS Basic and Basic4ppc. Часть из них позволяет создавать в конечном итоге родной платформенный бинарный код, часть использует свои надстройки над Compact Framework'ом. Но, в общем и целом, как видите, выбор есть.
Что касается среды разработки, то это, конечно же, раз речь идет о Microsoft, "по дефолту" Visual Studio (но, как уже было написано чуть выше, для желающих возможны вариации). Visual Studio - среда популярная, многим хорошо знакомая, стабильная и достаточно удобная, так что это всё только плюс для Windows Mobile. Русскоязычное сообщество разработчиков у данной платформы достаточно большое, литературы на русском тоже хватает, так что освоить её будет несложно и тем, кто с английским на "вы".
В общем, казалось бы, одни только плюсы. Но есть и минус. Очень и очень заметный. Windows Mobile, как ни крути, уже старая и, можно сказать, уходящая с рынка программная платформа. На смену ей готовится Windows Phone 7 - хотя почему, собственно, готовится? Уже вполне подготовлена. Конечно, стек технологий и, в целом, сложность разработки не слишком уж сильно отличаются, с точки зрения программиста, от оных для Windows Mobile, но, тем не менее, думаю, что эта система вполне заслуживает отдельного обсуждения в рамках данной статьи, тем более, что и отличия всё-таки тоже присутствуют.
Windows Phone 7
Причина выхода радикально новой ОС для мобильных устройств от Microsoft предельно проста: Windows Mobile теряет долю рынка, а Microsoft вовсе не хочется упускать свой кусок такого лакомого пирога, как рынок мобильных устройств. Интерфейс Windows Phone 7 достаточно серьезно отличается от интерфейса "старушки" Windows Mobile, уже не вызывающей былого восторга у пользователей, но отличия не только в нем. Отечественным пользователям вряд ли пригодится рекламируемая корпорацией интеграция с её фирменными сервисами, такими, как Microsoft Xbox Live и Zune, а вот на Западе эти возможности Windows Phone 7 наверняка помогут Microsoft продвинуть если не саму систему, то хотя бы сервисы.
Ну а в общем, конечно, для разработчиков всё достаточно предсказуемо. Новая система ориентирует их на использование новых технологий в стеке Microsoft. Разрабатывать приложения под неё нужно будет на основе Silverlight, XNA и .NET Compact Framework 4. При этом версия Silverlight для Windows Phone 7 будет чем-то средним между "сильверлайтом" третьей и четвертой версий. Основными инструментами разработки становятся Microsoft's Visual Studio 2010 и Expression Blend. Хорошей новостью для многих разработчиков должен стать тот факт, что под эту операционную систему Microsoft разрешит писать уже не только на C#, но ещё и на Visual Basic .NET, который раньше был "за бортом" мобильной разработки. Также хорошо и то, что Microsoft постаралась сделать портирование игр с Xbox Live Arcade максимально простым для разработчиков программного обеспечения.
Но при всем при этом представленные Microsoft одновременно с выходом самой новой платформы API для неё отличались некоторой неполнотой, что, конечно, вызвало нарекания у разработчиков. Например, до сих пор недоступны API для работы с Personal Information Manager (PIM), которые жизненно необходимы разработчикам мобильных календарей. Но, в общем-то, думаю, что эти "косяки" Microsoft достаточно оперативно устранит, потому что они реально будут мешать рыночному продвижению новой операционной системы.
В общем-то, пока что основной минус Windows Phone 7 состоит даже не в этих технологических нюансах, а в новизне платформы. Пока для нее не появится достаточного количества устройств, писать приложения под эту платформу будет не очень выгодно. С другой стороны, всё-таки Microsoft - это Microsoft, и вряд ли новая платформа от неё будет прозябать в безвестности.
Вадим СТАНКЕВИЧ
Горячие темы