Компания
1 084,89
рейтинг
8 мая 2013 в 16:57

Разработка → Разработка мобильных приложений: с чего начать



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

Тенденции


Чем пользуются владельцы мобильных телефонов?

  • Больше половины (53%) используют скачанные приложения
  • Приблизительно столько же (52%) через мобильный телефон заходят на сайты
  • Более трети людей (38%) используют социальные сети со своего мобильного телефона
  • Чуть меньше людей играют в игры (34%)
  • Примерно три четверти пользователей общаются через мобильные телефоны (помимо звонков): это могут быть SMS, приложение социальной сети, мессенджер


Статистика


Что покупают



За 2012 год в РФ продано порядка 12,6 миллионов смартфонов: Россия считается одной из быстроразвивающихся в этом плане стран.



Если мы посмотрим на статистику продаж смартфонов по операционным системам, мы увидим следующее:
  • 62% продаваемых смартфонов – это Android-устройства;
  • На втором месте Symbian — 15% рынка;
  • Оставшуюся долю делят bada, iOS и Windows Phone (если взять этот график только по Москве, то распределение, наверное, будет смещаться в сторону увеличения доли продукции Apple)




Если взглянуть на такой же график по всему миру, то увидим, что и тут Android в авангарде с ¾ рынка.

За второй квартал 2012 года по всему миру было продано 104 миллиона телефонов Android — как население довольно крупной страны. Но нас как мобильных разработчиков интересует не только наличие смартфона, но и то, как с ним работают. Существенная доля обладателей устройств на Android пользуется ими как обычными телефонами: SMS, звонки — и все. Они не активируют устройство в Google Play, не скачивают приложения.

Чем пользуются

Не все люди обзавелись телефонами в 2012 году, поэтому реальное распределение сил среди мобильных операционных систем демонстрирует наша внутренняя статистика. В эту статистику входят Россия и страны СНГ: Украина, Белоруссия, Казахстан, Узбекистан.



  • 73,5% – это Java-телефоны
  • Android-устройства находятся на втором месте с 11,6%
  • Наследие компании Nokia, Symbian, совсем немного отстает от Android с 11%
  • Яблочной продукцией обладают 3,5% пользователей рунета
  • Самые внимательные увидят на диаграмме Microsoft с Windows Phone ( менее 1%)




Установка приложений


При выборе платформы, под которую будет разрабатываться приложение, важно знать статистику по уже существующим приложениям. Графики исследовательской компании App Annie от сентября 2012 года показывают, как растут два конкурирующих магазина Apple и Google.




По количеству скачиваний на первом месте Google Play: больше устройств, больше скачиваний, больше трафика и рост при этом +66% по сравнению с январем 2012 года. Рост iOS оказался в два раза меньше, порядка 30%. Но главный график – какую выручку приносят пользователи. И здесь ситуация в корне иная. Проще зарабатывать на iOS, но деньги есть и в Google Play, если уметь их забирать.

Типы мобильных приложений


На практике можно разделить приложения для мобильных устройств на три типа.

Мобильные сайты, веб-приложения



Это самый распространенный тип приложений для мобильных устройств. Современные смартфоны в состоянии отобразить обычный сайт. Им доступно все то, что мы привыкли видеть в десктопных приложениях — поддержка HTML5 делает свое дело. Помните, что веб-приложения отлично подходят для стартапа: именно они позволяют получить большой результат за маленькие деньги и за небольшой срок. Еще один плюс мобильного сайта по сравнению с другими мобильными приложениями – это кроссплатформенность. Однако есть и минус, притом весомый: с ними достаточно сложно заработать.

Гибридные приложения



При таком подходе вы получаете доступ ко всем плюсам API операционной системы: приложение обрастает push-уведомлениями и другими приятными плюшками, кроме того, теперь ваш продукт можно размещать в сторах. При этом основной контент все еще представляет собой платформонезависимую страничку с версткой, размещенную на сервере. Это позволяет вносить косметические изменения в продукт без выпуска новой версии: достаточно залить изменения на сервер. Гибридные приложения – отличное решение для тех, кто начинает бизнес или хочет проверить свою идею, показать ее инвестору, друзьям.

