Разработать iOS SDK для CleverPay

Цена договорная • наличный расчёт, безналичный расчёт, электронные деньги
04 февраля 2019, 18:22 • 4 отклика • 41 просмотр
Вступление

CleverPay — это сервис, предоставляющий интеграторам возможность управлять биллингом внутри приложения удалённо и вне релизного цикла. Сервис разделён на две составляющие:


  • SDK, встраиваемый в мобильные приложения для iOS и Android;

  • бекенд, с которым SDK взаимодействует.


Техническая реализация

SDK

Наибольшая часть кода SDK реализована на JavaScript. Сделано это для переиспользования бизнес-логики SDK между обеими мобильными платформами.


Также существует прослойка, реализованная нативно на каждой из платформ. Она решает несколько задач:


  • запускает JavaScript-рантайм (невидимый WebView);

  • предоставляет JS-рантайму нужные нативные методы в пользование (например, запуск процедуры in-app purchase);

  • предоставляет публичное API для интегратора;

  • управляет показами видимых WebView с контентом, которые запускаются JS-рантаймом.


Реализованный код

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


Задание

Реализовать нативную часть SDK для Android (Kotlin) и iOS (Swift/Obj-C).


Общий флоу выглядит так:


  1. инициировать рантайм с установленным кодом;

  2. предоставить рантайму следующие нативные методы в пользование:

    • покупка продукта;

    • фетчинг данных продукта;

    • восстановление покупок;

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

    • получение произвольной строки из кеша по ключу.



  3. предоставить публичное API для подписывания на основные сущности SDK по спецификации. Подписка реализована через асинхронное общение между рантаймом и нативом путём вызова методов с передачей уникального ID подписки;

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

Подробное ТЗ находится в разработке и будет готово до середины февраля.
Формирование стоимости за проект или объем часов целесообразно после получения исполнителем полноценного ТЗ.