Как принимать платежи в мобильном приложении. Комиссия на операции

  • 18.02.2023
Тенденции

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

  • Больше половины (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. Именно поэтому мы ведем работу со стажерами - потому что иногда легче взять толкового студента и обучить его.
Заключение

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

Приложением (или прикладной программой) называется программа, предназначение которой заключается в выполнении пользовательских задач. Как правило, приложения для доступа к ресурсам компьютера используют операционную систему.

Существует следующая приложений согласно их типу:
– общего назначения;
– специального назначения;
– профессионального уровня.

К приложениям общего назначения относятся:
– графические редакторы;
– текстовые редакторы;
– системы для компьютерной верстки;
– системы управления базами данных (СУБД).

К приложениям специального назначения относятся:
– мультимедийные приложения (для создания или редактирования аудио и звука, проигрыватели и т.п.);
– экспертные системы;
– гипертекстовые системы (например, справочные системы и словари);
– системы управления контентом (CMS).

К приложениям профессионального уровня относятся:
– системы автоматизированного проектирования (САПР);
– автоматизированные рабочие места (АРМ);
– автоматизированные системы управления (АСУ);
– автоматизированные системы управления техническим процессом (АСУ ТП);
– биллинговые системы;
– геоинформационные системы;
– системы управления взаимоотношениями с клиентами (CRM).

По сфере применения приложения подразделяются на программное обеспечение:
– организаций и предприятий, а также их отдельных подразделений;
– инфраструктуры предприятий (серверы электронной почты, СУБД и т.п.);
– информационного работника (служат удовлетворению потребностей конкретного пользователя);
– доступа к контенту (например, браузеры, мультимедийные плееры и т.п.);
– образовательное (с их помощью осуществляется тестирование знаний);
– имитационное (симуляция каких-либо систем в научных и образовательных целях, либо для развлечения);
– для работы с медиа (программы , редакторы аудио, и изображений, программы для обработки полиграфии, редакторы HTML и т.п.);
– конструирования и проектирования (используются при разработке программного и аппаратного обеспечения).

Видео по теме

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

Само название «магазин приложений» является не совсем корректным. Трудно представить себе торговую точку, в которой от 30 до 70 процентов наименований товаров раздавалось бы . А мобильные «магазины» именно таковы, разве что «товары» в них нематериальны. Разумеется, оплачивать для скачивания программ доступ в интернет приходится все равно, поэтому лучше выбрать безлимитный тариф.

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

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

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

Программы для некоторых мобильных операционных систем можно скачивать только таким способом. Таковы, например, iOS (магазин для нее называется App Store) и Windows Phone 7 (Windows Phone Marketplace). Другие же платформы позволяют устанавливать приложения и из сторонних источников, но пользоваться магазином все равно заметно удобнее и безопаснее. Примеры таких ОС - Symbian 9 (Nokia Store, в прошлом - Ovi Store) и Android (Google Play, в прошлом - Android Market).

Совет 4: Как скачивать приложения для мобильных телефонов

Основная функция мобильного телефона – возможность отправлять и принимать короткие sms-сообщения, а также совершать телефонные звонки. Сегодня можно значительно расширить этот функционал, если использовать специальные приложения, которые можно загрузить из интернета.

Вам понадобится

  • - мобильный телефон;
  • - компьютер с подключением к сети интернет.

Инструкция

Прежде всего, вам нужно выбрать сайт, с которого вы будете скачивать нужные приложения для телефона. Важно знать, что на страницах некоторых сайтов располагаются небесплатные приложения, т.е. за их использование или активацию нужно заплатить. Оплата таких услуг обычно проходит посредством отправки sms-сообщений, причем цена может быть довольно высокой. Такими схемами распространения пользуются владельцы сайтов, сотрудничающие с партнерскими программами.

Вам же необязательно платить деньги за то, что можно получить бесплатно. Основной набор программ для любого телефона можно найти на сайте, ссылка на который указана в блоке «Дополнительные источники». На загрузившейся странице находится список всех программ с изображениями в формате блога (последние записи отображаются сверху вниз). В левой части находится боковая панель, которая является каталогизатором или своеобразным оглавлением существующих разделов.

Щелкните по нужному архиву и на новой странице выберите модель своего телефона. Если вы не знаете его название, рекомендуется воспользоваться одной из ссылок в верхней части страницы: телефон с поддержкой MIDP 1.0 или телефон с поддержкой MIDP 2.0. В новом окне выберите опцию «Сохранить файл» и укажите папку назначения, к примеру, «Рабочий стол».

После того, как новое приложение выпущено главная его задача не столько привлечь новых пользователей, сколько удержать их в приложении. Невозможным остается лишь факт возврата утерянного юзера. Поэтому на начальном этапе необходимо выпускать приложение максимально удобным в пользовании, интересным и интригующим, что особо актуально для мобильных игр. Факт удержания пользователей не говорит об их готовности совершать платежи, а лишь максимизирует retention. Что, в свою очередь, увеличивает количество LTV пользователей.

LTV – это одна из важнейших финансовых метрик, которая позволяет оптимизировать затраты на привлечение новых пользователей, рассчитывать прибыль, оценивать эффективность каналов привлечения и др. Проще говоря, это показатель количества денег, которые принес юзер за всю его “жизнь” в проекте.

К слову, установки сделанные из результатов поиска отличаются самым высоким качеством пользователей (LTV) и самой низкой ценой (CPI)

Показатель LTV со временем может снизится из-за ряда причин, среди которых:

  • Lifetime – время “жизни” пользователя в проекте;
  • ARPU – показатель моннетизационной эффективности продукта или процент платежеспособности пользователей (Paying Users в отношении к Total Users);
  • Retention – показатель удержания пользователей;
  • Paying share – число платящих пользователей за определенный период;
  • ARPPU – показатель готовности и дальше вносить плату итак лояльного платящего пользователя.

Тенденция оттока (churn) пользователей из приложения автоматически снижает прирост дохода. Что нужно делать, чтобы удержать пользователя в приложении и как увеличить показатель retention рассмотрим более подробно.

Что такое retention?

Ново привлечённые пользователи, открыв приложение, уже на начальном этапе понимают нравиться оно ему или нет. Как правило, на 30 день пользователь уже определил для себя полезность этой платформы в своей жизни. Если приложение не вызвало интерес, то вас ждет неминуемая потеря – пользователь покинет его и не вернется на следующий день или вовсе удалит со смартфона.

Retention – это важнейший показатель в аналитике мобильных приложений. На его основе вычисляется процент активных пользователей после первого запуска продукта. Метрика рассчитывается за 1, 7, 14, 30, 60, 90 дней и т.д. Показатели на каждом из отведенных промежутков времени важны, однако особо ценны показатели 1-day retention. Если после первого визита пользователь не вернулся, значит его что-то не устроило и скорее всего это интерфейс или его графический контент. При правильной оптимизации 1-day retention покажет прирост. Если же и спустя месяц пользователь остается верен вашему продукту, значит оно его действительно заинтересовало. Именно удержание пользователей имеет более значимый эффект, чем прирост их количества.

Существует множество методов расчета данного показателя, каждый из которых отличается пониманием того, какие пользователи считаются оставшимися (Paying Users или Total Users) и на какое количество их делить. Расчет может производиться на основе:

  • full retention
  • classic retention
  • return retention
  • bracket-dependent return retention

В качестве примера возьмем за основу классический retention vs rolling retention (скользящий показатель).

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

Итоговое число говорит о реакции пользователя на интерфейс приложения. За 1 день пользователь успевает оценить только удобство использования, дружелюбность туториала и понятность решаемой задачи.

Показатель 7, 30 и т.д. дней рассчитывается таким же способом.

Retention соответствующего дня по истечению времени, то есть с момента первого открытия приложения, становится меньше. Однако далее скорость его падения снижается, так как в приложении остаются только активные пользователи.

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

Число Rolling retention каждого дня рассчитывается, как процент пользователей, которые являются активными и по сей день, от всех пользователей, открывших первый раз приложение в конкретный день. В данном понимании активный пользователь считается таковым, если он выполнил вход в приложение хотя бы 1 раз в 7 дней. Именно поэтому показатель Rolling retention последних 7 дней всегда будет равен 100%.

За скользящим удержанием необходимо особо тщательно следить для того чтобы понять в какие дни наблюдается пики и разобрать их причины. Это может быть связано с выпуском нового обновления, сезонностью, например, выходные или праздничные дни, когда пользователь может уделить больше времени для изучения вашего продукта. Также это может быть результат работы той или иной рекламной кампании.

Путь к успеху – система аналитики мобильных приложений

Для достижения успеха, привлечения и удержания пользователей необходимо выяснить сильные и слабые стороны софта. Аналитика мобильных приложений может дать ответы на такие вопросы:

  • каково количество загрузок и удалений
  • с каких источников была установка (Google Play, AppStore или динамическая ссылка)
  • какие рекламные кампании наиболее выгодные
  • какой рейтинг у приложения
  • какой коэффициент удержания клиента
  • когда пользователь совершил покупку
  • кто ключевые конкуренты и их преимущества

Владея данной информацией, вы сможете постоянно улучшать приложение, а значит увеличивать прибыль.

Инструментов для анализа эффективности приложения множество,

среди наиболее востребованных: Firebase Analytics, Flurry, AppAnnie, Localytics, Mixpanel.

Наиболее удобный и бесплатный инструмент Firebase от Google. Относительно “молодой” инструмент, созданный для быстрой разработки качественных мобильных приложений, расширения аудитории и повышения доходности. Его основа – бесплатная система аналитики Firebase Analytics, которая автоматически отслеживает большинство событий и импортирует их в рекламную систему. Это влияет на повышении качества оптимизации рекламных кампаний.

Повышаем retention: Как удержать пользователя?

Retention Rate или показатель возвращаемости пользователя – одна из главных метрик для любого проекта. Коэффициент Retention Rate показывает насколько клиенты довольны приложением и как развивается бизнес. Увеличение данного показателя повышает доход. Удержание юзера гораздо важнее и тяжелее, чем его привлечение.

Вот самые распространенные:

  1. Думать, как пользователь. Создать удобный интерфейс и интересный туториал.
  2. Раскрывать возможности приложения постепенно . Софт должен заинтересовывать пользователя, возвращая его снова и снова, открывать его новые грани.
  3. Регулярные события и задания. При повторном запуске пользователь не только получает бонус, но и выполняет задания.
  4. Система мотивации . Поощрения (бонусы, подарки, награды, виртуальная валюта) за достижения стимулируют.
  5. Взаимодействие с друзьями. Присутствие друзей в игре не только создает более приятную атмосферу, но и вызывает конкуренцию. Виральность очень важна. Можно мотивировать пользователей реферальной программой – начислять бонусы за привлечение новых пользователей.
  6. Выбор по оплате услуг. Не всегда пользователь готов тратить свои деньги, дайте ему возможность обменивать накопленную виртуальную валюту на ваши услуги. Также действенными остаются и временные ограничения.
  7. Рекламные кампании , цель которых привлечь новых пользователей.
  8. Напоминания. Это могут быть push-уведомления или e-mail рассылка. Будьте индивидуальны, отойдите от стереотипности. Контент сообщений должен не раздражать, а восхищать клиента. Главное умеренность, иначе эффект может быть обратно пропорциональным.

Продвижение мобильных приложений – это немалый труд. Главное о чем нужно помнить – зачем, для кого оно создано и какую проблему оно решает. Если приложение создано с мыслью о потенциальном пользователе и его удобстве, то user станет не только его активным пользователем, но и будет платить монетой. Чем дольше пользователь с вами, тем более он лоялен к вам, и тем выше вероятность совершениям ним платежа.

Развитие телекоммуникационных технологий привело к тому, что большинство социально-активных людей имеют смартфон или планшет, и активно ими пользуются. Неоспоримым преимуществом таких устройств является возможность подключения к интернету, чтобы быть онлайн везде, где доступна сотовая связь. Заказать такси, гуляя в парке, выбрать мебель, обедая в кафе, купить билеты на концерт во время утренней пробежки – все это возможно с помощью специальных утилит.

Что такое мобильное приложение для бизнеса

Любой смартфон или планшет содержит предустановленную операционную систему и программы. Это базовые приложения для повседневного пользования (например, органайзер, будильник, камера, телефон, калькулятор). Дополнительно к ним пользователь может устанавливать любые другие программные обеспечения в связи со своими потребностями. Это может быть новая игра, мессенджер, браузер и др.

Мобильное приложение для бизнеса (mobile app) имеет свои особенности применения, поэтому значение этого понятия отличается в зависимости от контекста использования. Возможны два варианта его определения:

  • Программа, которая применяется в повседневной работе бизнеса, помогая ему эффективно достигать поставленных целей (например, облачное хранилище Google Drive).
  • Программа, разработанная для использования на смартфонах сторонними пользователями, исключительно в интересах конкретного бизнеса (например, афиша кинотеатра).

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

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

Отличие от мобильной версии сайта

Может показаться, что утилита для смартфона выполняет те же функции, что и мобильная версия сайта конкретной компании, но это не так. Главные отличия заключаются в том, что:

  • Версия сайта компании для смартфонов и планшетов представляет собой адаптацию базового интернет-ресурса, его облегченный вариант. Мобильное приложение для бизнеса не претендует на такую всеохватность, оно часто посвящено какому-то одному направлению (например, заказу пиццы в офис).
  • Мобильный сайт расположен на интернет-сервере, пользователь открывает его с помощью браузера. Приложение установлено у клиента на смартфоне, это отдельная программа, которую нужно запускать при необходимости.
  • С технической точки зрения мобильный сайт использует те же интернет-технологии, что и его основная версия, адаптируя размеры и структуру ресурса под требования смартфонов и планшетов. По этой причине он не всегда корректно отображается на разных устройствах. Приложение изначально адаптировано под конкретную операционную систему (Android, iOS, Windows Mobile) или использует кроссплатформенный принцип, поэтому с отображением и функционированием проблем не возникает.

Цели и назначение

Разработка и использование mobile app в маркетинге помогает бизнесу одновременно решать несколько задач, эффективно дополняя другие каналы взаимодействия с клиентами. Основными целями таких приложений являются:

  1. Повышение продаж. Бизнес должен быть выгодным, а каждый маркетинговый инструмент – помогать приносить прибыль. Программное обеспечение решает эту задачу как непосредственно, напоминая потенциальному клиенту о новых акциях или скидках, так и косвенно, вызывая его интерес к определенной компании/бренду.
  2. Продвижение программ лояльности. Самый распространенный пример – накопительная скидка, стимулирующая повторные покупки. С ее помощью бизнес не только удерживает клиентов, но и увеличивает объемы продаж. Пользователю, накопившему скидку 10-15%, невыгодно обращаться к другим магазинам/услугам, где у него нет такого преимущества.
  3. Привлечение новых клиентов. Для того, чтобы пользователи узнали о предложениях вашей компании, они должны сначала установить мобильное приложение для бизнеса на гаджет. Скидка в размере 50% на билет в кинотеатр или бесплатный круассан в кафе станут подходящими бонусами для тех, кто установит программное обеспечение на свой гаджет. Получая в дальнейшем меню или текущую афишу с фильмами, клиент быстро оценит предлагаемые удобства.
  4. Взаимодействие с целевой аудиторией. Разработка mobile app помогает эффективно воздействовать на потенциальных клиентов любого бизнеса. По умолчанию пользователь, установивший на гаджете программное обеспечение, считается представителем целевой аудитории, проявляющим интерес к товарам/услугам компании.
  5. Предоставление конкурентных преимуществ. Не все компании прибегают к помощи мобильных приложений для бизнеса, даже в массовых сегментах деятельности (доставке блюд, индустрии развлечений, продуктовых магазинах и др.). Игроки, прочно закрепившиеся в сфере телефонного контента, получают преимущество – круг их клиентуры становится гораздо больше, пользователи узнают о новых акциях или заказывают товары из любых доступных для сотовой связи мест.
  6. Возможность автоматической рассылки push-сообщений. Это нужный и полезный сервис, позволяющий распространять информацию среди целевой аудитории в виде коротких всплывающих объявлений. Принцип push-уведомления подразумевает быстрое информирование клиента и возможность его перехода по ссылке на интернет-страницу или вкладку с более полными сведениями о товаре/услуге.

Эффективное функционирование mobile app обеспечивается несколькими составляющими этапами. К ним относятся:

  • Разработка программного обеспечения. Задачей этого этапа является создание оригинального и функционального программного обеспечения с простым интерфейсом.
  • Маркетинговая стратегия – комплекс мер по продвижению разработки на рынке. На этом уровне клиент устанавливает mobile app на свой девайс и испытывает его возможности.
  • Создание контента по направлениям деятельности компании. Это самый протяженный этап. Чем дольше клиент пользуется программным обеспечением, установленным на его гаджет, тем больше информации о новых товарах или акциях он получает. Это должно привести к увеличению числа заказов – основной цели программного обеспечения.

Какие задачи решают бизнес-приложения

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

  • Автоматизация деятельности организации. Например, система для кафе и ресторанов Jowi имеет отдельные модули для официантов, поваров и др. Эти блоки синхронизируются между собой так, что принятый заказ сразу поступает на кухню, а администратор может легко контролировать выполнение.
  • Разработка программных продуктов для совместной работы сотрудников. В них входят внутренние мессенджеры и трекеры, облегчающие коммуникацию (в том числе при выездной работе), системы управления проектами и приложения для мультидоступа к файлам.

Использование приложений для бизнеса

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

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

Сферы деятельности и направления

Широкая аудитория потребителей товаров или услуг компании обеспечивает эффективность применения мобильного приложения для бизнеса. Такая программная разработка будет эффективна для следующих направлений деятельности:

  • Туризм. С помощью утилиты пользователи не только узнают о горячих турах или новых курортах, но и смогут искать отели с подходящими условиями, бронировать места в них.
  • Заведения общепита. Гостю удобно изучить меню на своем смартфоне еще до посещения ресторана или кафе. С помощью программ для смартфона легко реализовать возможность бронирования столиков или скидок (например, «каждое пятое посещение – за полцены»).
  • Медицина. Программа может содержать актуальное расписание приема врачей с возможностью записи на консультацию и функцией напоминания.
  • Автобизнес. Для владельцев комплексного автосервиса mobile app является мощным инструментом привлечения клиентов. Смартфон всегда под рукой у водителя, поэтому с его помощью пользователь может уточнить наличие конкретных запчастей, увидеть график ремонтных работ и степень готовности автомобиля, накапливать бонусные баллы на автомойке.
  • Индустрия красоты. Для SPA-салонов и парикмахерских это программное обеспечение предоставляет возможность оптимально распределять рабочее время за счет предварительной записи, сообщать клиентам о новых акциях. Информацию о количестве посещений удобно собирать с помощью сканирования QR-кодов на смартфон.
  • Службы доставки. Программа предложит пользователю возможность удобно сделать заказ в несколько касаний. Аналогичное действие на персональном компьютере начинается с запуска браузера, поиска необходимого сайта, выбора нужного блюда, и т.д., что займет гораздо больше времени.
  • Сфера услуг. Удачным будет применение мобильного приложения для бизнеса компаниями по грузоперевозке, курьерской доставке, бытовому обслуживанию. Во всех этих случаях клиент может настроить mobile app на смартфоне, чтобы было удобно отслеживать статус своего заказа.
  • Спорт. Программа для финтес-центра или тренажерного зала предложит пользователю необходимую информацию о ценах и услугах, предоставит возможность пользования необходимыми сервисами. Например, для занимающихся спортом, фиксация проделанных тренировок и ожидаемых результатов является удобным инструментом.
  • Досуг. Применение таких приложений развлекательными заведениями (кинотеатрами, ночными клубами, концертными залами и др.) имеет те же преимущества, что и компаниями в сфере индустрии красоты. Программное обеспечение собирает информацию о репертуаре, предоставляет возможность заказа билетов со смартфона, накапливает скидки для постоянных посетителей при регистрации в системе.

Как просчитать ожидаемый эффект

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

  • собрать многотысячную аудиторию пользователей;
  • получать большое число заказов с мобильного трафика;
  • стимулировать клиентов накапливающимися скидками.

Мало только разработать такое программное обеспечение, его нужно умело внедрить на рынок, используя все имеющиеся каналы взаимодействия с клиентами (сайт, соцсети, QR-коды на купонах) и проводя специальные акции для установивших его пользователей. Обещая символическую скидку за заказ через программное обеспечение, приучить аудиторию к ней будет гораздо проще. При этом нужно следить, чтобы обработка поступающих из приложения заявок и его информационное насыщение не отставали от сайта по оперативности, иначе клиенты переместятся на него.

Идеи для мобильных приложений

Задумываясь о разработке мобильного приложения для бизнеса, руководство компании должно понимать, что в настоящее время подобные утилиты рассчитаны преимущественно на социально активное население в возрасте от 20 до 50 лет. Чтобы получить конкурентное преимущество, предприниматель должен реализовать в программном обеспечении оригинальную идею, которая станет стимулом для установки бизнес-приложения на смартфон, например:

  • Определитель брендов одежды по штрихкоду (для модного бутика).
  • Путеводитель по достопримечательностям города (для службы такси).
  • Распознавание исполнителя/композиции по фрагменту произведения (для концертного зала).
  • Регулярно обновляемая статистика по населению земного шара или определенной страны (для туристического бюро).
  • Отслеживание состояния здоровья домашнего питомца (для ветеринарной клиники).
  • Кулинарная книга с рецептами оригинальных блюд (для супермаркета).

Сколько стоит создание mobile apps

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

  • поддерживаемые версии операционных систем (Android, iOS, решения на основе кроссплатформенности);
  • пользовательские элементы управления (например, кнопки или формы);
  • количество экранов;
  • типы устройств, на которых будет использоваться программное обеспечение (смартфоны/планшеты);
  • наличие серверной части (необходимо для интернет-магазинов, служб доставки и др.).

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

Сложность

Срок разработки, часов / месяцев

Стоимость, рублей

Дополнительные возможности

100 000 – 200 000

Информация о компании, контактные данные, карта проезда

200 000 – 350 000

Все вышеуказанное + интерактивные графики и калькуляторы, оффлайн-карты, администрирование, сбор статистики.

В зависимости от сложности задачи, работа над заказом займет от нескольких месяцев до года и больше. Основные этапы разработки:

  1. Анализ первоначальной идеи. Получив от заказчика техзадание и необходимый материал, специалисты студий по разработке программных обеспечений продумывают оптимальные пути его реализации.
  2. Создание первого варианта проекта. На этом этапе создается карта проекта, отображающая утилиту в работе, систему переходов в зависимости от действий пользователя и др.
  3. Дизайн интерфейса. Подготовка графического воплощения для пользовательских экранов с учетом различных сценариев и состояний. Юзабилити-исследование на этом этапе помогает убедиться в эргономичности и рациональности.
  4. Программирование утилиты. Подготовка кода для mobile app. Заказчик периодически знакомится с промежуточными результатами и вносит свои дополнения.
  5. Тестирование разработки. Проверка программы в тестовом режиме и ее оптимизация. Подготовка к окончательной приемке заказчиком.
  6. Публикация mobile app. После утверждения разработки клиентом происходит ее размещение в открытом сетевом доступе через отправку в магазины AppStore и/или Google Play.

Бизнес в кармане – лучшие мобильные приложения

На рынке сегодня существует множество разных деловых утилит с полезными функциями, но пользователь вряд ли будет устанавливать их на смартфон в большом количестве. Максимум 3-4 наименования, иначе за экраном смартфона придется проводить много времени. Их выбор носит индивидуальный характер – одному необходимо иметь новостной агрегатор, другому нужнее правовая база, но оба не обойдутся, например, без органайзера. В таблице приведены самые распространенные утилиты среди деловых людей:

Название

Платформа

Предназначение

Android, iOs, Windows Mobile

Англоязычный сервис для контроля за отчетностью

Бесплатно для 3-х сотрудников, за каждого последующего – от $6,5 в месяц.

Android, iOs, Windows Mobile

Для обобщения данных по расходам

Бесплатный 30-дневный период пользования, затем от $5 в месяц.

Для создания электронной подписи

Бесплатно первые три использования, затем $5 за 10 документов или $40 в месяц.

Для бронирования отелей

Бесплатно

Для сканирования документов

Базовая версия бесплатна, премиум-вариант (дополнительные сервисы и 10 Гб облачного хранения) - $5 в месяц.

Android, iOs, Windows Mobile

Планировщик для управления проектами в небольших коллективах

Бесплатно

Android, iOs, Windows Mobile

Для упорядочения заметок

В бесплатном варианте есть ограничения (максимальный размер заметки 25 МБ, объем ежемесячного трафика 60 МБ). Платные пакеты (например, Evernote Premium за 219 рублей в месяц) менее лимитированы.

Android, iOs, Windows Mobile

Для взаимодействия с облачным сервисом хранения файлов

Бесплатно

Органайзер-планировщик для смартфона

Бесплатно

КонсультантПлюс

Android, iOs, Windows Mobile

Правовая система с законодательной базой

Бесплатно

Android, iOs, Windows Mobile

Тайм-менеджер для упорядочивания задач

Бесплатно, есть платная версия с расширенными возможностями.

Weekdone – отчеты от работников

Эта программное обеспечение помогает начальству контролировать работу своих сотрудников. Руководитель организации создает в системе аккаунт, регистрирует там своих сотрудников, после чего каждый из них еженедельно получает сообщение о необходимости подготовки отчета. Его стандартный вариант включает в себя итоги работы за неделю, ближайшие планы и возникшие за этот период проблемы. Утилита анализирует присланную информацию о производительности, предоставляя ее в графической форме. Серьезным минусом программы является отсутствие русифицированной версии.

Установив эту утилиту на смартфон, руководитель сможет подписывать договоры и ставить визы согласования, находясь вне офиса. Signeasy поддерживает такие распространенные форматы файлов, как doc, xls, pdf, jpg и др. и интегрировано с облачными хранилищами данных. Преимуществом ее использования является безбумажный оборот документации и дистанционная работа с цифровой подписью, недостатками – платный контент.

Booking – сервис бронирования отелей

Camscanner – возможности сканирования документов в мобильном приложении

Данное Mobile app – портативная замена сканера и легкий способ получить качественную цифровую копию необходимого документа. Программа автоматически определяет границы сканирования, выстраивает оптимальные параметры яркости и контрастности, сохраняет изображение в форматах pdf, jpg. Возможна передача сканированной копии в облачном хранилище или ее отправка по электронной почте.

Asana – мобильное приложение для управления проектами

Разработчики этой утилиты акцентируют внимание на том, что управление проектами происходит без переписки по электронной почте. Ломая сложившийся стереотип взаимодействия, Asana предлагает создание виртуального рабочего пространства и наполнение его выполняющимися и задуманными заданиями. Изначально программа была разработана только для iOS. В 2015 году вышла версия для Андроид.

Evernote – мобильный блокнот

Облачное средство для фиксации и упорядочения информации в текстовом, графическом или аудиоформате. При необходимости данные синхронизируются на рабочем компьютере и смартфоне. Большинству пользователей подойдет бесплатная версия. Для бизнесменов, работающих с огромным количеством информации, предусмотрены платные пакеты, например, Evernote Premium за 219 рублей в месяц не имеет ограничений по объему загрузок, а размер отдельной заметки ограничен 200 МБ. В этом случае утилита ведет поиск и по документам Microsoft Office (Excel и Word).

Google Drive – облачное хранилище

Программа помогает получать доступ к файлам, хранящимся в облаке и делать резервное копирование. Установив ее на смартфон, пользователь может сохранять данные (заметки, фотографии и др.) не только на самом устройстве, но и на облачном диске, где обеспечено их более надежное хранение. Дополнительным преимуществом является возможность предоставления прав доступа в облако сторонним пользователям, заменяющая пересылку файлов по электронной почте.

Omnifocus – идеальный таск-менеджер

Это программное обеспечение поможет распланировать рабочий день руководителя и сотрудников компании. Создав каталог задач, можно установить их приоритетность, подбирая подходящий алгоритм выполнения. Утилита сортирует записи по геотэгам, времени и другим категориям, собирает напоминания из электронной почты, определяет занятость пользователя на перспективу, помогая распределять рабочее время с максимальной продуктивностью. Программа рассчитана на iOS, поэтому подойдет только для продукции компании Apple – IPad и IPhone.

КонсультантПлюс – нормативная и законодательная база

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

Эта штука оказалась полезной, но ей не хватало возможностей по взаимодействию родительского приложения с веб-контейнером. А именно, родительское приложение не могло контролировать веб-контейнер, а контейнер не мог обращаться к родительскому приложению. Как результат, контейнер оказывался полностью изолированным от своего окружения в виде приложения.

▍C. Jasonette Web Container 2.0: взаимодействие приложения и контейнера

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

Реализация: интерактивный Web Container

Задача

Ранее, в первой версии , для того, чтобы использовать веб-контейнер в виде компонента для просмотра данных, сначала нужно было записать "html" в атрибут $jason.body.background.type , а затем, в атрибут $jason.body.background.text , ввести HTML-код.

{ "$jason": { "head": { ... }, "body": { "background": { "type": "html", "text": "

Hello World

" } } } }
Вполне естественно то, что разработчикам удобнее будет инициализировать контейнер, используя обычную ссылку на веб-страницу, вместо того, чтобы вводить весь HTML-код страницы в одну строчку.

Решение

В Web Container 2.0 появился атрибут url . Он поддерживает, в частности, локальные файлы. Благодаря использованию конструкции file://... в контейнере можно вывести файл, который поставляется вместе с приложением.

{ "$jason": { "head": { ... }, "body": { "background": { "type": "html", "url": "file://index.html" } } } }
Аналогично осуществляется и вывод веб-страниц из интернета (с помощью конструкции вида http[s]://…).

{ "$jason": { "head": { ... }, "body": { "background": { "type": "html", "url": "https://news.ycombinator.com" } } } }

▍2. Двустороннее взаимодействие приложения и веб-контейнера

Задача

Ранее веб-контейнеры использовались только для вывода некоего содержимого, они не могли взаимодействовать с основным приложением. Это означало, что следующие сценарии их использования были невозможны:
  1. Воздействие Jasonette на веб-контейнер. А именно, невозможно было вызывать JavaScript-функции, расположенные в контейнере, из Jasonette-приложения.
  2. Воздействие контейнера на Jasonette. Невозможно было вызывать нативные API из кода, расположенного в контейнере.
Веб-контейнер можно было использовать только для вывода страниц. Это похоже на то, как в обычные веб-страницы встраивают элементы iframe , когда страница не может получить доступ к тому, что находится внутри этих элементов.

Решение

Цель проекта Jasonette заключается в создании стандартного языка разметки, позволяющего описывать кросс-платформенные мобильные приложения. В данном случае нам нужен язык разметки, который может точно описать варианты взаимодействия между родительским приложением и дочерним веб-контейнером.

Для того чтобы этого достичь, я воспользовался технологией JSON-RPC , которая позволила наладить взаимодействие приложения и веб-контейнера. Так как всё в Jasonette выражается в виде JSON-объектов, совершенно естественным было использовать стандартный формат JSON-RPC в качестве коммуникационного протокола.


До использования JSON-RPC Jasonette и веб-контейнер взаимодействовать не могли. После внедрения JSON-RPC стала возможна двусторонняя коммуникация основного приложения и контейнера

Для того чтобы получить возможность вызывать JS-функции, находящиеся в веб-контейнере, мы объявляем действие $agent.request .

{ "type": "$agent.request", "options": { "id": "$webcontainer", "method": "login", "params": ["username", "password"] } }
$agent.request - это нативное API, которое инициирует JSON-RPC-запрос к веб-контейнеру. Для того чтобы воспользоваться этим механизмом, нужно передать ему объект options в качестве параметра.

Параметры веб-контейнера заданы в $jason.body.background , в данном случае здесь осуществляется загрузка локального файла file://index.html .

В ходе обращения к контейнеру будет осуществлён поиск функции login , которой, при вызове, благодаря params , будет передано два аргумента - "alice" и "1234" . Выглядеть это будет так:

Login("alice", "1234")
Тут я рассказал лишь о том, как родительское приложение может вызывать JS-функции из веб-контейнера, однако возможен и обратный процесс , когда контейнер обращается к приложению для вызова нативных API. Подробности об этом можно узнать в документации по агентам.

Пример

Обсудим пример приложения для создания QR-кодов, которое вы уже видели выше.


Приложение для создания QR-кодов

▍3. Внедрение скриптов

Задача

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

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

Даже если вы не занимаетесь разработкой веб-браузера, вам может понадобиться использовать внедрение скриптов в том случае, если вам нужно обеспечить необходимое поведение страниц, которыми вы не можете управлять напрямую. Единственный способ взаимодействия мобильного приложения и веб-контейнера заключается в использовании API $agent . Но если вы не можете изменить HTML-содержимое, единственный способ добавления интерфейса $agent в веб-контейнер заключается в динамическом внедрении скриптов.

Решение

Как уже было сказано, веб-контейнер $jason.body.background - это всего лишь агент. Это означает, что при работе с ним можно использовать тот же метод $agent.inject , что и при работе с обычными агентами.


Внедрение JS-кода в страницу, загруженную в веб-контейнер

▍4. Обработка переходов по URL

Ранее веб-контейнер мог обрабатывать щелчки по ссылкам лишь двумя способами, пребывая в одном из двух режимов.
  1. В режиме «только чтение» веб-контейнер рассматривается как элемент только для чтения, при этом все события, такие, как касание или прокрутка, игнорируются. Все веб-контейнеры находятся в состоянии только для чтения до тех пор, пока их не переключат в режим обычного браузера, так, как описано ниже.
  2. В режиме «обычный браузер» веб-контейнер может взаимодействовать со страницей так, как будто мы работаем с обычным браузером. Включить этот режим можно, записав в атрибут action значение "type": "$default" .

Задача

Проблема тут заключается в том, что оба рассмотренных выше варианта - это решения представляющие собой концепцию «всё или ничего».

При работе в режиме «только чтение» контейнер игнорирует все воздействия пользователя.

При работе в режиме «обычный браузер» веб-контейнер работает, в буквальном смысле, как браузер. Когда пользователь касается ссылки, страница, на которую ведёт эта ссылка, загружается. При этом у разработчика нет возможности перехватить это событие и вызвать, например, какое-то нативное API.

Решение

Благодаря возможностям нового веб-контейнера можно задать в $jason.body.background атрибут action , который содержит описание механизма обработки щелчков по ссылкам.


Действие для обработки взаимодействий со ссылками

Рассмотрим пример.

{ "$jason": { "head": { "actions": { "displayBanner": { "type": "$util.banner", "options": { "title": "Clicked", "description": "Link {{$jason.url}} clicked!" } } } }, "body": { "background": { "type": "html", "url": "file://index.html", "action": { "trigger": "displayBanner" } } } } }
Тут мы прикрепили к веб-контейнеру действие "trigger": "displayBanner" . Это означает, что когда пользователь щёлкает по любой ссылке, выводимой на странице, отображаемой в веб-контейнере, будет вызвано действие displayBanner . При этом сам веб-контейнер не будет обрабатывать щелчок по ссылке.

Кроме того, если проанализировать событие displayBanner , можно заметить переменную $jason . В данном случае ссылка, по которой был сделан щелчок, будет передана действию через эту переменную. Например, если щёлкнуть по ссылке, в которой содержится адрес "https://google.com" , в $jason попадёт следующее:

{ "url": "https://google.com" }
Это означает, что анализируя значение $jason.url можно вызывать различные действия.

Рассмотрим ещё один пример, представляющий собой реализацию веб-браузера.

{ "$jason": { "head": { "actions": { "handleLink": [{ "{{#if $jason.url.indexOf("signin") !== -1 }}": { "type": "$href", "options": { "url": "file://key.html" } } }, { "{{#else}}": { "type": "$default" } }] } }, "body": { "background": { "type": "html", "url": "file://index.html", "action": { "trigger": "handleLink" } } } } }
Тут мы проверяем, содержит ли URL строку signin , и, в зависимости от результатов проверки, выполняем различные действия.

  1. Если URL содержит signin , открывается нативное окно для входа в систему.
  2. Если URL этой строки не содержит, выполняется действие, задаваемое параметром "type": "$default" , в результате наша программа ведёт себя как обычный браузер.

Примеры

▍Разработка веб-браузера

Теперь мы можем воспользоваться возможностями нового элемента Web Container для разработки приложений. А именно, речь идёт о следующем:
  1. Возможность стандартной обработки щелчков по ссылкам, что соответствует поведению обычного браузера.
  2. Возможность обрабатывать щелчки по ссылкам, основываясь на их содержимом.
Всё это даёт нам возможность, например, создать собственный браузер, написав буквально полтора десятка строк JSON-кода. Так как теперь мы можем перехватывать щелчки по ссылкам, мы можем анализировать $jason.url и выполнять действия, соответствующие различным URL.

Рассмотрим пример.


Стандартное поведение браузера

Здесь веб-контейнер ведёт себя как обычный браузер ("type": "$default").


Поведение, основанное на анализе параметра $jason.url

Этого можно достичь, обрабатывая различные действия, основываясь на значении $jason.url .

Первым шагом создания подобного приложения служит присоединение к веб-контейнеру действия visit .

{ ... "body": { "background": { "type": "html", "url": "https://news.ycombinator.com", "action": { "trigger": "visit" } } } }
Второй шаг заключается в выполнении в действии visit соответствующей операции, основанной на анализе $jason.url .

Ниже показано, как мы проверяем, содержатся ли в $jason.url строки newest , show , ask , и так далее (они представляют собой ссылки в верхнем меню). Если нечто подобное удаётся найти - мы позволяем веб-контейнеру вести себя как обычный браузер, задавая значение "type": "$default" .

Если соответствия вышеописанному шаблону найти не удалось, мы производим нативный переход $href к новому окну, передавая URL, по которому щёлкнул пользователь, в виде параметра.

... "actions": { "visit": [ { "{{#if /\\/(newest|show|ask)$/.test($jason.url) }}": { "type": "$default" } }, { "{{#else}}": { "type": "$href", "options": { "url": "https://jasonette.github.io/Jasonpedia/webcontainer/agent/hijack.json", "preload": { "background": "#ffffff" }, "options": { "url": "{{$jason.url}}" } } } } ] },
можно посмотреть полный JSON-код этого примера, который, кстати, занимает всего 48 строк.

▍Быстрая разработка «гибридного» приложения

Под «гибридными» приложениями обычно подразумевают обычные веб-приложения, «завёрнутые» в нативные мобильные приложения.

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

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


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

В этом примере я создал приложение, которое выводит сайт jasonbase.com в веб-контейнере, выступающем в роли основного элемента для визуализации данных.

Jasonbase - это бесплатный хостинг, который я создал специально для размещения JSON-разметки приложений, основанных на Jasonette.

На самом деле, это - обычный сайт, но я встроил его в Jasonette-приложение, в результате, при щелчках по ссылкам, вместо обычной процедуры открытия веб-страницы, вызывается нативный переход $href в нативном же элементе JASON.

Мне не пришлось дорабатывать код Jasonbase.com для того, чтобы создать это приложение. Я просто встроил веб-сайт в Jasonette-приложение в виде веб-контейнера и перехватил щелчки по ссылкам для обработки их нативными средствами, что, в частности, позволило воспользоваться переходами, и, при необходимости, позволит пользоваться и другими возможностями платформы, на котором работает приложение.

Код этого примера можно найти .

Итоги

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

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

  • Встраивание веб-контейнера в нативный макет.
  • Создание JavaScript-моста, позволяющего приложению вызывать функции из контейнера.
  • Создание системы обработки событий, благодаря которой контейнер может обращаться к основному приложению, вызывая нативные API.
Решением этих проблем, в случае с Jasonette, стало создание уровня абстракции, состоящего из следующих основных частей:
  1. Декларативный язык разметки, который служит для описания того, как именно веб-контейнер должен быть встроен в нативное приложение.
  2. Коммуникационный протокол (JSON-RPC), который, крайне просто, позволяет организовать взаимодействие между родительским приложением и веб-контейнером.
Не берусь говорить о том, что это - решение всех проблем, но я с удовольствием отмечаю, что то, о чём я тут рассказал, очень пригодилось мне.

Я пытался создать приложение, использующее новейшую технологию, у которой не было стабильной и надёжной мобильной реализации (и неясно было, появится ли нечто подобное в обозримом будущем из-за особенностей того, о чём я говорю). Однако, к моему счастью, имелась JS-реализация этой технологии, что позволило мне без проблем интегрировать её в приложение.

В целом, говоря о новых возможностях Jasonette, могу сказать, что то, что получилось, мне очень нравится. Вот, кстати, документация по проекту, отражающая нововведения.

Теперь мне хотелось бы сделать одно важное, на мой взгляд, замечание: «Большая сила - это большая ответственность». Возможности, которые обрёл проект Jasonette, огромны, поэтому, полагаю, разработчикам, пользующимся этим фреймворком, нужно помнить о балансе возможностей мобильных платформ и HTML, позволяющем создавать приложения, с которыми будет удобно и приятно работать.

Кто-то может взять Jasonette и создать приложение, основанное исключительно на веб-контейнерах. Такое «приложение» правильнее будет называть «веб-сайтом». Подобный подход ставит под вопрос необходимость создания выделенного приложения.

Я хочу обратить ваше внимание на то, что я не призываю к тому, чтобы всегда создавать приложения, в которых обязательно используются и возможности мобильных платформ, и HTML-страницы. Я лишь пытаюсь сказать, что подобный подход может оказаться полезным во множестве ситуаций. Однако тут важно не перестараться, не перейти границы разумного использования технологий.

В итоге хочу сказать, что существует множество ситуаций, в которых возможности обмена данными между базовым приложением Jasonette и веб-контейнером позволяют креативно и красиво решать самые разные задачи. Надо отметить, что здесь мы обсудили лишь основы. Самое интересное - впереди.

Уважаемые читатели! Планируете ли вы использовать Jasonette для разработки кросс-платформенных мобильных приложений?

Теги: Добавить метки