build universal cross-platform apps with react native
iOS | tvOS | Android TV | macOS | Windows |
---|---|---|---|---|
Android | Web | Tizen | LG webOS | Android Wear |
Most fundamental multi-platform project template based on react native. Includes latest
iOS
,tvOS
,Android
,Android TV
,Web
,Tizen
,LG webOS
,macOS/OSX
andWindows
platforms
- Ideal starting point for advanced multi-platform projects.
- Uses latest vanilla native project templates including Xcode with Swift and Android with Kotlin support
- Includes bleeding edge dependencies configured to work with each other
- Get Started
- Architecture
- iOS
- Android
- tvOS
- Android TV
- Web
- Tizen
- LG webOS
- macOS
- Windows
- Android Wear
- Contributors
- Discussions
- Community
- LICENSE
OS | Support |
---|---|
Mac | YES |
Windows | YES |
Linux | untested |
- Node
10.13.0
or newer - NPM
6.4.1
or newer - React Native for development
- React
16.7.0-alpha.2
react library - React Native
0.57.7
for building native apps using react - Babel
7.x.x
for ES6+ support
The recommended way to run specific version of Node and NPM is to use NVM:
nvm install node 10.13.0
nvm alias default node 10.13.0
Tested / Recommended Node configurations:
Node Version | NPM Version |
---|---|
10.13.0 |
6.4.1 |
On the command prompt run the following commands
$ git clone git@github.com:pavjacko/react-native-vanilla.git
$ cd react-native-vanilla
$ npm run setup
Folder Structure
.
βββ assets # Cross platform assets
βββ docs # Documentation files
βββ platforms # Platform specific projects / code
β βββ android # Android platform project
β βββ androidtv # Android TV configured platform project
β βββ androidwear # Android Wear configured platform project
β βββ ios # iOS Xcode platform project
β βββ macos # macOS Electron platform project
β βββ tizen # Tizen platform project
β βββ tvos # tvOS Xcode platform project
β βββ web # Webpack based project
β βββ webos # Web OS platform project
β βββ windows # Windows desktop platform project
βββ src # Source files
βββ tests # Automated tests
βββ utils # Tools and utilities
βββ LICENSE
βββ README.md
- Latest swift based Xcode project
- Cocoapods Workspace ready
- Swift 4.1 Support
Feature | Version |
---|---|
Swift | 4.1 |
Deployment Target | 11.4 |
npm start
npm run ios
- Latest Android project
- Kotlin Support
- Support for Gradle 4.9
- Support for Android JSC (improved support for JavascriptCore like ES6 syntax)
- Android Studio for Android development
- Android SDK
23.0.1
or newer for Android development
Feature | Version |
---|---|
Gradle | 4.10.1 |
Android Gradle | 3.3.1 |
Kotlin | 1.3.20 |
Target SDK | 27 |
JSC | org.webkit:android-jsc:r224109 |
create file named local.properties
in <PROJECT_ROOT>/platforms/android
with paths to your Android SDK. Usually:
ndk.dir=/Users/<USER>/Library/Android/sdk/ndk-bundle
sdk.dir=/Users/<USER>/Library/Android/sdk
NOTE: make sure you have 1 android device connected or 1 emulator running
npm start
npm run android
- Latest swift based Xcode project
- Cocoapods Workspace ready
- Swift 4.1 Support
Feature | Version |
---|---|
Swift | 4.1 |
Deployment Target | 11.4 |
npm start
npm run tvos
- Latest Android project
- Kotlin Support
- Support for Gradle 4.9
- Support for Android JSC (improved support for JavascriptCore like ES6 syntax)
- Android Studio for Android development
- Android SDK
23.0.1
or newer for Android development
Feature | Version |
---|---|
Gradle | 4.10.1 |
Android Gradle | 3.3.1 |
Kotlin | 1.3.20 |
Target SDK | 27 |
JSC | org.webkit:android-jsc:r224109 |
create file named local.properties
in <PROJECT_ROOT>/platforms/androidtv
with paths to your Android SDK. Usually:
ndk.dir=/Users/<USER>/Library/Android/sdk/ndk-bundle
sdk.dir=/Users/<USER>/Library/Android/sdk
NOTE: make sure you have 1 android device connected or 1 emulator running
npm start
npm run androidtv
- Supports Chrome, Safari, Firefox, IE10+
- no extra requirements required
Feature | Version |
---|---|
Webpack | 3.11.0 |
react-native-web | 0.9.1 |
Babel Core | 7.1.2 |
npm run web
open browser URL: http://localhost:8080
- Latest Tizen project
- Support for Tizen 4.0
- Tizen SDK
4.0
Feature | Version |
---|---|
Tizen Studio | 2.5 |
Tizen SDK | 4.0 |
react-native-web | 0.9.1 |
Babel Core | 7.1.2 |
Make sure you have tizen-cli configured in your env variables:
export PATH="<USER_PATH>/tizen-studio/tools/ide/bin:$PATH"
export PATH="<USER_PATH>/tizen-studio/tools/emulator/bin:$PATH"
Make sure you have at least 1 TV VM setup
emulator-manager
em-cli list-vm
em-cli launch --name T-samsung-4.0-x86
npm run tizen
or specific simulator:
npm run tizen T-samsung-4.0-x86
- Latest LG webOS Project
- LG Emulator v3.0.0
Feature | Version |
---|---|
cli-webos | 0.0.2 |
react-native-web | 0.9.1 |
Babel Core | 7.1.2 |
Make sure you have ares-cli configured in your env variables:
export PATH="<USER_PATH>/Library/webOS_TV_SDK/CLI/bin:$PATH"
Test above path by running
ares -V
- launch webOS emulator usually located in something like:
<USER_PATH>/Library/webOS_TV_SDK/Emulator/v4.0.0/LG_webOS_TV_Emulator_RCU.app
npm run webos
- support for OSX/macOS
- Based on Electron
- n/a
Feature | Version |
---|---|
electron | 2.0.0 |
react-native-web | 0.9.1 |
electron-builder | 20.28.2 |
npm run macos
- support for Windows 10+
- Based on Electron
- Windows dev environment
Feature | Version |
---|---|
electron | 2.0.0 |
react-native-web | 0.9.1 |
electron-builder | 20.28.2 |
npm run windows
npm run windows:dist
- Latest Android project
- Kotlin Support
- Support for Gradle 4.9
- Support for Android JSC (improved support for JavascriptCore like ES6 syntax)
- Android Studio for Android development
- Android SDK
23.0.1
or newer for Android development
Feature | Version |
---|---|
Gradle | 4.10.1 |
Android Gradle | 3.3.1 |
Kotlin | 1.3.20 |
Target SDK | 27 |
JSC | org.webkit:android-jsc:r224109 |
create file named local.properties
in <PROJECT_ROOT>/platforms/androidwear
with paths to your Android SDK. Usually:
ndk.dir=/Users/<USER>/Library/Android/sdk/ndk-bundle
sdk.dir=/Users/<USER>/Library/Android/sdk
NOTE: make sure you have 1 android wear device connected or 1 wear emulator running
npm run androidwear
Pavel Jacko π |
Daniel Marino Ruiz π |
Sander Looijenga π |
David Rielo π |
---|
coming soon
Special thanks to open-source initiatives this project utilises, notably:
- https://www.npmjs.com/package/react-native
- https://www.npmjs.com/package/react-native-web
- https://www.npmjs.com/package/webpack
- https://www.npmjs.com/package/babel-cli
- https://www.npmjs.com/package/electron