Нативные приложения



Этот вид приложений самый ресурсоемкий, но вместе с этим он позволяет по максимуму использовать возможности, предлагаемые каждой конкретной операционной системой. Как следствие, нативные приложения выигрывают как по функционалу, так и по скорости работы у других типов мобильных приложений. Именно к такому подходу сейчас приходят те компании, которые делали комбинированные приложения. Например, Facebook начинала с комбинированного приложения: нативные контролы (переключатели, вкладки и так далее) и веб-страница в качестве контента. Несмотря на то, что это неплохое решение, проблемы с производительностью приводят к тому, что разработчики отходят от комбинации с вебом.

Статистика


Приведу статистику скачиваний на примере наших мессенджеров.

Во-первых, у нас есть приложение ICQ, которое постоянно развивается: среди последних изменений стоит отметить аудиозвонки. Второй мессенджер Mail.Ru Group – Агент. В Агенте реализован примерно тот же функционал, и, хотя у него была немного другая история развития, мы выпускаем версии практически под все платформы и его можно найти в любом сторе.

Основная разница между двумя этими приложениями – это их аудитория. ICQ – это международный продукт. Программа скачивается не только в России, им активно пользуются жители Европы, Латинской Америки. Агент же изначально делался в России и для русскоязычных пользователей.

Тем интереснее сравнить статистику скачиваний из магазинов.




Большая часть 62% иностранной аудитории идет в Google Play. Примерно 1/5 идет в AppStore, 14% — в Ovi Store. И уже оставшиеся 5% делят магазины для платформ Windows Phone (4%) и Samsung Bada (1%). С Агентом ситуация в корне другая: доли Google Play и Ovi примерно одинаковые. Ну а 10% AppStore наглядно демонстрируют любовь к «яблочной» продукции в нашей стране.

Процесс создания мобильного приложения


Итак, перейдем к самому вкусному: процессу разработки мобильного приложения.

User Story



Прежде всего, необходимо определить, что и для кого мы пишем. Ответы на эти вопросы оформляются в User Story. На картинке вы можете посмотреть на реальный тикет в нашем трекере. Он описывает, как существующий пользователь ICQ может войти в приложение, и какие проблемы он может встретить. На этом этапе важно проработать все возможные сценарии, чтобы не было неприятных сюрпризов на более поздних этапах разработки.

Важно понимать, что за каждым пунктом в вашем to-do листе скрывается огромный айсберг функционала. Старайтесь фрагментировать и конкретизировать задачи. Крупные хотелки лучше всего разделить на несколько этапов (релизов в стор). Однако это тема отдельной дискусии, вернемся к этапам создания приложения.

Проектирование и дизайн

После составления User Story начинается проектирование и разработка дизайна.




На этом этапе мы используем прототипы, которые мы вешаем на доску и стрелочками показываем, как будет происходит навигация.

При разработке дизайна обязательно используются гайдлайны.

Гайдлайн в общем понимании – это документ, который выпускает компания, и по которому дизайнеры и разработчики понимают принцип построения взаимодействия приложения с пользователем. Условно говоря, для iOS кнопки надо делать круглыми, а для Windows Phone – квадратными. Однако мы используем и внутренние гайдлайны для разработчиков. Таким образом результат работы дизайнера чаще всего состоит из макетов, гайдлайнов и нарезки графики.

Макеты лучше всего подавать «перелинкованными», например с помощью ProtoTypr, чтобы была понятна логика переходов. Гайдлайны содержат в себе информацию об отступах, размерах, визуальных эффектах, механике анимации и пр. Этот этап можно пропустить, если в вашем проекте один дизайнер и один разработчик, сидящие рядом друг с другом. Третья часть результата — нарезка графики — должна содержать минимум необходимых графических ресурсов (заботимся о весе приложения), иметь версии для разных разрешений экранов. Чаще всего мы рисуем для ретины и xhdpi-экранов. Далее идет подготовка для неретины и mdpi автоматизированными средствами (если допустимо их использование). Чаще всего руками приходится готовить hdpi-ресурсы.

