cljsrn

viesti 2025-07-12T06:50:22.450009Z

Just piping out that I'm in a project that is just about to release a wellbeing app to iOS store (we are in private beta now) The app has been built with ClojureScript, uses a re-frame fork https://github.com/metosin/si-frame for reactivity and UIx. We've had a blast on building it, using Expo. There is also hardware involved, talking to a wristband device over BLE, making a custom Expo module has worked very well too (it's actually realy pleasant to wrap native APIs with Expo) modules. The being able to Repl to an app via shadow-cljs, even when it is running on background, and fire commands over bluetooth to a device is just awesome in a nerdy kind of way :D

๐Ÿ‘ 8
raspasov 2025-07-12T07:08:00.986259Z

Expo is great!

๐Ÿ’ฏ 1
raspasov 2025-07-12T07:08:18.990199Z

Theyโ€™ve done an outstanding job running that project.

viesti 2025-07-12T07:13:13.222489Z

Yeah, I was pleasantly surprised with Expo modules specifically, had done some Objective-C back in the day, skipped Swift, and now dipping into Swift actually went well, the Expo modules scaffolding was a surpricingly pleasant experience, kind of thought that FFi would have been more icky (it was 9 years since last React Native project, had forgotten all FFI stuff :D)

raspasov 2025-07-12T07:16:47.841259Z

I have written a CLJS + ReactNative + (a bit of) Expo + Swift components app. Worked as expected from what I remember, no complaints.

๐Ÿ‘ 1
raspasov 2025-07-12T07:17:56.999079Z

Swift is definitely a nice upgrade over Objective-C; The worst part is if you need to use old-school Objective-C interfaces, thatโ€™s a bit icky from Swift. But I think those are getting fewer and fewerโ€ฆ

viesti 2025-07-12T07:25:17.881589Z

Yeah, kind of have this "ok I know what is underneath" feeling ๐Ÿ˜„, but yeah Swift is quite pleasant compared to Objective-C maybe it's the "vacation starting" feeling that makes me forget the "type checking didn't complete in time" errors and figuring out what the types should be, but even those occasions (messing with dictionaries and compiler is like "what are you doing") weren't so many ๐Ÿ™‚

viesti 2025-07-12T07:29:41.374539Z

maybe it could be more dynamic, I remember Java JNA + Objective-C FFI, might remember wrong but I think you could in java side "send message" to object, might be possible to make a call just in jvm/repl without recompile/restart, not sure if possible to go as dynamic as that in a JS vm, but I did get into a flow in this CLJS/RN app where types helped enough and most logic was in CLJS land, though it would be cool to be able to load new JS onto phone and dynamically make native calls ๐Ÿ™‚

Roman Liutikov 2025-07-12T07:45:29.645139Z

Nice! You should give a try to Nitro Modules also https://nitro.margelo.com/ Iโ€™m currently working with Margelo team, lots of good RN packages coming from these folks

โค๏ธ 1
viesti 2025-07-12T07:51:57.033329Z

Neat! I think there is still much I don't know of ๐Ÿ˜„ Immediate examples seem more like TS -> native, was wondering stuff like "get instance of CBCentralManager and poke on it", so like expose native thing and call on it dynamically