Как-то вечером мне захотелось написать статью о разработке приложений для мобильных устройств, но тут Остапа понесло...
Так же как киборги в свое время заполонили всю планету, сейчас мобильные девайсы заполоняют нашу жизнь. А что это означает для нас, гиков? Новые возможности даже обсуждать не стоит — это вкусные плоды с дерева под названием “гаджет”. А раз есть плоды и толпы страждущих, то почему бы не начать их выращивать (я про плоды, выращивать же страждущих умеет лишь Apple )? И тот вырастит больше и вкуснее, у кого инструмент лучше. Какие есть подходы в мобильном приложениеводстве? Как минимум можно использовать старую проверенную web-платформу и заняться написанием мобильных web-приложений, либо освоить молодую отрасль разработки под iOS и Android. Выбор, не простой, и чаши весов качались крайне долго в моей голове, пока на сторону разработки приложений под iOS (потенциально и под Android) не пал один весомый аргумент, о котором сегодня и пойдет речь. Но для начала краткий экскурс в технологии и их возможности.
Что нам стоит инструмент освоить?
Как минимум нужно с чего-то начинать. Это могут быть либо книги, либо туториалы. В области мобильных web-приложений все просто: о без года совершеннолетнем JavaScript (прим. для танкистов: он в 1995 году появился), его сестре погодоке CSS и старшем брате HTML 1991 года рождения написано книг на терабайт, а может и более. Одним словом, сфера развитая, готового материала в ней много, как и специалистов (прим. автора: и тех кто считает себя таковыми), и процесс обучения не должен вызвать особых трудностей. Молодые бойцы могут начать тренироваться на кошках, разрабатывая обычные десктопные web-приложения, а затем планомерно перейти на мобильные платформы. Единственное, что для вас изменится — вы будете использовать jQuery Mobile с вкраплениями jQTouch вместо классического JQuery. В довесок вы получите GEO-API, события поворота устройства (увы, полноценного доступа к гироскопам и акселерометрам вам не дадут, так что написать аналог Multiponk у вас не выйдет) и довольно убогий мультитач. По вышеупомянутым “довескам”, кстати сказать, материал придется собирать в сети по крупицам, книг или руководств в стиле “Пишем современное работающее приложение для mobile web с поддержкой GEO, Rotation и Multitouch” вы скорее всего не найдете (или я плохо искал?).
Хорошо, а как дело обстоит с нативными платформами? Т.к. нас интересует лишь рынок, то отвернем головы от MeeGo, Symbian, RIM. И вот мы видим симпотяжку робота четырех лет от роду и вкусненькое яблоко, появившееся на свет годом ранее. Из хороших моментов можно отметить, что за годы существования было написано много фундаментальных изданий как для iOS, так и для Android. Писать для Android несколько проще: в качестве язык SDK — Java, взнос за Android Market составляет 25 енотов единоразово, а SDK доступен почти под любую вменяемую OS. С iOS дела обстоят несколько сложнее, т.к. денежных вливаний будет много: вначале вам придется купить Mac, после того, как вам надоест возиться с хакинтошами, затем вы выложите около сотни енотов за аккаунт разработчика в год, без него, кстати говоря, вы не получите доступ к полной документации SDK и видео с WWDC (качаешь с торрентов?! — типун тебе в карму). За все эти денежно/временные вложения вы получите полноценную поддержку GEO-API, полноценный гироскоп (либо акселерометр), микрофон, камеру, доступ к фото галерее, хранилище данных, мультитач. Выбор плюшек явно богаче чем при web-разработке.
Быстрее, выше, сильнее
Дьявол в деталях. А в мобильных устройствах, на мой взгляд, самый большой дьявол скрыт в скорости отклика приложения на действия пользователя. И ни один браузер не сможет работать быстрее, чем нативное приложение. Это может показаться несущественно: разница отклика на открытие вкладки, или выбора пункта меню может исчисляться в миллисекундах, но на мобильных устройствах она будет плавнее и быстрее на десяток миллисекунд, и это ощущение не будет вас покидать. Откройте m.youtube.com (а ведь это пожалуй одно из лучших web-приложений для мобильных устройств) и походите по сайту. Зайдите во вкладку категорий, поверните ваш гаджет. А теперь откройте встроенное приложение YouTube. И сравните. Детали незначительны, но с нативным приложением работать приятнее, чем с web-версией — плавность и скорость берут свое.
Эталоны графического дизайна
Пожалуй, среди пользователей можно выделить две категории людей: одни кричат “Мы хотим свободы самовыражения в том, что мы создаем”, а другая категория просто делает удобные приложения выдержанные в едином стиле. С такими приложениями легче разобраться, понять, как они работают и какие возможности предоставляют. В web-приложениях же царит буйство красок и форм. Возможно необычный дизайн это и здорово, но чтобы его оценил пользователь, он должен с ним хоть немного поработать, а не закрыть вкладку со словами “не понимаю, зачем оно мне?”. В нативных приложениях платформа диктует принципы построения дизайна — проще сделать классический дизайн, чем придумывать что-то свое. Web же всегда отличался разнообразием подходов к построению пользовательского интерфейса.
Аргумент
“Gillette — рекламируем станки, а подымаем на лезвиях”. Помимо прямого зарабатывания денег на мобильных приложениях (дядь, купи приложение всего за 1 вечный и зеленый!), сами App-маркеты (AppStore, Android Market) являются потрясающим маркетинговым инструментом! Вы можете использовать мобильное приложение для продажи вашего сервиса.
Сделав мобильное приложение под Android или iOS, вы запускаете его в уже существующую сеть распространения товаров в категорию FREE. И так же как в обычных супермаркетах, люди пришедшие за молоком могут обратить внимание на йогурт-новинку, так и в AppStore человек пришедший за текстовым редактором может заинтересоваться вашим приложением “Блокнотус”. Но ведь у вас, как у разработчика “блокнотуса” истинная цель привлечь пользователей к вашему сервису и не дать слонам голодать ;-)
Планшеты и прочие мобильные устройства вошли в моду. Люди регулярно ищут новинки в AppStore и Android Market для своих карманных зверюшек. Вероятность того, что они наткнутся на ваше приложение — очень велика. А т.к. оно быстро работает, имеет каноническую графику и простой интерфейс управления, то пользователь сможет понять его и заинтересоваться им. Овладев же его интересом вы овладеваете потенциальным заказчиком услуг вашего интернет-сервиса.P.S.0: это первая статья из серии сравнения процесса разработки мобильных native и web приложений. Несмотря на то, что я убедился (я надеюсь, и вы тоже) в доминировании native-платформы, иногда встречаются задачи, для которых web — это быстрое и дешевое решение, от которого лишь требуется принимать пару строк текста от пользователя и возвращать результат (даю волю вашей фантазии!).P.S.1: интересный факт, ранее Apple активно продвигал Apple WebApps — каталог web-приложений для iOS. Но видимо что-то пошло не так и каталоги прекратили пополняться.P.S._the_last: побудили меня на творчество две статьи: раз и два.