Как в мобильном приложении. Евгений Малеев (Яндекс.Деньги): как подключить прием оплаты в мобильном приложении. Качества хорошего приложения

  • 30.10.2019

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

▍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 для разработки кросс-платформенных мобильных приложений?

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

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

Как зарегистрироваться в мобильном приложении Сбербанка

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

Первый шаг - подключить Мобильный банк

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

  • в банкомате;
  • через Контактный Центр;
  • лично в отделении.

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

Шаг 1. Зайдите в раздел "Информация и сервис".

Найдите кнопку "Подключить Мобильный банк"

Шаг 2. Выберите удобный тариф или .


Шаг 3. Введите цифры личного номера телефона.


Завершите операцию согласием "Подключить к своей карте" Мобильный банк. Можно приступать к установке приложения.

Второй шаг - скачать и установить Сбербанк Онлайн на телефон

Мобильное приложение – это программное обеспечение, предоставляющее доступ в систему обслуживания клиентов через интернет. В зависимости от типа своего устройства скачать Приложение можно в App Store, Google Play, Microsoft.

После установки необходимо зарегистрироваться:

Шаг 1. Кликните на Регистрация, если сведения утеряны или отсутствуют. Запишите номер карты.


Карту можно отсканировать, чтобы не вводить реквизиты вручную через соответствующий пункт. Если карта наделена payWave или PayPass, достаточно приложить ее к крышке смартфона, после чего номер отобразится автоматически в соответствующей графе.

Шаг 2. Пройдите проверку системы, подтвердите регистрацию.


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

Шаг 3. Задайте кода доступа в Приложение. Он содержит 5 знаков. С его помощью происходит вход в Приложение, следует его запомнить. Если смартфон оснащен функцией сканирования отпечатка, предложат использовать аналогичный формат для посещения Приложения.


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

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

Как настроить контроль за состоянием счетов онлайн

В Мобильном приложении можно отслеживать свои расходы, контролировать баланс, проводить перечисления, оплачивать услуги и др.

Просмотр баланса

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

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

Анализ доходов и расходов

Одна из интересных функций Приложения – Сервис анализа финансов. Смотрите обзор его возможностей.

Мой помощник. Сравнить свои поступления и затраты за месяц, сравнить с прошлыми периодами. Это поможет понять, увеличились ли расходы и доходы, сопоставить их между собой с целью контроля бюджета.
Получите полезные советы по использованию сервиса "Мой помощник" в Сбербанк Онлайн Расходы. Анализ расходных операций. Клиенту показывают категории, по которым он производил платежи в виде диаграммы.
Наглядная демонстрация позволяет оценить, по каким направлениям пользователь тратит больше всего денег Мои цели. Здесь можно создавать личные цели. С учетом запросов, Сбербанк предлагает открыть Вклад определенного типа или счет Копилку, с помощью которых можно достичь цели. Также можно откладывать самостоятельно, через кнопку Пополнить цель.
Задайте размер накоплений денежных средств, которого нужно достичь, и дату, до которой их собрать

Как переводить деньги через приложение

Наиболее частая функция использования карты – выполнение переводов. Разрешено отправлять деньги клиентам Сбербанка или в сторонние организации. Для взаимодействия с первыми предусмотрены упрощенные варианты переводов.

Внутри банка

Если зайти в Переводы, предлагают несколько возможностей:

  • между своими продуктами;
  • на карту другому лицу в Сбербанк;
  • в другой банк.

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

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

Комиссия за операции внутри Сбербанка не взимается. Лимит составляет 500 тыс. рублей.

В другой банк

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


Реквизиты банка записывать не требуется. Комиссия составляет 1%, ограничение по сумме – 30 тыс. рублей.

Подтверждение в каждом случае происходит по полученному в СМС коду.

Как совершать платежи через мобильное приложение

В разделе Платежи Приложения Сбербанк Онлайн можно оплатить по таким направлениям:

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

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

По QR-коду

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

Сохраните инструкцию, она пригодится для следующей оплаты счетов:

По шаблонам

В данном разделе предусмотрено право пользоваться шаблонами.


Создать шаблон можно только в полной версии Сбербанка Онлайн. В мобильной версии они будут доступны сразу же после одобрения банком.

Через Автоплатеж

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


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

Полезной будет услуга клиентам при оплате ЖКХ. Квитанцию за тоже можно.

Комиссия на операции

Платежи через Мобильное приложение выполняются с комиссией согласно тарифам Сбербанка. В среднем они составляют 1%, кроме отправки денег в государственный бюджет (бесплатно). Лимиты на операции повышенные – до 500 тыс. рублей, кроме оплаты мобильного телефона – до 10 тыс.

Тарифы, предназначенные для дистанционных сервисов, ниже, чем при использовании банкомата или личном выполнении в кассе Сбербанка.