Передача в разработку. Обсуждение и необходимые правки описания



После получения макетов, гайдлайна и нарезки, начинается работа разработчика. Мы передаем в разработку все то, что придумали, и ожидаем ранний результат. Это не значит, что работа над архитектурой и пользовательским интерфейсом закончена. Иногда у разработчиков появляются интересные идеи, которые вносят коррективы в изначальный план. Когда разработка завершена, наступает стадия тестирования.

Тестирование

Существует немалое количество способов протестировать приложение.
В мобильной разработке тестировщик – это человек, вокруг которого одни телефоны. У нас есть огромный шкаф, в котором лежат как старые телефоны, так и самые свежие новинки. Внутри мы стараемся тестировать по тест-кейсам. Если внедряется новая фича, по ее описанию составляется тест-план.
Существуют сервисы, помогающие в тестировании. Мы используем HockeyApp – приложение, позволяющее раздавать наш продукт бета-тестерам. Мы пишем в социальных сетях: «Ребята, у нас новое крутое приложение. Кто хочет попробовать?» Желающие получают билд, пользуются приложением, а сервис собирает статистику, составляет креш-репорт и отправляет все это нам.
Также есть сервисы, позволяющие протестировать приложение на разных операционных системах — например, все Android-прошивки версии 2.1 или 2.3. Вы отдаете приложение, сервис скриншотит весь путь, который вы задали, присылает картинки вам на почту, и вы проверяете, все ли в порядке.

Мониторинг

Итак, вы разработали, протестировали приложение, залили его в стор. Для отслеживания статистики скачиваний можно использовать сервис Distimo. Он показывает статистику по пользователям, которые приходят в стор, чтобы скачать приложения, и агрегирует комментарии.

Важно понимать, что люди более склонны оставлять негативные комментарии. Если у человека все хорошо, он чаще всего просто пользуется приложением, не комментируя. При стабильной работе наших приложений мы получаем 40-50 комментариев ежедневно. В день ошибки количество записей может доходить до 400 на одной платформе. Поэтому имейте в виду, что комментарии – это не полная оценка вашей работы, скорее еще один баг-трекер.

Изменить ситуацию может довольно распространенных «хак» — окно Rate Us. С предложением оставить положительный комментарий в сторе, а в случае проблем написать разработчику. Эффект достаточно сильный, главное — правильно продумать алгоритм показывания диалога юзеру.

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

Еще один интересный мониторинговый сервис – Flurry. Он помогает собирать клиентскую статистику. Flurry предоставляет отчет о том, что делает пользователь в вашем приложении: сколько раз он нажал на кнопку, сколько раз возвращался в приложение и более общие параметры — аудитория, география, пол, возраст и пр.

В некоторых мобильных продуктах мы также используем подсчет клиентской статистики с помощью Google Analytics. Разницы при сравнении с Flurry нет практически никакой. Минусы в скорости работы и обработки логов есть в обоих случаях, однако, если вы привыкли работать с гугловским интерфейсом, можете использовать этот инструмент.

Несмотря на большое количество сторонних сервисов, у нас есть собственная статистика. Какими бы хорошими не были внешние источники, их нужно проверять. Мы способны сами оценивать статистику, но для этого необходимо строить инфраструктуру для генерации отчетов, еженедельной отправки отчетов по email и других вещей, упрощающих жизнь. Поэтому нам проще использовать такие сервисы, как Flurry и Distimo, а к внутренним логам обращаться при возникновении вопросов. Наша практика показывает, что такой подход оправдан: периодически наши данные и данные сервисов несколько разнятся. Если вы склонны проверять статистику, используйте разные источники.

Специфика


