Fork me on GitHub
#cljsrn
<
2020-09-29
>
Niclas06:09:19

@zackteo This project is a good starting point imo https://github.com/PEZ/rn-rf-shadow

thanks2 3
zackteo11:09:07

I had issues with this the other day cause there's issues with the expo app(?) on android

Daniel Tan08:09:49

without shadowcljs

dotemacs08:09:16

But it’s alpha software if the author of it is to be believed @danieltanfh95

dotemacs08:09:51

The odd thing is that on http://cljsrn.org site we still have outdated info about how to start, with projects that are a bit long in the tooth. The next thing is, whichever approach you choose, you still have the fork in the road: - doing it via react-native “native” - or doing it react-native via expo

Oliver George09:09:03

I wonder if we could run a survey to give insight into which approaches are common / proven effective.

👍 3
dotemacs09:09:03

Sounds like a good idea. Maybe we can just throw some questions here and then create a public form that we’d let people to fill in

dotemacs10:09:59

The list of questions (Please add them in thread)

👀 6
💪 3
dotemacs10:09:24

* What stack do you use for your cljsrn app?

dotemacs10:09:06

* Did you compose this stack yourself or did you use some template? If you used a template, which one did you use?

dotemacs10:09:41

* What is your app, if published in App/Play store?

Oliver George10:09:57

* how complex is the app UX?

dotemacs10:09:59

* What testing approach do you use? Unit tests, end to end tests? And what libraries/tools do you use for it?

Oliver George10:09:45

* do you have a one step deployment process? If so, which one? (e.g. fastlane)

Oliver George10:09:46

* do you design UX in CLJS or JS (e.g. as a own component library)?

dotemacs10:09:10

* What build tool do you use and why? (e.g. Leiningen, Krell, shadow-cljs, Boot…)

dotemacs10:09:58

* What do you use react-native Expo or just “plain” react-native? And why did you go down this route?

Oliver George10:09:08

* what tooling do you use to improve the development experience? (e.g. StorybookJS, re-frame-10x, re-frisk, Chrome debugger console...)

Oliver George10:09:12

* Would you recommend your approach? What use cases is it good for?

dotemacs10:09:45

* What UI toolkit did you asses and what UI toolkit did you settle on? What were the pros/cons of each?

Oliver George10:09:01

* What does CLJS give you that you'd miss doing the app in JS?

dotemacs10:09:06

* Are there any parts of your app that use JavaScript for? Why did you take this approach? And what is your setup to share the code with ClojureScript?

Niclas11:09:11

* Have you had to write your own native modules?

Niclas11:09:33

* Have you made any hacks to make the cljs compile output compatible with the RN bundler?

jthomson17:09:17

* What performance bottlenecks have you hit - either in CLJS or RN?

joshmiller18:09:08

* What editor/IDE setup do you use for development?

joshmiller18:09:26

* Did you choose RN in order to be cross-platform, or just to be able to use Clojure?

djanus12:10:25

* Are you using any native/JS libraries that you've found difficult to interop with from CLJS?

djanus12:10:46

• Are you targetting iOS, Android, or both?

Oliver George10:09:07

Pretty sure step two is we start a podcast and use those as interview questions.

😉 3
❤️ 3
pez10:09:51

Sounds like a logical next step! 😃

ullrich11:09:50

At Pitch we started with re-natal and then moved over to shadow (https://github.com/PEZ/rn-rf-shadow was a big inspiration). We took a quick look into Krell but it didn’t solve the main problems we still have (Sourcemaps and hot reloading vs fast refresh). So we’re still on shadow and really happy with it.

👍 3
ullrich11:09:00

We haven’t gotten around sharing much details about our stack yet, but I hope we find time to do so later this year. Here’s are some corner points though: The mobile app is build on a classic stack using react-navigation et al. There’s a lot of code reuse with our web app: API/Sync client, Authentication logic, Domain logic, re-frame utils. Also we do use re-frame in both apps, but use a different DB structure and different handlers/subs because the apps differ quite a bit. In our handlers and subs we try to rely on as much common domain logic as we can.

ullrich11:09:00

I’m happy to share more. Please ping me as I’m not hanging out on Clojurians nearly enough. Also something I want to change 😄

joshmiller18:09:52

http://cljsrn.org accepts pull requests, so maybe some updated info could be added there

joshmiller18:09:44

Someone should definitely add a paragraph up top on Shadow, that seems pretty popular.

👍 15
☝️ 3
joshmiller18:09:09

I’m not sure that re-natal is the most popular solution anymore, and it’s definitely not the most actively developed.

joshmiller19:09:39

Someone with more shadow-cljs experience than I have should add a quick PR for that

dotemacs19:09:29

If nobody does it tonight, I’ll do it tomorrow