Мобильное приложение для оплаты через bluetooth-терминал Stripe
О проекте и задаче
Лондонская компания Metaverse VR Technology Ltd, специализирующаяся на ПО для интерактивного досуга и бизнеса, обратилась к нам за разработкой мобильного приложения для приема POS-платежей через bluetooth-терминал Stripe. На наши плечи легла не только мобильная разработка на языках Swift и Kotlin, но и дизайн приложения. По готовности приложение требовалось опубликовать на маркетплейсах для платформ iOS и Android.
Суть приложения
Принцип работы программы заключается в подключении мобильного телефона к терминалу Stripe через Bluetooth. После пройденной аутентификации клиенту открывается удобный интерфейс, где он может указать необходимую сумму перевода или выбрать товар для покупки в разделе «Продукты». После этого терминал принимает и обрабатывает данные (местоположение, сумма и секретный ключ клиента) и деньги списываются с банковской карты.
Дизайн и анимация
Разработке дизайна было уделено особое внимание. Внешний вид приложения отличают лаконичность и простота. Бело-зеленая гамма, согласованность элементов дизайна и отсутствие лишних деталей упрощают (а значит улучшают) взаимодействие пользователя с бизнес-продуктом в области платежей.
Без анимации в мобильных интерфейсах не обойтись. Она не только оживляет приложение, вызывая положительные эмоции, но и помогает пользователю ориентироваться в нём и получать отклик на свои действия. В реализации проекта был использован инструмент LottieFiles.
Инструмент Lottie значительно ускоряет процесс разработки мобильного приложения.
Безопасность мобильных платежей
Большинство пользователей платежных мобильных приложений переживают за безопасность своих личных данных. Поэтому всё больше разработчиков обращаются к такому инструменту как Stripe. Что говорить, если такие мировые компании, как Shopify, MindBody и DocuSign создали интеграцию с технологией Stripe для приема онлайн-платежей.
Stripe — международная система защищенных онлайн-платежей для интернет-проектов. Система легко встраивается на сайт, имеет понятный интерфейс оплаты, что важно для конверсии из заявки в покупку, а также позволяет выстроить целую платежную инфраструктуру для бизнеса. Stripe отличает высокая скорость обработки платежей и безопасность, а с точки зрения бизнеса — очень удобные средства интеграции с сайтами.
В нашем случае Stripe выступает посредником между покупателем и продавцом, который проводит безопасный платёж. Stripe решает все проблемы платежей картами, включая хранение данных, периодические платежи и выводы на банковский счет. Данную технологию мы применили в разработке приложения и на Android, и на iOS.
Реализация на Android
Наши разработчики побеспокоились не только о безопасной интеграции, но и о высокой функциональности приложения. Кроме мощного и современного языка программирования Kotlin на отдельных этапах разработки было использовано множество других технологий:
- Передача данных на сервер реализована с помощью Retrofit 2. Данный инструмент позволяет легко получить и загрузить JSON или другие структурированные данные через веб-сервис на основе REST. В Retrofit используется библиотека OkHttp для HTTP-запросов.
- База данных создана с помощью технологии PaperDb. Это NoSQL-подобное хранилище для объектов на Android, позволяющая вносить и автоматически обрабатывать изменения структуры данных.
- Архитектура приложения была построена при помощи LiveData — технологии, которая хранит данные и связывает объекты с жизненными циклами Android-компонентов.
- Работа с фрагментами и анимацией осуществлялась при помощи Jetpack Compose Navigation — технологии, позволяющей разработчику задавать граф навигации для переходов между экранами через URI.
- Динамический список был создан с помощью библиотеки RecyclerView.
Также для упрощения разработки приложения была использована технология Jetpack — это широкий набор библиотек и инструментов, помогающий писать такой код, который будет одинаково работать на всех устройствах и версиях Android.
Пожалуй, с разработкой приложения на Android всё. Делимся с вами результатом в виде готового продукта:

Реализация на iOS
Приложение для «яблочных» устройств написано на языке программирования Swift, разработанном компанией Apple.
Архитектура приложения выполнена с помощью шаблона программирования MVC (Model-View-Controller). Благодаря ему логика всего приложения делится на 3 основных компонента:
- Model — отвечает за логику данных, лежащую в основе приложения;
- View — видимая часть приложения, с которой непосредственно взаимодействует пользователь;
- Controller — мозг приложения, связывающий 2 предыдущих компонента.
Пользовательский интерфейс приложения построен с помощью библиотеки UIKit. Она включает в себя «родные» элементы интерфейса Apple: виджеты, флажки, индикаторы выполнения и кнопки навигации. Данная технология оптимизирует процесс проектирования и экономит время разработки (а значит и деньги клиента).
Для передачи и получения данных мы использовали Alamofire. Это библиотека с элегантным интерфейсом и множеством функций для разработки современных приложений с использованием сетевых запросов HTTP.
Тестирование приложения
Пожалуй, это самая сложная часть проекта, и сейчас мы объясним, почему. Для тестирования приложения нам был необходим терминал Stripe. Но терминала у нас не было, и нам приходилось отдавать продукт для теста непосредственно клиенту (к чему он был изначально готов).
Тестирование приложения на Android стало возможным путём генерации в Android Studio его дебага-версии — собранного приложения, которое клиент мог легко установить на свой смартфон. iOS-версию мы тестировали с помощью специального сервиса Apple Inc — TestFlight.
Приблизиться к релизу нам мешал сбой Bluetooth-подключения из-за длительного обновления Stripe Terminal. Спустя 15 тестовых релизов Android-версии и около 20-ти релизов iOS-версии мы выявили причину бага, дали терминалу «подумать» в течение 7 минут и connect с приложением наконец состоялся.
Затем мы опубликовали приложение в маркетплейсах и успешно прошли модерацию. Это можно легко проверить, введя название приложения «Instant POS» в поисковое поле Google Play Store или App Store.
Итоги
Для создания эффективного приложения в сфере онлайн-платежей нам понадобилась экспертиза дизайнера и двух мобильных разработчиков, не считая организационных навыков опытного project-менеджера. В составе такой dream-команды нам удалось реализовать доступное и в тоже время высокофункциональное мобильное приложение для интеграция с bluetooth POS-терминалом, с помощью которого можно легко и безопасно совершать денежные платежи и переводы.