We were trying to target Android/iOS/Desktop with the same codebase using Kotlin Multiplatform, but that proved to be more complicated than anticipated. We are simplifying the scope of the project a bit by focusing on Android.
Co-authored-by: Severiano Jaramillo <severiano.jaramillo@gmail.com>
Reviewed-on: #1
- Created a new shared module 'crypto' that will contain crytography specific functionality.
- Added a class to validate data using the CRC-32 algorithm. We had to create a class to do this from scratch because there is no readily made library available for Kotlin Multiplatform yet.
- Configured unit tests in the crypto module to confirm that the CRC-32 functionality is correctly implemented.
- Introduced a Mnemonics class that contains logic to convert mnemonics to a valid Dero key and viceversa. This functionality is not complete yet.
- Introduced Mnemonics support for two languages for now, English and Spanish. Adding support for more languages is a matter of adding a new Mnemonics[Language] instance. We can do that later when necessary.
- Created a new stargate module that will contain the code to connect with the Dero nodes. This stargate module will use the ktor library, which is a multiplatform networking library that works on both Android and iOS.
- Added a bassic connectivity with a Dero node. It just connects with the node, listens for messages, and prints them out to the standard output.
- Introduced the ScreenModel library and created a basic ImportAccountScreenModel. ScreenModel classes serve to host all the logic for their corresponding screens.
- Added the Internet permssion to the Android app, to be able to connect with the internet.
- Removed the Desktop target. After discussing with Ken, we decided that investing on a Desktop app does not make sense. We will focus on Android and iOS only.