This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2017-11-02
Channels
- # admin-announcements (1)
- # aws-lambda (9)
- # beginners (161)
- # boot (1)
- # cider (3)
- # cljsrn (36)
- # clojure (245)
- # clojure-austin (2)
- # clojure-denmark (3)
- # clojure-dev (11)
- # clojure-greece (6)
- # clojure-italy (25)
- # clojure-russia (5)
- # clojure-serbia (1)
- # clojure-spec (76)
- # clojure-uk (78)
- # clojurescript (168)
- # clojurex (4)
- # community-development (7)
- # core-async (11)
- # core-logic (5)
- # css (6)
- # cursive (8)
- # data-science (6)
- # datomic (5)
- # devops (4)
- # duct (17)
- # emacs (1)
- # figwheel (8)
- # fulcro (51)
- # hoplon (4)
- # instaparse (3)
- # kekkonen (6)
- # klipse (3)
- # lein-figwheel (9)
- # luminus (2)
- # lumo (3)
- # midje (4)
- # off-topic (11)
- # om (4)
- # onyx (62)
- # other-languages (60)
- # re-frame (21)
- # reagent (63)
- # rum (1)
- # shadow-cljs (22)
- # spacemacs (22)
- # specter (23)
- # test-check (2)
- # vim (2)
- # yada (6)
Anyone using the Expo XDE when developing RN with cljs? https://github.com/seantempesta/expo-cljs-template https://docs.expo.io/versions/latest/guides/using-clojurescript.html And if so - what's your experience with it? Normally I use Emacs - would prefer to stay there as much as the time as possible 😉
I use the exp
command line rather than the xde
OK @danieleneal, and you're happy with your dev. flow using Expo?
Yes, it's pretty good. It's nice to be able to distribute apps internally for feedback using the expo client, and using the command line expo client means I can publish from CI
also it's nice not having the whole xcode project (note that I've done any work with react native just in the traditional way, so not really got anything to compare it to)
Alright, could you describe your dev. setup briefly (lein templates, IDE/editor and plugins etc.)? I've been doing lots of cljs w/react, but I find React Native to be quite nimble, and would like to start with the right template/tools to spare myself lots of time 😉 Thanks!
I started off with seantempesta/expo-cljs-template as a template
(well technically, the one before that when @tiensonqin was maintaining it)
I use re-frame and re-frisk for debugging
re-frisk has a remote mode
I use cljs-react-navigation for navigation, which @seantempesta wrote, it has some reframe hooks which is useful - I like to store the navigation state in the app state
I use emacs as an IDE, with clojure and clojurescript mode
We have gitlab ci, and I can publish to expo using the exp command line tool
I'm using sentry for error reporting (as recommended by expo) but I haven't got source maps to work yet unfortunately
I use re-frame-test for testing
Thanks!
And then you start by testing locally with Expo (via LAN or similar), and publish to your peers and/or QA team when necessary? And then publish directly via exp
to CI, and from there to App Store/Google Play?
I'm just experimenting with the true production builds now. You need to call exp build:ios (on ios at least); then the app gets built on expo's servers and they give you a link to the .ipa/.apk to download
I do testing locally with the ios simulator
exp start --ios --lan --dev
The main issue I ran into was timing out on the react native packager transformation in production builds
OK, is there no way to build for production locally, when using Expo (without involving their servers)?
that's correct
you can 'detach'
which as far as I know gives you the android/ios projects, with ExpoKit as a library, then you can use the relevant tools to build
"sed -i.bak 's/TRANSFORM_TIMEOUT_INTERVAL = 301000/TRANSFORM_TIMEOUT_INTERVAL = 901000/g' node_modules/metro-bundler/src/JSTransformer/index.js"
<- I needed to do this to increase the timeout when using advanced builds
ah also I use figwheel for development - turn off hot reloading and live reloading in the expo app otherwise it gets in the way
figwheel is included in the expo template above
no I'm afraid not 😬
If you develop all the UI and interaction stuff first using Expo, and then want to get it out to be able to run background jobs: https://docs.expo.io/versions/latest/introduction/why-not-expo.html#expo-apps-dont-support-background-code-execution-running-code-when-the-app-is-not-foregrounded-or-the-device-is-sleeping-this-means-you-cannot-use-background-geolocation-play-audio-in-the-background-handle-push-notifications-in-the-background-and-more-this-is-a-work-in-progress
OK, I'll do a bit of investigation myself. Unfortunately I need background code execution.
oh ok
you're welcome