ReactNativeEverywhere 🌐 📱 💻
This project is an attempt to:
- Target multiple platforms(Android, iOS, web, windows and macOS) with react native' APIs.
- Follow best practices while doing the above.
- Cut out the time and effort it takes to setup the project(based on create-react-app).
- Achieve 'Write once use everywhere' with react-native(though react strictly says 'Learn once use anywhere').
How it works:
This starter kit has different branches based on what general requirements are(more branches coming soon). Just clone the project, switch to the desired branch, remove the .git folder and you are all set to code your app without thinking of any requirements or pre/post-tasks that need to be taken care of.
Selecting the right branch:
- master : As the name says, it is and it'll always be the combination of all other branches, targeting all the possible platforms (does'nt support windows as of now).
- common-navigation : Uses react-router-native to bring parity in API with react-router and make navigation logic common. Supports Universal-Windows-Platforms too. Uses power of Redux.
- web : If you want a simple app(authenticating your users, displaying some data from remote sources and some process which is not very complex) and want it on android, iOS and web. This branch is what you need.
- web-redux :If you want to utilize the power of redux(i.e. you want to have complete control over your app's state and don't want your app to be complex), this is what you are looking for.
P.S. : As of now master and web-redux are at exact same stage.
git clone https://github.com/amoghbanta/reactNativeEverywhere.git yourProjectName cd yourProjectName git checkout theBranchYouNeed rm -rf .git npm i
Run the project:
Node.js & npm on your system(follow this)
react-native CLI (
npm install -g react-native-cli)
npm run web
Build for production:
npm run build (this will build your production ready bundle)
Some very useful cross platform compatible libraries:
- support for web (react-native-web)
- support for Windows (react-native-windows)
- Add example projects for each branch
- support for macOS(react-native-macOS)
- improve webpack config and add media queries for web
Running on Web, Android, iOS and Windows(Universal):
This starter kit is still in very early stage. All your suggestions and PRs and welcome.