CLI that generates React Native projects targeting any combination of platforms
React Native Infinity
A React Native Starter For All Platforms.
You can use the interactive tool in the docs to generate the CLI command you need, or simply use npx react-native-infinity init to use the CLI interactive tool.
Features
- Multi-Platform - Choose any combination of 6 platforms to target (iOS, Android, Web, Electron, Windows, MacOS)
- Add Platform - Add another platform anytime with
add-platform
command - UI Library - Add cross-platform UI libraries (Material Bread, UI Kitten)
- Interactive GUI - Online GUI to select platforms and libraries to get started
- Interactive CLI - Select platforms and libraries by answers questions in your terminal
Installation
You can install the project globally or use npx
:
Install globally
$ npm install react-native-infinity -g
Using npx
:
$ npx react-native-infinity <command>
init
init <name>
where <name>
is an optional paramter that indicates the name of the folder and app. Additional options are passed when using the generated GUI tool.
add-platform
add-platform
command adds a platform after project initialization. Pass in a single platform from those listed in the list
section
npx react-native-infinity add-platform electron
list
npx react-native-infinity list
lists all supported platforms with the name you pass into --starter
Project
This starter contains a bare bones configuration for rendering on each platform.
Structure
React Native separates application code into src
and platform configuration into android
and ios
. React Native Infinity extends this idea to more platforms. All application code lives in src
while each platform ios
, android
, web
, electron
, macos
, windows
has it's own folder that contains configurations, including webpack
config for each platform.
Web
React Native on the web is supported by react-native-web, please check the documentation to learn more.
npm run web
Config: ./web/webpack.config.js
. Config sets up an alias for react-native
to react-native-web
.
HTML Entry: ./web/index.html
.
Entry file is ./web/index.js
.
Runs on localhost:8080
.
npm run build-web
Uses ./web/webpack.config
to build a production web build to ./web/dist
.
Electron
Electron with React requires two commands to run and uses react-native-web
npm run electron
Starts the Electron window using config ./electron/main.js
and
npm run server
Runs react in the electron window using config ./electron/webpack.config.js
.
HTML Entry: ./electron/index.html
Entry File is ./electron/renderer.js
Android
npm run android
Simply runs react-native run-android
, read the React Native docs for more information
iOS
npm run ios
Simply runs react-native run-ios
, read the React Native docs for more information