Что нужно помнить?

  • На каждой новой платформе пользователь ожидает увидеть богатое приложение. Он рассуждает следующим образом: «Я сидел на плохом Java-телефоне, при этом мог пользоваться аськой. Я купил новый телефон, захожу в Marketplace, а там нет ICQ? Вы чем там занимаетесь?» Пользователь не принимает в расчет того, что вам приходится делать приложение с нуля. Новая платформа – это новые девайсы, новая документация, новые ресурсы.
  • Чем популярнее платформа, тем больше у вас конкурентов. На данный момент существует два стора, на примере которых это отлично видно: AppStore и Google Play. Если у вас есть идея приложения, которое легко монетизируется или просто получит много скачиваний, вбейте ключевые слова в поиске и скорее всего вы обнаружите, что такое приложение существует. Чем популярнее платформа, тем больше конкурентов. В таких случаях надо тщательно изучать аналоги, смотреть статистику, пытаться понять, по каким параметрам существующие решения можно превзойти.
  • Важно понимать, как пользователи выбирают приложения. Изначально человек не собирается покупать конкретное приложение, он просто смотрит список. Например, по запросу «бесплатная музыка». Иконка и первые две строчки описания – это то, что человек видит и оценивает в первую очередь. Если иконка приличная, можно покупать; соответственно, плохая иконка уменьшает количество скачиваний.
  • Очень важно попасть в топ магазина приложений. Попасть в топ стора – очень хорошо, закрепиться там – залог успеха. Зачем это нужно? Когда пользователь хочет что-нибудь скачать, он заходит в чарт и видит, какое приложение сейчас на первом месте по числу скачиваний. Очень важно туда попасть, потому что это своего рода замкнутый круг. Приложение попадает в чарт, его видят пользователи, они его скачивают, оно снова попадает на первое место, и дальше итерации продолжаются. Поэтому всеми силами добывайте скачки и рейтинг: просите мам, бабушек, соседей ставить приложению пятерки. Стоит сказать, что на рынке полно решений для гарантированного вывода программы в топ. Однако органических пользователей это приносит мало, что не мешает продолжать эксперименты.
  • Помните, что время публикации может доходить до нескольких недель. Допустим, вы разработали и протестировали приложение, обзвонили всех блоггеров или СМИ и сказали: «У меня новое приложение, приходите на пресс-конференцию». Вы его отправляете в AppStore и вынуждены ждать семь рабочих дней в России. В этом случае Google Play – рай для оперативных обновлений, где публикация занимает несколько часов.
  • Фрагментация операционной системы. Если вы разрабатываете приложения под Android, учитывайте фрагментацию и существование целого зоопарка устройств. Это сказывается на времени разработки на всех этапах: проектирование, дизайн, разработка и особенно тестирование.
  • В сторе невозможно общаться с пользователями. Например, пользователь пишет, что у него в ICQ не ходят сообщения. Он недоволен и выражается очень красочно, но не очень информативно. У нас нет возможности с ним связаться и узнать о проблеме подробнее. Все, что мы можем сделать – залезть в мониторинг и посмотреть, ходят ли у нас сообщения. Может быть, его заблочил антиспам.
  • Сейчас некоторые сторы обзаводятся админкой, в которой можно задать вопросы пользователю, выяснить его контактные данные, посмотреть, в каких странах скачивают ваше приложение, но пока ситуация не слишком улучшилась. Стоит отметить, что Google Play продолжает добавлять эту возможность некоторым разработчикам, например нашей компании она доступна.
  • Время на тестирование. Существует несколько способов протестировать приложение. Можно иметь тестеров в штате – с тест-кейсами, тест-планами, которые они обязательно проходят. Кроме того, существует сервис для тестирования – вы платите за найденные баги. Вы выкладываете приложение, его тестируют 20 тысяч человек. В этом подходе, конечно, есть плюсы и минусы.
  • Кадры в мобильной индустрии решают все. Хороших мобильных разработчиков сложно найти даже крупным компаниям, таким как Mail.Ru Group, Яндекс или Google. Именно поэтому мы ведем работу со стажерами — потому что иногда легче взять толкового студента и обучить его.


Заключение


