EOS REACH Open source Android app and eos-jvm libs
Since the beginning of August 2018 I have been developing EOS REACH, an open source EOS wallet for Android. The EOS scalability metrics touted by block one, and the ability for developers to front the cost of user actions is clearly something to get excited about. After my initial experiments with nodeos, I begin searching for an EOS SDK for Android, I was genuinely surprised to find that block.one had focused solely on eosjs for web apps. I have spent the last 6 weeks or so developing eos-jvm, a set of Kotlin libraries that streamline the process of pushing actions and interacting with nodeos.
eos-jvm
The modules composing eos-jvm are structured in a layered architecture, the intention is that frontend mobile developers will only need to interact with eos-jvm at the highest level of abstraction, and will not need to concern themselves with error prone tasks such as; generating keypairs, writing objects to abi bytes and transaction signing.
The SDK has been decomposed into 4 modules; eos-core contains the lowest level code and eos-chain-actions contains the highest level abstractions.
eos-core
- Contains the core building blocks required to interact with the EOS network. e.g; generating key pairs, crypto algorithms, hex writing, key signing etc.
eos-abi-writer / eos-abi-writer-preprocessor
- A local replacement of
abi_json_to_bin
, an annotation processor is used to generate theabi
byte writing boilerplate code.
eos-http-rpc
- An EOS client library that is used to make HTTP requests to the nodeos api.
eos-chain-actions
- Essentially an abstract class that accepts a list of actions, and then handles the complexity of packing / signing the transaction. A few of the common chain actions are bundled with the library, such as; createAccount, buyRam, sellRam, delegateBandwidth, undelegateBandwidth, transfer and vote.
Key benefits delivered
- Transactions are signed locally.
- Abi bytes are constructed locally.
- Actions can easily be composed, packed and signed by using the higher level abstractions provided by the eos-chain-actions module.
- The Android app is open source and can serve as a blueprint for how other developers might want to utilise eos-jvm. You can explore the app and see how I delivered the following functionality:
- Create account
- Import Key
- View accounts
- Transfer tokens
- View historic actions
- View account resources
- Delegate / Undelegate resources
- Buy / Sell RAM
- Vote for block producers or assign a proxy voter
- Pair the price of EOS with any fiat or cryptocurrency
- Choose which EOS endpoint
Roadmap
Over the next 4 weeks I will be finishing the EOS REACH app for iOS, it will be released as open source along with the swift equivalent of eos-jvm. I will also continue shipping frequent interations of the Android app, as well as posting some of the technical tutorials that have been requested by keen Android developers.
If you recognise the value in laying solid foundations for native app development on EOS, please vote for memtripblock
as a block producer.
Congratulations @memtrip! You received a personal award!
You can view your badges on your Steem Board and compare to others on the Steem Ranking
Vote for @Steemitboard as a witness to get one more award and increased upvotes!