Bootstrapping мобильного приложения, или как немного сэкономить на разработке и публикации

ecc7cc9856dc48b0a76775c13b192818.png Token2.com предоставляет сервис двухфакторной аутентификации (2fa as a service) и изначально в качестве основного метода доставки одноразовых паролей (OTP) для второго фактора планировалось использовать SMS. На SMS завязывалось все, и сама технология и даже монетизация — сам сервис предоставляется совершенно бесплатно, пользователь платит только за пакет SMS. На данный момент планируется набрать базу пользователей и установить аппаратный шлюз для SMS — после этого себестоимость снизится, и будет возможно снизить цены для пользователей и начать получать прибыль с проекта.Однако, в процессе тестирования выяснилось, что надежность SMS оставляет желать лучшего: процент успешной доставки для многих операторов в странах СНГ не превышает 90% (тестировали как с интернет-шлюзами так и с аппаратными). Решение этой проблемы очевидно — авторизация с помощью мобильных приложений, однако никакого бюджета на это не предполагалось, а в команде людей с опытом разработки под мобильные платформы не было. В тоже время предлагать пользоваться другими приложениями (например Google Authenticator) не хотелось, а хотелось именно свое мобильное приложение, с функцинальностью не хуже, а в идеале, даже лучше существующих аналогов.

В этой статье я кратко опишу как мы решили это проблему с минимумом затрат и без привлечения сторонних разработчиков.

РазработкаПонятно, что заморачиваться с нативной разработкой долго и муторно, поэтому, немного погуглив, решили использовать Cordova/PhoneGap, благо у нас в команде фронтэнд-разработчик уже есть. Прототип на HTML5/Javascript сделали быстро, в качестве шаблона интерфейса использовали Twitter bootstrap.К слову сказать, само приложение состоит не только из интерфейса (см. описание приложения), нужен был доступ к камере и буферу, так что пришлось подключать плагины для phonegap. Оба плагина обнаружились в каталоге на build.phonegap в бесплатном доступе и подключились парой строк в config.xml. Кроссплатформенность тоже идеальная, допиливали только css для Windows Phone- там пришлось чуть увеличить размеры некоторых элементов.В эмуляторе все работало хорошо, сразу начали тестировать на Android устройствах, так как сервис build.phonegap на лету генерирует apk который можно сразу ставить на реальные девайсы. Выяснилось, что на некоторых устройствах интерфейс ощутимо подтормаживает. Методом тыка определили, что проблема в эффектах анимации прописанных в css стандартного шаблона bootstrap. Убрав все строки с анимацией во всех стилях, получили более шустрый интерфейс и решили уже публиковать приложение.

Инструменты Никакого специального IDE в разработке не использовалось (только обычный редактор текстов), на систему был установлен только NodeJS и пакет phonegap. Для отладки интерфейса использовался Chrome, для тестирования работы плагинов прекрасно подошел эмулятор Bluestacks App Player.Публикация Windows Phone Легче всего бесплатно опубликовать приложение получилось для Windows Phone. Мы воспользовались программой dreamspark для студентов. Для этого нужно или связаться со службой поддержки и отправить им скан студенческого билета, или при создании аккаунта использовать адрес почты на домене учебного заведения (.edu/.ac.uk и т.д). У нас такой адрес был (в команде был студент британского вуза), но даже если вы не студент, шанс воспользоваться этой программой все же есть (почитайте пункты 1 и 2 в этой статье). В рамках Dreaspark Student девелопер аккаунт предоставляется бесплатно на 2 года.Android В Google Play никаких скидок ни для студентов, ни для кого-либо другого не обнаружено, что не так страшно, так как при регистрации взимается единовременный взнос в размере всего 25 долларов США.iOS Для Apple App store мы вначале попытались воспользоваться программой iOS Developer University Program. Для этого почты на университетском домене недостаточно, нужно официальное письмо из факультета. Пообщавшись с сокурсниками, выяснили, что процесс может занять до полугода, поэтому пришлось заплатить 99USD за год подписки.Итог b27972ed34ba4d7daf8c2765745976c7.pngНаш бюджет на создание и опубликование мобильного приложения на трех платформах (iOS, Android, Windows Phone) составил всего 124 доллара США.В результате получилось достаточно шустрое приложение, полностью удовлетворяющее всем нашим требованиям.Помимо сервиса Token2, приложение можно использовать и для других систем: функциональность даже чуть получше чем у Google Authenticator, так как есть возможность защиты totp профилей пин кодом.Есть также поддержка стандарта Mobile-OTP, плюс Mobile-OTP с возможностью создания профилей путем сканирования QR картинки.Не будем утверждать, что приложение получилось идеальное, так что планы заменить phonegap-приложения на нативные для каждой платформы у нас есть. Однако, так как на данном этапе нам был нужен был скорее прототип, результатом мы довольны.

© Habrahabr.ru