Перед тем как приступить к разработке приложений для мобильных устройств, в первую очередь следует определиться с платформой. Этот вопрос давно превратился в холивар между сторонниками устройств на платформах Android и iOS, на которых сегодня мы и сосредоточимся. Безусловно, существуют и другие платформы (Blackberry, Symbian, Windows Phone, WebOS и т.д.), но их доля на рынке слишком мала, чтобы заработок на приложениях, написанных для них, мог начать вас в перспективе действительно радовать. Исключение может составить платформа Windows Phone, так как Microsoft не жалеет средств на привлечение разработчиков и серьезно намерена продвигать мобильные устройства, базирующиеся на этой операционной системе.
Начнем, пожалуй, с iOS. Бытует мнение, что разработка под iOS проще, но на самом деле у обеих платформ достаточно своих плюсов и минусов. Первым делом, вам необходимо знать, что если вы решите сосредоточиться на iOS, то вам понадобится среда разработки xCode. Как ни странно, но xCode работает только под управлением Mac OS. Поэтому, первым делом придет приобретать компьютер Apple. Можно, конечно, развернуть виртуальную машину с Mac OS или установить Hackintosh, но работает все это не очень стабильно, а разбираться с проблемами Hackintosh во время непосредственной разработки приложения, думаю, является не самым лучшим вариантом.
Теперь, когда у нас есть Mac, необходимо установить xCode. Делается это очень просто, достаточно загрузить его из магазина приложений Mac App Store и вы будете полностью готовы к началу разработки приложения. Многих, наверное, удивит, что в качестве языка разработки Apple выбрала экзотический Objective-C. Но этому есть оправдание. Сложность C++ заставила Apple отказаться от него в пользу Objective-C, который проще в освоении. Правда, именно этот фактор и сыграл роль в ограничении аппаратных средств, так как Objective-C на данный момент используется только на платформах Mac OS и iOS.
После изучения основ Objective-C можно приступать непосредственно к разработке приложения. Вы будете приятно удивлены тем, как все просто и красиво тут продумано. Интерфейс приложения создается буквально за несколько минут с помощью очень удобного Interface Builder, который является частью среды разработки xCode. Хотя, как я и говорил, Objective-C является экзотическим языком, за долгое время существования платформы было создано огромное количество библиотек и компонентов пользовательского интерфейса на все случаи жизни. Почти все эти библиотеки выложены с открытым кодом на сервисе Github. Есть еще один очень полезный ресурс www.cocoacontrols.com, разработчики которого создали индекс почти всех контролов графического интерфейса с открытым кодом. Также приведу еще одну полезную ссылку (http://habrahabr.ru/post/144136), которая содержит в себе индекс очень полезных библиотек для разработчика под iOS. А ниже вы найдете адреса некоторых блогов, авторы которых, на мой взгляд, часто пишут интересные статьи о разработке под эту платформу:
www.icodeblog.com — множество примеров готовых решений;
www.cocoawithlove.com — последнее время не обновляется, но здесь сосредоточена достаточно большая база постов, посвященных языку Objective-C.
При работе над дизайном приложения следует учитывать, что мобильные устройства Apple (iPhone и iPad) делятся на две группы: с обычными дисплеями и дисплеями Retina. Но с этим разделением особых проблем не возникает, так как и тут все продумано и сделано с умом. Дисплеи Retina больше обычных ровно в 2 раза, как по ширине, так и по высоте. Поэтому, при разработке дизайна приложения следует рисовать для разрешения 640х960 пикселей, а затем уменьшать пропорционально до 320х480. Для программиста это решается очень просто. Необходимо в папке ресурсов хранить два варианта картинок с названиями image.png для обычных дисплеев и [email protected] для дисплеев Retina. В коде же достаточно использовать название картинки без указания параметра дисплея, например, [UIImage imageNamed:@»image.png»].”
При выполнении данного кода на устройстве, будет автоматически выбрана нужная картинка в зависимости от дисплея. То же самое происходит с Interface Builder, где достаточно лишь указать название картинки. Вообще, Interface Builder очень удобная утилита, если вы когда-нибудь работали с Delphi или Visual Studio, то будете очень рады тому, как просто собирается интерфейс приложения — обычным перетаскиванием с панели объектов на макет экрана приложения. Там же вы заметите дерево свойств выделенного объекта, в котором можно легко и просто менять все доступные свойства объекта, такие как высота, ширина, альфа и педдинги и т.д.
Желательно во время разработки приложения собрать уже некоторую аудиторию пользователей, которые и будут вашими тестерами, так как в одиночку выявить все баги разрабатываемого приложения будет сложно. Тестеры вам всегда помогут советами по улучшению юзабилити приложения или советами по добавлению интересных функций, о которых вы просто могли не подумать в процессе разработки. Любой тестер — это в конечном итоге ваш пользователь, поэтому лучше прислушиваться к их мнениям. Обычно поиск таких пользователей проводится на тематических форумах или на сайтах обзоров приложений, к которым можно отнести ресурс www.iphones.ru. Кстати, там вы можете разместить и историю разработки приложения, что вызовет дополнительный интерес к нему.
После создания, тестирования и запуска приложения в iOS App Store, наступает самый сложный момент — продвижение приложения в магазине. Из-за простоты разработки App Store заполнен очень качественными как в плане функционала, так и в плане графического интерфейса приложениями. Если вы хотите заработать, то нужно будет не просто хорошо поработать над функциями и над внешнем видом собственного приложения, но и составить правильную схему его продвижения социальных сетях, в блогах, которые публикуют обзоры, найти финансы на размещение баннеров на этих ресурсах, обязательно разместить на YouTube видео, в котором будет наглядно продемонстрирован функционал приложения, и тд. Написать приложение — это только 30% от всего дела. Бесплатно никто не станет писать про вас обзоры, если конечно вы не пробились в топ App Store, а попасть туда без какого-либо пиара практически невозможно. Получается замкнутый круг. Вам будет необходимо потратить деньги на продвижение приложения, чтобы получить вероятную прибыль от его продажи. Есть компании, которые занимаются продвижением приложений, например, основываясь на собственном опыте, очень рекомендую наладить сотрудничество с ресурсом www.ivanpr.com.
Следует также учитывать, что самыми покупаемыми категориями в App Store являются Games, Social Networking и LifeStyle. Одно время была очень популярна категория Productivity, но со временем она заполнилась самыми разнообразными ToDo-менеджерами и календарями, что сейчас очень сложно удивить пользователей чем-то новым. Но и здесь вы можете попытаться предложить принципиально новое решение, если, конечно, дизайн и функционал превзойдут имеющиеся образцы.
Теперь рассмотрим, как обстоят дела в мире Android. Для разработки под Android в Google выбрали язык программирования Java, который является одним из самых популярных языков в мире и имеет огромное количество библиотек с открытым кодом (намного больше, чем на Objective-C). Для разработки приложений под Android используются стандартные среды разработки на Java. Вам не понадобится приобретать специальное оборудование, и вы можете заниматься разработкой на своем компьютере в среде Windows, Mac или же Linux. Если вы новичок в Java, то советую посмотреть в сторону среды разработки Eclipse. Именно ее Google продвигает для разработки под Android.
После установки Eclipse вам понадобится ADT (Android Development Tool), который представляет собой плагин, заключающий все тонкости разработки под Android. Инструкции по установке ADT вы можете получить по ссылке http://developer.android.com/sdk/installing/installing-adt.html. Следующим шагом будет установка Android SDK, которая заключается в скачивании архива с http://developer.android.com/sdk/index.html. Процесс установки описан там же.
Теперь вы готовы к тому, чтобы приступить к написанию кода. Но перед тем, как начать разрабатывать приложение, следует учесть тот факт, что вас ждет немало подводных камней при программировании под Android. Первый — это сильная фрагментация устройств по версии операционной системы. Проблема заключается в том, что не все производители смартфонов своевременно обновляют прошивки на устройствах, а сама платформа Android очень стремительно развивается и с каждой новой версией операционной системы разработчики получают больше новых возможностей. Но их практически невозможно использовать, потому что последние версии Android установлены всего лишь на 1-3% всех устройств. Второй значительной проблемой стала фрагментация по размеру дисплеев устройств. В отличие от мобильных устройств Apple, устройства на базе Android могут выпускаться практически любым производителем и с любым размером дисплея, что серьезно усложняет процесс создания внешнего вида приложений. Правда, в Google это предусмотрели, и представили простое решение проблемы, о котором подробнее можно прочитать тут: http://developer.android.com/guide/practices/screens_support.html.
Вернемся к проблеме фрагментации по версии операционной системы. В Google попытались решить эту проблему, но получилось не очень хорошо, вернее, не до конца. Была выпущена библиотека совместимости для разработчиков, которая должна была содержать в себе возможности новых версий платформы, но при этом работала бы и на старых версиях. Конечно, это было бы отлично, но, увы, в этой библиотеки реализовано всего лишь 30% новых возможностей, что опять-таки подвергает разработчиков опасности при использовании новых возможностей. Со временем сообщество разработчиков под платформу Android выросло, и они начали сами решать проблемы, которые почему-то не решали в Google. Так, разработчик Jake Wharton разработал целую коллекцию библиотек, которые вместе с библиотекой от Google предоставляют 100% совместимость. Библиотеки доступны для скачивания на его странице в Github по ссылке https://github.com/JakeWharton.
Сложности же тестирования приложений из-за фрагментации можно решить не только покупкой огромного количества устройств. Вы можете настроить на компьютере столько эмуляторов, сколько вам нужно: с совершенно разной конфигурацией, с разным объемом оперативной памяти, с разными разрешениями и размерами дисплеев. Также с помощью эмулятора можно выбрать и любую версию операционной системы Android. Единственное, что вам понадобится, это мощный компьютер, так как эмуляторы Android достаточно требовательные к ресурсам. Можно воспользоваться сервисом http://testdroid.com для тестирования приложения на самых разных реальных гаджетах, но это достаточно дорогое удовольствие.
Советую также собрать, как и в случае с iOS, базу тестеров на таких сайтах как www.xda-developers.com, http://4pda.ru и других тематических форумах. Очень рекомендую подписаться на новостную ленту сайта androidweekly.net, которая сообщает обо всех новых библиотеках в мире Android. Также на этом ресурсе имеется индекс всех библиотек. Еще один очень полезный сайт — это www.androiduipatterns.com, где в открытом доступе размещены статьи о том, как создавать приложения с красивым графическим интерфейсом, а также выкладываются ссылки на новые библиотеки контролов. Ниже приведу ссылки еще на пару интересных блогов по теме разработки под Android:
http://blog.stylingandroid.com – блог, посвященный тому, как кастомизировать стандартные элементы графического интерфейса;
www.grokkingandroid.com — блог с интересными постами-уроками разных возможностей платформы.
В отличие от iOS App Store в Android Market не так много хороших и качественных приложений, что упрощает процесс продвижения собственного приложения. Обязательно создайте ветки приложения на форуме XDA для англоязычной публики и ветку на 4pda для русскоязычной части пользователей. Также можете разослать пресс-релизы приложения и заказать обзоры приложений на сайтах droidnews.ru и droider.ru. Этого будет вполне достаточно для удачного старта и заработка в Android Market. В Play Store очень популярна категория Tools, так как API Android позволяет делать с устройством практически все, что пожелаете. Поэтому большая часть успеха зависит от вашей фантазии.
Подведя итоги, следует отметить, что разрабатывать приложения под iOS легче, но сложнее продвигать их в топы магазина. Под Android же все иначе. Создать хорошее приложение сложно, но если у вас получилось, то будьте уверены, что его обязательно купят.
В заключение вкратце рассмотрим средства разработки и наиболее часто встречаемые проблемы при создании приложений под Blackberry и Windows Phone. Разработка под Blackberry, как и в случае с Android, ведется на языке Java. Единственная нормально работающая среда разработки — это Eclipse с Blackberry-плагином, который можно скачать по ссылке https://developer.blackberry.com/java/download/eclipse. Есть также Blackberry IDE, но ее использовать я не советую, так как она напоминает больше текстовый редактор с подсветкой кода и средством сборки проекта. Если все-таки вы решите писать приложения под Blackberry, то учтите, что там фрагментация устройств еще хуже, чем в Android, а средств унификации практически нет. В каждом случае вам придется писать приложение отдельно, так как устройства на платформе Blackberry могут быть как с сенсорным дисплеем, так и с обычной qwerty клавиатурой, а может быть и то и другое вместе. Вычислять размеры дисплеев и адптировать размер картинок придется вручную, так как никаких готовых решений для этого не существует. Еще одна проблема заключается в том, что нельзя в зависимости от версии платформы использовать разный код, потому что все классы подгружаются не во время выполнения, как это сделано в Android («ленивая загрузка»), а в момент запуска. Поэтому вам придется собрать несколько бандлов приложения, если вы планируете использовать новые возможности, но при этом нужно, чтобы приложение работало на старых версиях платформы.
Что же касается разработки под Windows Phone, то тут в Microsoft постарались и представили очень хорошие и продуманные возможности. Разработка ведется на языке C# и используется стандартная для этого языка среда разработки Visual Studio. Ее можно скачать бесплатно для разработки под Windows Phone полным комплектом. Вообще Visual Studio славится своими редакторами пользовательского интерфейса. К тому же, они очень похожи с Xcode Interface Builder, поэтому приложения должны получаться довольно красивыми. Для дизайнеров есть специальная программа Blend, которая поддерживает проекты Windows Phone, созданные в Visual Studio, что создает возможность дизайнерам и разработчикам работать над проектами одновременно без каких-либо сложностей. Создавать приложения под Windows Phone достаточно просто, учитывая то, как Microsoft адаптировала средство разработки .Net framework для мобильных устройств, которое и так славится своей скоростью и простотой. Visual Studio Express Edition for Windows Phone можно скачать по ссылке www.microsoft.com/visualstudio/rus/products/visual-studio-express-for-windows-phone.
Меджид Джабраилов (http://droidstyle.aaplab.com)