Native and browser SPA versions using re-frame, ClojureScript and ReactNative
summary
Rewriting a browser spelling-practice app into ClojureScript lets the team ship a single codebase that shares about 90% of logic between web and native using reagent + ReactNative via Expo. Architecture uses effects and coeffects so event handlers stay pure, returning effect descriptions that make unit tests trivial, while reactive subscriptions compute view data once and reduce renders. Platform differences reduce to a few effect handlers (storage, native APIs) and view event wiring; most business logic is identical.
AI-written summary · about
chapters (7)
- 0:00Introduction and context
- 3:47Effects and co-effects in re-frame
- 18:13Subscriptions and reactivity
- 23:20Design constraints and benefits
- 26:56ClojureScript advantages
- 31:35Code sharing between platforms
- 36:02Q&A and final thoughts
related talks
29mMobile Apps with ClojureScript
27mOn iOS with React Native and Clojurescript
28mCross-Platform React
34mClojureScript in Your Pocket
29mDesign decisions in React-based ClojureScript applications
25mGoing Native
41mReact Native - A native love story
53mHow React-Native shapes the way we think about native apps
