Publishing an iOS App with ClojureScript and React Native
increasinglyfunctional.com
increasinglyfunctional.com
Is this still a pro? Reactive programming is very popular in Native Android development and I assume as well on iOS with RxSwift and similar libraries.
I worked on a React Native app for a while and am sure to never return to it. Constant breaking changes, bad/lacking native implementations, and hacky ways of implementing natively supported features like Dialogs/Bottomsheets on Android make it a no-go.
I find clojure/script to be too dense for my taste in most examples. I actually really prefer a few more LoC, so that's a poor metric for effectiveness. Your IDE can deliver far more savings in time while encouraging more LoC often.
These general purpose functions can then be composed to do declarative data transformations. This results in code that's largely declarative where what's being done is decoupled from how it's done.
It's not just about having less code, but about eliminating noise and incidental code. My experience is that ClojureScript does a very good job in this regard compared to most alternatives such as TypeScript.
There is no substitute for a real REPL and immediate code changes.
I have a cljsrn app still on expo 23 and it's turned into kind of a trainwreck to update. considering dropping expo for vanilla re-natal
I expect it to get harder though but this being a side project I'm not that worried.
My next option is to put MacOS on a VM in Arch Linux, but ideally I'd like an easier solution before I go down that route...
The easiest way to try it is at https://snack.expo.io/ , which is an in-browser dev environment for React Native. All you need is the Expo app on your iPhone or Android.
Disclaimer: Expo supports my work on React Navigation, the JS navigation framework for React Native. But I would recommend them regardless!
If you don't know the iOS or Android build chains I would imagine that its confusing and troublesome, but unless you are doing some fairly extensive native compatibility stuff you will reap great efficiency benefits from adding it to an existing app.
Same. Been leading the native side of an app with 30-40 native devs and ~20 JS devs. Initial integration is easy, but it opens up a lot of problems as time goes on.
I loved Clojure when I used it, but ClojureScript was a nightmare.
The only saving grace was shadow-cljs, which made it bearable to work with. I eventually dropped it in favor of Elm mostly for the static typing, but also for the tooling, which is leaps and bounds better.
I'm not really sure what you mean regarding the interop either. It works quite seamlessly in my experience, and it's much easier to do than it is in Elm where you have to use ports, and keep all your interop at the edges.