All Projects → status-im → clj-rn

status-im / clj-rn

Licence: MPL-2.0 license
A utility for building ClojureScript-based React Native apps

Programming Languages

clojure
4091 projects
javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to clj-rn

Reactotron
A desktop app for inspecting your React JS and React Native projects. macOS, Linux, and Windows.
Stars: ✭ 13,337 (+23716.07%)
Mutual labels:  reactnative
finclip-react-native-demo
FinClip RN 运行环境,让小程序在 RN 应用中无缝运行 / ReactNative DEMO for FinClip
Stars: ✭ 36 (-35.71%)
Mutual labels:  reactnative
hackerweb-native-2
HackerWeb 2: A read-only Hacker News client.
Stars: ✭ 51 (-8.93%)
Mutual labels:  reactnative
Flyabbit
🔥组件化,Retrofit,Rxjava2,dagger2,Mvp ,ReactNative ,Atlas(插件化)
Stars: ✭ 219 (+291.07%)
Mutual labels:  reactnative
React Native Opencv Tutorial
👩‍🏫Fully working example of the OpenCV library used together with React Native
Stars: ✭ 244 (+335.71%)
Mutual labels:  reactnative
photos
"Fx Fotos" is an opensource gallery app in react native with the same smoothness and features of Google Photos and Apple Photos. It is backend gnostic and connects to decentralized backends like "box", "Dfinity", "Filecoin" and "Crust".
Stars: ✭ 620 (+1007.14%)
Mutual labels:  reactnative
React Native Input Spinner
An extensible input number spinner component for react-native highly customizable. This component enhance a text input for entering numeric values, with increase and decrease buttons.
Stars: ✭ 155 (+176.79%)
Mutual labels:  reactnative
Eden
edn (extensible data notation) encoder/decoder for Elixir
Stars: ✭ 32 (-42.86%)
Mutual labels:  edn
react-native-animated-screen
React Native Animated Screens made easy
Stars: ✭ 28 (-50%)
Mutual labels:  reactnative
react-native-bottom-bar
Fully customizable BottomBar with unique design shape for React Native.
Stars: ✭ 74 (+32.14%)
Mutual labels:  reactnative
Fundamentals Materials
React Native Training - Materials Example App
Stars: ✭ 219 (+291.07%)
Mutual labels:  reactnative
Galio
Galio is a beautifully designed, Free and Open Source React Native Framework
Stars: ✭ 2,772 (+4850%)
Mutual labels:  reactnative
expo-push-notification-helper
💬🔥This package helps you make expo push notification for React Native easy to use.
Stars: ✭ 32 (-42.86%)
Mutual labels:  reactnative
Comicbook
React-Native跨平台漫画App免费视频:http://www.kongyixueyuan.com/course/3528
Stars: ✭ 199 (+255.36%)
Mutual labels:  reactnative
react-native-lewin-screen-capture
获取系统截屏事件 react native
Stars: ✭ 20 (-64.29%)
Mutual labels:  reactnative
React Native Image Marker
Add text or icon watermark to your images
Stars: ✭ 170 (+203.57%)
Mutual labels:  reactnative
reactXstarter
React + Redux + React Native Starter Kit with reusable business logic. Sample TODO app built in.
Stars: ✭ 42 (-25%)
Mutual labels:  reactnative
solar-weather
React Native Weather App w. Realm, Redux, ReasonReact & Forecast.io
Stars: ✭ 13 (-76.79%)
Mutual labels:  reactnative
React-Native-top-navbar
This reactnative package provides custom header component for mobile apps. also providing utility method to change statusbar color.
Stars: ✭ 27 (-51.79%)
Mutual labels:  reactnative
RNAndroidPullToRefresh
React Native 封装基于 Ultra-Pull-To-Refresh 的下拉刷新控件
Stars: ✭ 17 (-69.64%)
Mutual labels:  reactnative

CLJ-RN

A utility for building ClojureScript-based React Native apps

Usage

This small lib provides ability to start development with just one command and some basic functionality that re-natal has: enable-source-maps and rebuild-index, which is equivalence of re-natal's enable-source-maps, use-*-device, use-figwheel.

clj -m clj-rn.main help

enable-source-maps  Patches RN packager to server *.map files from filesystem, so that chrome can download them.
rebuild-index      Generate index.*.js for development with figwheel
watch             Start figwheel and cljs repl
help              Show this help

watch has the following options:

clj -m clj-rn.main watch -h

-p, --platform BUILD-IDS [:android]  Platform Build IDs <android|ios>
-a, --android-device TYPE           Android Device Type <avd|genymotion|real>
-i, --ios-device TYPE              iOS Device Type <simulator|real>
    --[no-]start-app               Start `react-native run-*` or not
    --[no-]start-figwheel           Start Figwheel or not
    --[no-]start-cljs-repl           Start cljs repl or not
    --[no-]start-bundler           Start React Native Metro bundler or not
-h, --help

Setup re-natal project

  1. Create deps.edn file and add clj-rn as dependency. More about how to use git libraries here https://clojure.org/guides/deps_and_cli#_using_git_libraries
  2. Create clj-rn.conf.edn. See example clj-rn.conf.example.edn
  3. Run clj -R:dev -m clj-rn.main watch -p ios -i simulator to start Figwheel and cljs repl

Example usage

Run watch task which also starts Figwheel and cljs repl:

clj -R:dev -m clj-rn.main watch -p android,ios -a genymotion -i real

Start React Native bundler react-native start

Now you can run app react-native run-android or react-native run-ios

Possible config options

  • :name Name of your project. The same as in package.json
  • :builds Dev builds. You can copy it from project.clj
  • :js-modules List of all used libraries what is required like this (js/require "...") for ios and android platforms
  • :desktop-modules List of all used libraries what is required like this (js/require "...") for desktop platform
  • :resource-dirs Folders with images and other resources
  • :figwheel-bridge.js" re-natal adds this file when you init project. If you don't have it, you can skip this options
  • :figwheel-options options for fegwheel server. List of all options https://github.com/bhauman/lein-figwheel/blob/0f62d6d043abb6156393fd167f6c1496c5439689/sidecar/resources/conf-fig-docs/FigwheelOptions.txt
  • :run-options Those options will be passed to react-native run-*

Thanks

Special thanks to @psdp for the initial implementation. Awesome job!

License

Licensed under the Mozilla Public License v2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].