Минимальное ограничение также действует на пополнение электронных кошельков (выполняется через пункт Остальное).

Другие возможности мобильного Сбербанк Онлайн

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

Подключение к Apple/Android Pay

В Приложении доступно подключить карту к Apple Pay или Android Pay, чтобы оплачивать в розничных точках одним касанием. При этом носить постоянно с собой не нужно, достаточно поднести устройство к терминалу и подтвердить платеж отпечатком пальца.

Активация происходит в Приложении. Требуется выбрать карту, к которой есть желание подключить сервис, и выбрать Подключить Apple Pay или Android Pay. Далее остается следовать инструкциям, которые не отличаются сложностью. предлагаем убедиться в этом через видео инструкцию:

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

Просмотр баланса Спасибо

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


Получение кредита

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

Открытие вклада

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


Заключение

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

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

Идея

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

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

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

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

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

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

Варианты монетизации

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

  • Бесплатное приложение. Обычно используется крупными компаниями, и приложение помогает продавать их товары или услуги.
  • Бесплатное приложение с рекламой. Используется в популярных приложениях, активно взаимодействующих с пользователем
  • Платное приложение. Самый популярный и доходный вид монетизации. С каждой продажи вашего приложения Apple берет комиссию в размере 30%.
  • Lite и Pro. Lite приложение бесплатно, но с ограниченным набором функций. Покупая Pro вы разблокируете весь функционал
  • Покупки внутри приложения - вы можете продавать новый функционал или новые уровни игры прямо из приложения

Разработка

Теперь у вас есть идея. Здорово, это уже полдела! Но что теперь? Мы предполагаем, что у вас, как и большинства людей, нет никакого опыта в программировании. И это прекрасно! Есть куча вариантов.

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

Хороший список отечественных разработчиков можно посмотреть здесь – ratingruneta .

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

Вот несколько вопросов, которые стоит задать вашему будущему разработчику:

Стоимость их работы?

На кого они работали в прошлом?

Являются ли их приложения успешными?

Буду ли я обладать всеми правами на приложение?

Есть ли у них опыт и знания, чтобы воплотить вашу идею в жизнь?

Под какие платформы (IOS, Android и т.д.), они могут создавать приложения?

Стоимость разработки

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

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

Если у вас уже есть некоторые наработки (например, макет и графика), вы можете значительно уменьшить цену. Еще один способ, снизить расход, предложить разработчику часть прибыли от приложения.

Чтобы приблизительно узнать, сколько будет стоить разработать приложение можно воспользоваться калькулятором howmuchtomakeanapp . Его создала канадская компания ooomf.com. Полученную цену можно смело делить на 2, и вы узнаете цену разработки у нас. Можно посмотреть также примеры уже созданных ими приложений с ценами – crew.co .

Размещение уже готового приложения на App store обойдется вам $99.9 в год. Размещение приложения на Android Market стоит $25.

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

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

  • исследуйте самые популярные приложения на рынке
  • в настоящее время, легче заработать деньги на приложениях для IOS
  • сделайте ваше приложение доступным для Ipad
Тенденции

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

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

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

Согласно аналитике Google, более 73% юзеров , которые совершали покупки в магазине, первым делом искали информацию о товарах с помощью мобильных устройств . Современный человек уже не представляет жизнь без гаджетов, поскольку смартфоны стали мощным каналом популяризации и продвижения услуг. Именно поэтому представленность бизнеса в интернете значительно влияет на степень лояльности клиентов. А разработка приложений для Android, iOS и Windows способствует повышению интереса к любому бизнес проекту.

Факты о мобильном мире

    Общая выручка в магазинах приложений за 2017 год — 90$ млрд.

    Доходы разработчиков для iOS в этом году выросли до 45%.

    Доходы от игр в магазинах App Store и Google Play составили 74% и 91% соответственно.

    Объем рынка покупок гаджетов в 2017 году достиг 215$ млрд.

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

Разработка приложений для iOS и Android происходит поэтапно. Поэтому временные рамки могут отличаться зависимо от трудозатратности определенного этапа создания. Приведем примерные сроки:

    Обсуждение программы с менеджером и составление коммерческого предложения занимает до 3-ех дней.

    Аналитика конкурентов и постановка целей конкретного проекта — около 6 дней.

    Составление ТЗ и прототипирование занимает от одной недели.

    Этап дизайнерского оформления занимает до трех недель.

    Написание кода зависит от сложности и занимает до двух месяцев.

    Тестирование приложений проходит примерно за неделю.

Для создания приложения необходимо определить:


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

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

    Руководителям отделов и целых агентств для ведения учета и администрирования.

    Начинающим предпринимателям, которые создают бизнес в сети или продвигают существующий ресурс.

Этапы разработки мобильных приложений

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

Процесс производства нового приложения обычно состоит из такой последовательности:


На что стоит обращать внимание при заказе мобильного приложения?

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