Перенести библиотеку с React на Kotlin Multiplatform, чтобы ускорить работу криптоприложений на мобильных устройствах.
Разработали библиотеку на Kotlin Multiplatform для работы с криптокошельками. Такая библиотека будет быстрее работать на мобильных устройствах.
Сделали приложение-шоукейс с открытым кодом, чтобы сторонние разработчики могли своими глазами посмотреть на принципы работы библиотеки и интегрировать ее в свой проект.
Зачем нужна эта библиотека. Изначально компания Symbiosis Labs Ltd обратилась к нам с задачей сделать приложение для свободного обмена криптовалютой. Но уже в процессе разработки приоритеты сменились, и основной задачей стало разработать библиотеку на KMM для работы с криптокошельками.
Блокчейн-системы изначально были написаны на JavaScript, потому большая часть инструментов для них также написана на JS, в данном случае у заказчика была библиотека на React JS. Однако мобильные устройства не умеют самостоятельно работать с этим языком, поэтому во всех приложениях на JS для смартфонов используется эмулятор. Из-за этого, лишнего, посредника выполнение команд проходит медленнее и сам процесс требует больше вычислительной мощности.
Как мы создавали библиотеку. Этот процесс включал в себя два этапа: чтение спецификации и перевод с React на Kotlin.
Спецификацию необходимо было привести в порядочный вид, из-за чего ее прочтение заняло несколько дней. Но это все равно получилось быстрее, чем если бы мы просто переносили код с React.
А на втором этапе мы брали JS-код заказчика и переписывали его на Kotlin. Дополнительная сложность была в том, что код JS-библиотеки был завязан на React и приходилось переписывать с React-подходов на Kotlin, а именно избавляться от хуков.
Где можно посмотреть на работу библиотеки. В сопровождение к библиотеке мы сделали приложение для обмена криптовалютой между разными блокчейн-сетями. У приложения открытый код, чтобы сторонние разработчики могли посмотреть принципы работы библиотеки и интегрировать ее в свой криптокошелек.
Оригинальная библиотека клиента написана с использованием React. Требовалось очень внимательно переносить код из одного подхода в другой, с сохранением всей работоспособности.
Необходимо было вникать в код, переписывать его, а затем несколько раз проверять. И все равно возникали неточности, которые потом было сложно находить, так как итоговый код сильно отличался от оригинального.
Разработали библиотеку на KMM для работы с криптокошельками. Такая библиотека будет работать эффективнее, чем аналогичная на JavaScript. Между командой и исполнением в нашей библиотеке нет посредника, поэтому программа выполняется быстрее и требует меньше вычислительной мощности.
Сделали приложение для наглядной демонстрации работы библиотеки. Внешние разработчики могут изучить ее изнутри и интегрировать со своим криптокошельком.
Теперь у нас есть готовое решение для подобных задач, которое уже функционирует и готово к интеграции.
Что делать с библиотекой:
Из-за того что блокчейн изначально писался на JavaScript, все, что для него пишут, тоже выходит на JS. Теперь есть альтернатива.