35f90dbb · 21.05 19:32
UA EN

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

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

чоловік за ноутбуком на фоні графіків фінансових даних
ІндустріяФінтех
РозташуванняУкраїна
Розробка2021

Завдання

До нас надійшла бізнес-задача розробити SDK для мобільних платформ Android та IOS з використанням Kotlin Multiplatform для криптовалютної біржі.

Рішення

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

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

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

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

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

Kotlin Multiplatform Mobile architecture with iOS and Android apps

Розробка

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

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

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

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

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

Результат

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

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

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

    Android розробник

  • Антон
    Антон

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

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

Бюджет

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

Розробка логістичних рішень з генеративним ШІ

Допомагаємо транспортним і логістичним компаніям масштабуватися швидше:

  • 16+ років експертизи у логістиці
  • Повний цикл розробки ПЗ
  • На 30% швидша розробка завдяки AI
  • Наші клієнти: Ecolines і Нова Пошта

Дякуємо, що звернулися!

Ми отримали ваш запит і готуємо відповідь. Дізнайтеся, як індивідуальні платформи допомагають логістичним і транспортним компаніям ефективно масштабуватися.

Перегляньте наше портфоліо arrow