SCF #9
Kotlin Stellar SDK
by

Interact with Stellar using idiomatic Kotlin and share code across platforms.

Awarded
Budget request:
$
*
WebsiteCode

Project Stage

Development

Category

No items found.

Based in

The Netherlands

Team size

Active since

May 2021
Products & Services

Kotlin Multiplatform allows developers to share code between mobile, desktop and browser. A popular use of Kotlin Multiplatform is to share code between Ios and Android or between the backend, Ios and Android.

I am planning to create a multiplatform Kotlin SDK for Stellar. This will allow Stellar developers to share code between different platforms

Kotlin can run on the JVM, so developers can use the Java Stellar SDK. However, using Java libraries in Kotlin can be weird or feel out of place. Creating a Stellar SDK specifically for Kotlin will improve the development experience of Kotlin developers.

No items found.
Previous Project(s)
No items found.
Progress so far

I am currently experimenting with the design of the SDK. Currently, the SDK can only query the accounts Horizon endpoint.

Goals

In six months:- The SDK will be able to query all of Horizon's endpoints.- The SDK will support creating and submitting transactions.- The SDK will not be fully tested.

To get there, we request a budget of  
$
*
  to:

Currently, I am working on the project in my free time. Receiving a grant would allow me to allocate more time to the project.

Additional information

PROBLEM & SOLUTION

Kotlin is a relatively new programming language that can be run on the JVM, browser, Android and Ios. Since Kotlin became Google’s preferred language for Android app development, more and more developers have started to use it. However, currently there is no Stellar SDK specifically for Kotlin. In most cases developers can use the Java Stellar SDK instead. However, using Java libraries in Kotlin is often not ergonomic.

Aside from being popular with Android developers, Kotlin is also popular with developers that have to develop apps for multiple platforms or share code between the backend and frontend. For example, if a company has an Ios and Android app, they can write their core logic in Kotlin and create a separate Ios and Android UI. However, currently it is not possible to share code involving Stellar since there is not a Multiplatform Kotlin Stellar SDK.

To solve these two problems, I am creating a Multiplatform Kotlin Stellar SDK. It will have an api that is less cumbersome to use than the api of the Java Stellar SDK. Currently I am planning to support The JVM, Javascript and Native targets.

REVENUE MODEL

The SDK will be a free open source project.

THREATS AND OPPORTUNITIES

Kotlin Multiplatform projects rely on other Multiplatform projects. For example, to query horizon the SDK relies on a Multiplatform http library. If there are no Multiplatform libraries for something the SDK needs, I will have to create my own. Most of the time this will not be a big problem, since Multiplatform libraries can be created from platform specific libraries. However, it would take development time away from the SDK.

Pitch deck
No items found.
Deliverables
First Deliverable

I think it is hard to create a budget for this project, but I will try to create a rough budget.  I believe that this budget is very conservative, but I'd rather apply again later if it becomes necessary than ask for a larger amount.

Horizon endpoints -> $1500
- From my experience implementing the Accounts endpoint, i don't think this will require much effort.

Implementing libraries that aren't available for Kotlin Multiplatform -> $5000
- Kotlin Multiplatform is a new technology, many libraries aren't available for it. For example, there are no libraries available that support the HAL format and also no libraries that support the cryptographic functions needed.

Creating, serializing and deserializing transactions -> $5000
- Aside from implementing the logic that allows for creating transactions, I believe most of the time will be spent figuring out the XDR format since there isn't a library for it.

Links:

Team

Rahim KlabérCreator of the projectI am a MSc Computer Science student who is interested in Blockchain and Distributed systems. I am particularly interested in Stellar.LinkedIn