Increasingly Functional

  • About
  • tags

ClojureScript and React Native in 2022

November 7, 2022

Four years ago, I published the first version of Outboard, my iOS app for saving and organizing places, written in ClojureScript on React Native. While the experience of building a functional, reactive UI in ClojureScript was a dream, the experience of duct-taping the various fast-moving bits of Javascript build pipelines and compilation systems was not. Over the course of the four years since then, React Native has been through ten “minor” versions, each with major breaking changes, making upgrading to the current version a nearly impossible task. By contrast, all of my ClojureScript code worked perfectly on new ClojureScript releases, so I decided to simply lift the app code out, build a new React Native base underneath it at the current version, and put it back on top.

Continue reading

ClojureScript Type-Hinting & core.async Gotcha

January 28, 2021

In building the web frontend for Outboard, I am using Apple’s MapKit JS, which is delivered via CDN and not included in my application’s bundle locally. Under ClojureScript’s advanced compilation, this means there are places where type hinting for externs is necessary.

Continue reading

Building Native macOS Apps with ClojureScript

May 13, 2020

Thanks to Microsoft’s diligent open-source work, we can now build an app on macOS in a modern Lisp, with a connected REPL and everything. For those of us who remember the 90s, this is truly the dankest timeline.

Continue reading

ClojureScript, React Native, Krell, and Emacs

May 7, 2020

Update 29 September 2020

Continue reading

HTTP Fx for Re-Frame on React Native

June 25, 2019

Once you’ve grokked the Re-Frame philosophy for building truly reactive applications on React in ClojureScript, you will want to apply it everywhere. One obvious and ubiquitous application of effects is asynchronous HTTP requests, and of course there is an officially sanctioned library for handling these. One problem: it relies on an AJAX library that only works with the browser XHR implementation. So what can we do in React Native-based Clojurescript apps?

Continue reading
Prev Next

Powered by Jekyll with Type Theme