2. What is Eaze?
Eaze is a technology platform helps our cannabis industry partners
build sustainable cannabis businesses. The platform connects
consumers with cannabis brands through dispensaries and their
drivers to order marijuana on demand. Our platform helps cannabis
businesses comply with regulations, manage inventory, and safely
deliver products to customers.
7. • Can Eaze even get into the app store?
• Iterate quickly
• Share resources (people!) with front
end
• Share code with web
Decision to use React Native
8. Before I joined
• No employed app developers
• One iOS contractor
• One very part-time Android contractor
• Sizable front-end team on React JS
Decision to use React Native
9. I joined Eaze
• No employed app developers
• One iOS contractor
• One very part-time Android contractor
• Sizable front-end team on React JS
• One full time Android developer - ME!
Decision to use React Native
10. I joined Eaze
• No employed app developers
• One iOS contractor
• One very part-time Android contractor
• Sizable front-end team on React JS
• One full time Android developer - ME!
Decision to use React Native
• Consumer app V1
• Driver app legacy code
11. I joined Eaze
• No employed app developers
• One iOS contractor
• One very part-time Android contractor
• Sizable front-end team on React JS
• One full time Android developer - ME!
Decision to use React Native
• Consumer app V1
• Driver app legacy code
• Driver app V2!
12. I joined Eaze
• No employed app developers
• One iOS contractor
• One very part-time Android contractor
• Sizable front-end team on React JS
• One full time Android developer - ME!
• One full time iOS developer
Decision to use React Native
• Consumer app V1
• Driver app legacy code
• Driver app V2!
• Consumer app V2 (native navigator,
code rearchitecture)
14. Moved to native Kotlin app for Android
• Now have the resources to support it
(not just me)
• Better performance
• Native design patterns
• Material UI and transitions
• Better support and more standard
libraries
• Fully native navigation
• Better velocity of development
• Improved performance
16. Velocity: write code once
• Often fewer short-term gains due to
overhead in writing glue code
• Have to rearchitect existing JS code
• Possibly long-term gains
• Tooling is difficult (CI, unit tests, etc)
17. Parity
• Holy grail: Repo shared among
web, iOS, and Android
• Will always have velocity tradeoffs
(i.e. writing calculation code in
selectors that is redux-agnostic)
20. • Poll endpoint for timestamp
• Add range padding for order position
in queue
• Determine status:
Selector logic
21. React JS to React Native is
straightforward: just create an NPM
module.
22. Sharing code
with native
Android app
• Modularize shared code
• Set up Android app for RN
• Android to JS communication
• JS to Android communication
23. “React Native bridge is
asynchronous, so the only way to
pass a result to JavaScript is by
using callbacks or emitting events”
https://facebook.github.io/react-native/docs/native-modules-android.html