Alice’s Technical Proposal

Mark Pereira
Zed Labs
Published in
5 min readMay 2, 2019

TLDR; we’re changing the world as we know it.

How are we going to build crypto super apps?

On the road to a better User Experience there are a few hurdles to get over, and processes to iron out but we’ll go over a few major ones.

An overview of our architecture

React Native Mini Dapps

Mini dapps on top of the Alice architecture

Through a survey we’ve identified that 70% of cryptocurrency applications are written in React. To make the transition from web to mobile as easy as possible, and to prove the theory that mobile is where companies should focus their attention. We are making it super easy for companies to move most of their React application’s logic into a mobile app. Then the focus would be on bringing an engaging mobile experience through their interface (front-end) code as the view elements for React Native are different from the React html elements.
Also, what’s the added benefit of building your app in React Native? Build it once and it runs on both iOS and Android.

Building your app into Alice

The model we are focused on in the beginning is working closely with the first applications wanting to build into our platform so they are shipped with the release of Alice. This is so that while building out our SDK, we can work closely with developers to address their pain points and needs so that the next wave of developers can have as painless an experience as possible. To start off building into Alice, fork our repo in github then start building your app into the /Apps folder. Submit your pull request, we’ll review it, then we’ll push it to our App. We’re also working on some magic open sauce (source) code that doesn’t require the app to update in the app store to add mini dapps to a user’s phone.

3 main things are required to make the platform fully open:

  1. A distribution mechanism for applications building mini dapps so that they don’t ship with the Alice app but a user can choose to download it.
  2. An Alice SDK which has the basic features needed for a mobile crypto app.
  3. A fully functioning mobile wallet for iOS and Android.

Alice SDK

Our Alice SDK overview

If you’ve built a crypto app in React Native, you’re probably bald by now. It becomes extremely painful. As you can probably tell, I stopped before I tore all my hair out. But we’ve got the rogaine you’ve been waiting for. (The stuff Elon Musk used). The Alice SDK.

In the Alice SDK, we’re building out a react-native-web3 library that bridges javascript code to native crypto threads. Avoiding all the hacky, React Native architectures out there and adding a painless, more secure solution for mobile development. This means that applications can build their apps using React Native without the stress of having to build out the entire wallet architecture for their apps or have to worry about building out complicated crypto libraries. You’re welcome.

There are many other components to the Alice SDK which developers will be able to access to bring super engaging, mobile experiences to their users. These come in the form of : —

  • React Native Web3 Bridge
  • Camera Access
  • Push Notifications
  • Location features
  • Smart Contract Wallets
  • Layer 2 networks
  • More to come…

Yes, for both iOS and Android!

iOS / Android Wallet

An Android / iOS native wallet to build atop

We will be building out our wallet in native iOS and Android codebases (iOS: Swift/Objective-C, Android: Kotlin/Java).

This is because of 3 main reasons:

  1. Performance
  2. Security
  3. Access to mobile features and extensions offered by iOS and Android

Performance

If we want this app to truly be a super app we have to maximize performance wherever we can. To push the app to the extremes in both the first world’s demand for innovative bleeding edge features, this is needed. To have this app run on low end smartphone devices which are performance poor, to access the people who need it the most, this is needed.

Security

If we want developers to roam freely with their React Native code, there needs to be a decoupling of interface level code from code prompting users to sign messages, send transactions or interface with smart contracts. We also want user’s to feel as secure as possible by utilising the secure enclaves that exist within smartphones.

Access to mobile features

This is the part where as a company we would love to become super creative. At ETHDenver, Franky Aguilar and myself built out an iMessage extension app called BattleBombers. The idea was to start expanding crypto wallets’ capabilities into native mobile features. This opened up whole new ideas for us to explore within Alice as we progress. Imagine NFC payments, payments from your smart watch, ERC721 tokens in your Apple Wallet, iMessage games, iMessage payments, widgets in Android.

We understand this is no easy task but nothing worth building ever is. Hence, this article was written to open a dialogue between myself and developers in the space to totally envision the product. So please, comment, highlight, poke holes, add criticisms, add valuable insights or even help contribute snippets of code to our github repo! I hope this article finds interested people and I’m so excited to continue building out Alice with all of you.
You can also reach me or Alice at:

telegram: @markper
twitter: @markpereir
@heyaliceapp
alicedapp.com
Github

--

--