Is there anyone who can help build the Android applicaiton using Kotlin?

Hello. I’m Heesung Bae, a mobile front-end engineer from South Korea.

I’m interested in state-of-the-art software development trends(especially on Android), software architecture, and test-driven development.

In addition to the general software development, I am also into the blockchain technology itself, so I completed the “2018 Blockchain Developer Online Bootcamp” course certified by Consensys in 2018.

Status is one of the projects that I really love. In particular, I was very impressed when the team decided to switch over from Slack to Status for internal communications during the last Devcon.

I participated in the Status Korean meetup last week and heard the team is struggling on some problems with the 64 bit issue for Android. I’d like to contribute to Status by developing the Status Android application using Kotlin.

This is my first time contributing to an open source project, so I need some help generally. Are there any resources on this or is there anyone who is hopefully willing to do this with me?

3 Likes

Hey Heesung!

The person currently focused on solving the 64bit build issue is @pedro, he would know the most about it and could point you in the right direction. You can see the progress here:

4 Likes

Hey @hezo25, great to see your interest in the project. Have you tried following the development environment setup documentation in https://status.im/build_status/? The setup should be painless and not interfere with your machine setup, although you do need a good internet connection to download all dependencies (not that I expect that be an issue in South Korea :slight_smile:) .

Regarding the 64-bit Android issue specifically, I’m finishing up the fix at the moment, which mainly consisted in upgrading the project to React Native 0.60.5 and enabling the Hermes JavaScript engine. The JSC engine for some reason locked up the UI thread when calling a 64-bit Go library, and fortunately that doesn’t happen with Hermes (and gives us a huge performance boost in the process).

6 Likes

Hello and thank you for your interest in the project!

Status is currently composed of 2 pieces, which are status-go and status-react.
status-go provides the low-level ethereum related stuff as well as the api to manage data for the app, while status-react is a react-native app that consumes status-go through native-bindings.

Building the Android application using Kotlin would most likely imply rewriting the equivalent of status-react in Kotlin, which means rewriting the entire UI as well as a lot of logic that is in status-react. This will be a difficult task and you are less likely to receive help from core contributors who are focused on releasing v1 at the moment, but you can use the codebase of status-react as a resource for how things works and how to communicate with status-go.

Alternatively you could contribute to status-react, either by proposing a rewrite of status-module in Kotlin instead of Java if you feel like it would be an improvement, or proposing improvements to the current Java part of the codebase. You could also start doing some Clojurescript as a few external contributors have been doing lately.

In any case all efforts are welcome!

7 Likes