All Projects → Jazznight → rx_react_native_starter_kit

Jazznight / rx_react_native_starter_kit

Licence: other
React Native/redux/observable/auth starter kit which include immutable, rxjs, auth0 integration

Programming Languages

javascript
184084 projects - #8 most used programming language
objective c
16641 projects - #2 most used programming language
python
139335 projects - #7 most used programming language
java
68154 projects - #9 most used programming language
shell
77523 projects
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to rx react native starter kit

Ant Simple Pro
简洁,美观,快速上手,支持3大框架(vue3.0,react,angular,typescript);Concise, beautiful, quick to get started, support 3 big frameworks
Stars: ✭ 73 (+265%)
Mutual labels:  rxjs, immutablejs
websynth
Web Synthesizer From Space
Stars: ✭ 16 (-20%)
Mutual labels:  rxjs, rxjs5
Angular Rpg
RPG game built with Typescript, Angular, ngrx/store and rxjs
Stars: ✭ 120 (+500%)
Mutual labels:  rxjs, immutablejs
Inferno Most Fp Demo
A demo for the ReactJS Tampa Bay meetup showing how to build a React+Redux-like architecture from scratch using Inferno, Most.js, reactive programmning, and various functional programming tools & techniques
Stars: ✭ 45 (+125%)
Mutual labels:  rxjs, immutablejs
rxjs-sort-visualization
sorting algorithm visualization build by Rxjs 🐠
Stars: ✭ 16 (-20%)
Mutual labels:  rxjs, rxjs5
angular-model-pattern-example
Model pattern for Angular (2, 4, ...), manage and share your state with simple services using RxJS Subjects and Observables
Stars: ✭ 37 (+85%)
Mutual labels:  rxjs
redrock
Typesafe, reactive redux
Stars: ✭ 14 (-30%)
Mutual labels:  rxjs
reactive-angular-workshop
This is the source code for the world's greatest Reactive Angular Workshop.
Stars: ✭ 30 (+50%)
Mutual labels:  rxjs
ios-graphql
iOS code examples with GraphQL, Apollo & more
Stars: ✭ 78 (+290%)
Mutual labels:  auth0
rxjs-excel
RxJS demo of a simple excel app
Stars: ✭ 24 (+20%)
Mutual labels:  rxjs
ngx-mobx
Mobx decorators for Angular Applications
Stars: ✭ 14 (-30%)
Mutual labels:  rxjs
terraform-provider-auth0
Please see https://github.com/alexkappa/terraform-provider-auth0
Stars: ✭ 28 (+40%)
Mutual labels:  auth0
redis-patterns-console
An interactive (and reactive) console to try and go into the deep of Redis and its patterns!
Stars: ✭ 22 (+10%)
Mutual labels:  rxjs
rx-query
timdeschryver.github.io/rx-query/
Stars: ✭ 195 (+875%)
Mutual labels:  rxjs
react-rxjs-flux
a small library for creating applications based on unidirectional data flow
Stars: ✭ 22 (+10%)
Mutual labels:  rxjs
bassdrum
reactive, type safe components with preact and rxjs.
Stars: ✭ 44 (+120%)
Mutual labels:  rxjs
electron-auth0-login
Helper widget for Auth0 authentication in Electron desktop apps
Stars: ✭ 23 (+15%)
Mutual labels:  auth0
firebase-ignite
Firebase PWA Boilerplate
Stars: ✭ 12 (-40%)
Mutual labels:  rxjs
mst-effect
💫 Designed to be used with MobX-State-Tree to create asynchronous actions using RxJS.
Stars: ✭ 19 (-5%)
Mutual labels:  rxjs
buttons
🌱 buttons is a web service to help you keep doing things everyday
Stars: ✭ 21 (+5%)
Mutual labels:  auth0

Rx React Native Starter Kit

This project was initially motivated by pepperoni-app-kit, a React Native boilerplate by Pepperoni. It shares some features and design principles for My Boilerplate.

Contents

  • Redux and ImmutableJS for safe state management
  • Redux Observable and RxJS 5 for Reactive style programming
  • Redux-managed Navigators for Stack-based and Tabbed navigation with NavigationExperimental
  • remote-redux-devtools and remotedev-server for optimizing development experience
  • Disk-persisted application state caching for offline support and snappy startup performance
  • Auth0 JSON Web Token authentication
  • Multi-environment configuration (dev, staging, production) for iOS and Android
  • Built-in error handling and customizable error screens

Roadmap

Demo

Cross platform development:

Auth0 integration Sync and Async/Effect action
Auth0 integration Sync and Async/Effect actions