Я постарался рассказать вам о базовых особенностях и подводных камнях мобильной разработки, которые встречались нам на нашем пути. Надеюсь, пост оказалась вам полезным. Если у вас остались вопросы по теме, или вы знаете что-то, что может быть полезно нам, давайте обсудим это в комментариях.
Автор: @rukostya

Комментарии (30)

  • 0
    Первый график с пирогами — это доля смартфонов по отношению к чему? К телефонам? К продажам недвижимости? К расходам на еду?
    • +3
      Наверное доля смартфонов среди телефонов.
    • 0
      Первый график — доля продаж от всех мобильных устройств. Поправлю график, спасибо.
  • 0
    Как скоро продолжение?
    • 0
      Хороший вопрос. Продолжение сильно зависит, куда глубже копнуть и показать специфику. Из рассказанного какое направление более интересно?
      • 0
        Разработка самого интерфейса. На примере того же самого ICQ: как лучше устроить стартовую страницу при первом запуске приложения (когда пользователь не авторизован) и если уже пользуется приложением? Как лучше расположить элементы на странице настроек, чтобы пользователь не испугался, но в тоже самое время мог настроить почти всё?
        • +1
          Принято, продолжение будет связано с вопросами проектирования и дизайна мобильных приложений.
      • 0
        Дайте больше уникальной информации. Крупные компания могут себе позволить провести чщательные исследования, мелкие разработчики — нет. Вот нам и приходится полагаться исключительно на интуицию.

        Интересует все, начиная от информации по платформам (как в этом посте) и заканчивая цветом и положением кнопки «зарегистрироваться», если такие исследования были.

        В общем, будет очень ценна «чистая» информация.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Графики исследовательской компании App Annie от сентября 2012 года показывают, как растут два конкурирующих магазина Apple и Google.

    все бы хорошо в этих графиках, но разница в темпе роста достигнута исключительно пиком в сентябре. Может быть как статистической ошибкой (выход нового устройства?), так и тенденцией, но без показаний за октябрь-декабрь понять ничего нельзя, потому это явный маркетинговый ход, сродни «Windows Phone уверенно опережает BlackBerry в СНГ» — вроде и правда, но звучит комично, ведь RIM на рынок СНГ не выходила.
  • 0
    Оффтоп для Мэйл.ру:
    Недавно знакомой регистрировал новый ICQ на сайте. Как же это нереально сложно сейчас сделать. Раньше делалось за пару минут. Чувствовал себя нереальным идиотом.
    • 0
      Напишите мне на почту rukostya@mail.ru, давайте разберемся, что у вас не получилось.
  • 0
    Отличная статья! Всегда приятно почитать про примеры из личного опыта, да и обзор рынка интересен.
  • 0
    Изменить ситуацию может довольно распространенных «хак» — окно Rate Us. С предложением оставить положительный комментарий в сторе, а в случае проблем написать разработчику. Эффект достаточно сильный, главное — правильно продумать алгоритм показывания диалога юзеру.

    Да, надо продумывать, потому что некоторые приложения показывают это окно при первом же запуске. «Оцените наше приложение!» — а самого то приложения я еще даже не видел.
    • 0
      В следующих материалах затрону тему идеального алгоритма показа Rate Us. Формула широко известна в узких кругах мобильных разработчиков нашей компании. Надеюсь, будет интересно.
      • 0
        очень интересно, можете поделиться ссылкой? через профиль не нашёл
  • +1
    кто именно продумывает дизайн и создает наброски? И вобще в какой сфере искать дизайнера мобильных интерфейсов, ведь дизайнеры разные бывают
    • +1
      Дизайнер интерфейсов.

      1) Наброски создает тот, кто решает задачу пользователя (чаще всего менеджер). С рисунками на бумаге я иду к дизайнеру и рассказываю свои идеи.

      2) Дизайнер делает интерактивный прототип без деталей. На этом этапе ясно количество экранов, схема переходов, текстовки, алгоритм и логика работы приложения (для разработчика). Такой кликабельный прототип мы смотрим прямо на экране телефона, оценивая количество шагов для решения пользователем своих задач, вносим правки.

      3) Схема экранов, тексты и расположение элементов ясны. Придаем графике законченный вид, это поле для игры дизайнера. Обсуждаем с разработчиком.

      4) Нарезка графики и подготовка гайдлайнов для разработчиков.

      Теперь идет работа по детальному следованию макетам и гайдлайнам, дизайнер привлекается только если чего-то не хватает или возникли вопросы.
  • 0
    По-моему возможность ответить на review в Play Store есть у всех сейчас. Раз уж даже у меня есть :)
    • 0
      Изначально такая возможность была только у обладателей беджа Top Developer. В конце прошеддшего года, этот функционал начали выкатывать на топовых разработчиков, сейчас возможность отвечать на комментарии к вашему приложению становится доступной всем.

      Но будьте внимательнее, дискуссии не получится. Пользователю придет письмо на его гуглоящик с вашим ответом и просьбой ответ отправлять на имейл, указанный в админке Play Store.
      • 0
        Юзеры не очень любят писать на e-mail. Они исправляют свой комментарий и пытаются вести диалог так)
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Опыт показывает, что кросс-платформенные решения довольно трудно применить на практике. Тем более, если ваша задача — постоянная поддержка и обновление клиента. В нашей практике некоторая часть кода вынесена в кросс-платформенную библиотеку, которая юзается на нескольких платформах. Однако такое решение требует времени на отладку, возможно даже больше, чем вы предполагаете.

      Касаемо Bada, Агента не существует под эту платформу. Могу лишь предположить, что если бы он был, доля этой платформы была бы 10-15% от всех пользователей.

      Windows Phone хорош в перспективе, пока две огромные компании вкладывают свои ресурсы в улучшение и продвижение платформы. Поэтому мы с интересом смотрим на рост пользователей WP, однако перебрасывать все ресурсы на такую молодую платформу слишком рано.
  • 0
    > Кроме того, существует сервис для тестирования – вы платите за найденные баги. Вы выкладываете приложение, его тестируют 20 тысяч человек.

    А можно узнать имя этого сервиса? Или это упомянутый выше HockeyApp?
    • 0
      Например, http://fixber.com/
      • 0
        О, спасибо! А буржуйские такие есть?
  • 0
    Приятная статья с визуализацией процесса разработки. Я так понимаю у Вас для всех платформ приложения разрабатываются, используя решения от JetBrains?
  • 0
    поэтому реальное распределение сил среди мобильных операционных систем демонстрирует наша внутренняя статистика

    У меня J2ME на 100% ассоциируется с мэйл-агентом. На тач-интерфейсах никак не смог привыкнуть к вашему юзабилити, что послужило причиной перехода на гуглопочту. Возможно, я не один такой, что и демонстрирует ваша внутренняя статистика…
    • 0
      Насколько давно это было? И уточните, о чем идет речь: о мобильной версии веб-почты, мобильном приложении почты, об Агенте? Мы собственно только и занимаемся исследованием проблем юзера и улучшениями интерфейса. Расскажите детали, чтобы понять, что вам не понравилось…
      • 0
        Я про мобильное приложение для почты.

        С 2004 по 2009 постоянно юзал Агент на сименсах и нокиях: сначала для уведомлений, потом для самой работы с почтой, когда её сделали. На голову выше любых других клиентов (в т.ч. стандартных, где таковые были). Настолько удобно и очевидно, насколько возможно на тех аппаратах. Каждый из 101х80 пикселей у вас «работал».

        А с iOS — как сказать… Пародия на стандартный клиент с непонятными рюшечками, всё время что-то лишнее мелькает. Вот обычный скролл на пол-экрана вверх-вниз, в середине движения (в обоих направлениях) происходит что-то странное:



        Перечислять все детали даже не вижу смысла — кажется, убери всё лишнее и неинтуитивное — и получишь стандартный клиент. Но не думаю, что это у меня ябло-зависимость — люблю оригинальные UX типа Flipboard или вот Mail Pilot, на который недавно перевёл свою рабочую почту (хотя он пока сырой).

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

Самое читаемое Разработка