EOS REACH Open source Android app and eos-jvm libs

in #eos6 years ago

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 the abi 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.

Sort:  

Congratulations @memtrip! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

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!

Coin Marketplace

STEEM 0.18
TRX 0.13
JST 0.028
BTC 57738.58
ETH 3102.81
USDT 1.00
SBD 2.34