Getting started

To build your own app on top of the Starter Kit, fork or mirror this repository. Because you can't rename a fork, for serious use we recommend mirroring using these instructions. To contribute to Starter Kit development or just playing around, forking is the way to go.

First, give your application a name by running ./rename.sh YourAppName.

Development workflow

After you have set up the project using above instructions, you can use your favorite IDE or text editor to write code, and run the application from the command line. Turn on React Native hot module reloading in the app developer menu to update your application as you code.

To learn how to structure your application and use the Redux application architecture, read the Original Architecture guide for more details.

Start the application in iOS simulator
$ react-native run-ios
Start the application in Android simulator

(If using the stock emulator, the emulator must be running)

$ react-native run-android

Settingup the Starter Kit

Requirements

Firstly, you need a Mac computer for iOS development. If you want to build an Android app only, you can try experimental Linux and Windows support. These instructions presume an OS X installation.

Before you get started, make sure you have the following dependencies installed on your machine:

  • NodeJS >=5 and <= 6.3.1 and npm 3. npm 2 is not supported.

  • Homebrew (or an alternative way to install OSX packages)

  • Latest React Native CLI

        $ npm install -g react-native-cli
    

Installation

Install dependencies from NPM

$ npm install

Create a blank configuration file

$ cp env.example.js env.js

Running react native packager/javascript code

  1. Starting react native packager:

     $ npm start
    
  2. Starting remote dev server for redux devtool:

     $ npm run devtools
    

Running the iOS application

  1. Install Requirements:
  • Xcode for iOS development (download from Mac App Store)
  • Ruby (>2.2) to run CocoaPods
  • CocoaPods 1.0 or newer for iOS package management.
    • Please note that CocoaPods 0.x will not work, and at the time of writing the version in Homebrew is still 0.39, so check your pod --version and install 1.0 with gem if necessary.
  1. Install dependencies integration tool from npm package

     $ npm install rnpm -g
    
  2. Install native Android, iOS dependencies

     $ rnpm link react-native-lock
    
  3. Build the app and run the simulator:

     $ react-native run-ios
    

Running the Android application

More details here: React Native Android Setup

  1. Install latest JDK

  2. Install the Android SDK

       $ brew install android-sdk
    
  3. Set ANDROID_HOME environment variable in .bashrc, .zshrc or similar:

       $ export ANDROID_HOME=/usr/local/opt/android-sdk
    
  4. Start Android SDK Manager

       $ android
    
  5. Add SDK tools via Android sdk manager

  • Android SDK tools
  • Android SDK Platform-tools
  • Android SDK Build-tools (Important: Rev. 23.0.1)
  • SDK Platform
  • Intel x86 Atom_64 System Image
  • Intel x86 Atom System Image
  • Android Support Repository
  • Android Support Library
  • Intel x86 Emulator Accelerator (HAXM installer)
  1. Configure and install hardware acceleration

       $ open /usr/local/opt/android-sdk/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM_<version>.dmg
    
  2. Open Android Virtual Device manager

       $ android avd
    
  3. Add new virtual device

  • name: reactnative
  • Device: Nexus 5
  • Target: Android 6 - API Level 23
  • CBU: Intel Atom x86
  • check Use Host GPU
  1. Build app and run emulator:

     $ react-native run-android
    

Auth0

Configuration

If you don't want to use Auth0, or you want to take it into use later, you can skip this step for now.

  1. Before you start you need to create a new application in Auth0

  2. Set AUTH0_CLIENT_ID and AUTH0_DOMAIN in env.js according to your application you created in Auth

     AUTH0_CLIENT_ID: '<CLIENT_ID>',
     AUTH0_DOMAIN: '<ACCOUNT_NAME>.eu.auth0.com'
    
  3. Follow the steps for your platform below. Check the official instructions for more information.

Customization

The Auth0 login and sign up screens can be customized through the Lock extension.

iOS

  • Change default values in the customiseTheme method in src/services/auth0.js
  • If you want to add images, copy them in the root images folder and add them via Xcode > file > add files to the project in 3 different resolutions (needs to be original and x2 and x3 versions)
  • All changeable values can be retrieved here

Android

  • Change default values for the AppTheme.Lock in android/app/src/main/res/values/styles.xml
  • Add images in android/app/src/main/res/mipmap-<hdpi|mdpi|xhdpi|xxhdpi> in 4 different resolutions
  • All changeable values can be retrieved here

Contributing

If you find any problems, please open an issue or submit a fix as a pull request.

We welcome new features, but for large changes let's discuss first to make sure the changes can be accepted and integrated smoothly.

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].