UA EN

ПопереднійНаступний

Розробка SDK для криптогаманця на основі Kotlin Multiplatform

ІндустріяФінтех
РозташуванняУкраїна
Розробка2021

Завдання: створення універсальної бібліотеки для криптобіржі

Перед командою Stfalcon стояло завдання розробити високонадійне SDK для мобільних платформ Android та iOS. Ключовою вимогою криптовалютної біржі було використання Kotlin Multiplatform для забезпечення ідентичної роботи алгоритмів на обох ОС, що є критичним для фінансових транзакцій та безпеки цифрових активів.

Рішення: єдина кодова база для Android та iOS з Kotlin Multiplatform

Однією із задач було об’єднати бізнес логіку та використовувати одну й ту ж кодову базу на різних платформах. Для цього ми використали технологію Kotlin Multiplatform, що дозволила використовувати одні й ті ж бізнес моделі, процеси, запити, внутрішню обробку даних і шифрування на усіх цільових платформах.

Об’єднання бізнес логіки дозволило:

  • використати ті самі методи для отримання даних та їх представлення;
  • ідентичну обробку помилок і проміжних станів.

До прикладу, обробка цифрових значень високої точності на обох платформах відбувається однаково.

Для взаємодії з UI додатків були розроблені інтерфейси, реалізація котрих жорстко визначить стани, формат отримання даних та помилок.

Розробка: Clean Architecture та спільні інтерактори

Розробка відбувалась в кілька етапів:

  • Ознайомлення з KMM і вимогами безпеки.
  • Формування, реалізація контрактів і запитів на API за допомогою apiary.io.
  • Розробка загальної архітектури SDK.
  • Розробка архітектури додатку та інтеграція SDK в додаток.
  • Правки SDK для коректної роботи корутинів на iOS.

Серед всього флоу розробки найважливішою була розробка архітектури для SDK. У ході розробки була взята Clean Architecture з використанням Interactor-ів. Також довелось виокремити платформозалежний код в окремий підмодуль з зовнішньою реалізацією безпосередньо на платформах. До прикладу, одним з таких виокремлень стали модулі RSA та HMAC.

Найскладнішим етапом була інтеграція SDK на платформи. Справа в тому, що в залежності від версії мови Kotlin, змінювався принцип генерації та експорту iOS модуля. Попередні підходи до генерації були видалені як застарілі, а нові працювали некоректно. Рішенням стала генерація 2 різних модулів під різні архітектури (на базі процесорів Intel і процесорів M серії) та подальшим мерджем в універсальний модуль. Фінальним рішенням став гібридний проект iOS та Android додатку, що використовував внутрішні залежності обох проектів з платформ.

Перемогою стала реалізація власного Coroutine Scope для iOS додатків, оскільки iOS та Android платформи мають різний підхід до роботи з потоками. Усі запити були обгорнуті в загальні інтерактори, які використовувались на кожній з платформ, що дозволило однаково опрацьовувати дані й обробляти помилки.

Результат

Ми створили універсальне SDK на базі Kotlin Multiplatform, що дозволило уніфікувати бізнес-логіку для iOS та Android. Рішення інкапсулює процеси шифрування, авторизації та зберігання даних, гарантуючи ідентичну роботу криптогаманця на обох платформах.

Команда проєкту:

  • Андрій Ж.
    Андрій Ж.

    Android розробник

  • Антон
    Антон

    Менеджер по роботі з клієнтами

Залишайте контакти, щоб дізнатися вартість розробки вашого проєкту

Бюджет

  • 10K
  • 20K
  • 50K
  • 100K
  • 150K
  • 200K