Loading repository data…
Loading repository data…
bartonhammond / repository
:snowflake: A React-Native Android iOS Starter App/ BoilerPlate / Example with Redux, RN Router, & Jest with the Snowflake Hapi Server running locally or on RedHat OpenShift for the backend, or a Parse Server running locally or remotely on Heroku
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.

A React-Native starter mobile app, or maybe just an example, or maybe a boilerplate (you decide) for iOS and Android with a single code base, with 2 backends to chose from: a Hapi or Parse Server solution- Demo
Clone snowflake: git clone https://github.com/bartonhammond/snowflake.git
install dependencies
cd snowflake
npm install
To make things easy for you, the config.example.js has been initialized to use the remote Snowflake Hapi Server which is running on Redhat OpenShift.
This Snowflake Hapi Server is Open Source. It can run either locally or on RedHat OpenShift. For your convince a server is running at: https://snowflakeserver-bartonhammond.rhcloud.com
Please refer to for more information about the code and instructions for installation and setup of the server.
src/lib/config.example.js to src/lib/config.js..gitignore includes config.js from being committed to GitHubhapiLocal or hapiRemote for the backend as shown below with hapiRemote set as the default. backend: {
hapiLocal: false,
hapiRemote: true,
parseLocal: false,
parseRemote: false
},
config.js as is.src/lib/config.js file as shown below.ifconfig command for the local. This ip matches the Snowflake Hapi Server setup.url is shown below assuming the ifconfig shows the local ip to be 192.168.0.5local.url value if you are using the remote HAPI: {
local: {
url: 'http://192.168.0.5:5000'
},
remote: {
url: 'https://snowflakeserver-bartonhammond.rhcloud.com/'
}
}
This Snowflake Parse Heroku Server is Open Source. It can run either locally or on Heroku. For your convince a server is running at: https://snowflake-parse.herokuapp.com/parse
Please refer to https://github.com/bartonhammond/snowflake-parse-heroku for more information about the code and instructions for installation and setup of the server.
src/lib/config.example.js to src/lib/config.js..gitignore includes config.js from being committed to GitHubparseLocal to true if you are running a local instance of parse-serverparseRemote to true to indicate your parse server instance is hosted in the cloud backend: {
hapiLocal: false,
hapiRemote: false,
parseLocal: true,
parseRemote: false
},
local.url value if you are running parse-server localremote.url value if you are running parse-server remote PARSE: {
appId: 'snowflake', // match APP_ID in parse-server's index.js
local: {
url: 'http://localhost:1337/parse' // match SERVER_URL in parse-server's index.js
},
remote: {
url: 'https://enter_your_snowflake_host.com' // match SERVER_URL in parse-server's index.js
}
}
react-native run-ios or open XCode and load project, Run Product -> Run (⌘+R)react-native run-android assuming you have an emulator or device running and attachednpm testnpm run test-chromeCode is written to JS Standard and validated with Eslint. To setup your favorite editor using the Eslint configuration, see Editors
Navigation is handled with React Native Router Flux. Multiple scenes support Login, Register, and Reset Password. Once successfully logged in, there are 3 more scenes: Logout, Subview, and Profile.
A user can change their Email Address and User Name once they are logged in using the Profile form.
The icons used throughout the app are from React Native Vector Icons, namely using FontAwesome
Form building is extremely easy and consistent by using Tcomb Form Library by using domain models and writing less code.
Using Redux and Immutable, the state of the application is testable with Jest, which includes Snapshot tests currently with 85 tests and ~90% coverage!!!
To ease the pain of Redux Action definitions, Snowflake uses Key Mirror.
Using the Validate.JS Library, all user input is validated. Appropriate messages are displayed to the user guiding them in the input requirements.
Once a user is logged in, their Session State is stored in AsyncStorage so that subsequent usage does not require logging in again.
Snowflake supports multiple languages using I18n with English, French and Spanish.
Snowflake supports Hot Reloading of its state.
Snowflake uses CI with Bitrise.io and has extensive docs and 45+ min of video demonstating implementation.
Snowflake has a choice of servers, either
Hapi Server that runs on RedHat Openshift and locally.
See https://github.com/bartonhammond/snowflake-hapi-openshift for more information about the OpenShift Hapi server. The setup instructions below describe how to select the server you desire.
Parse Server that runs remotely or locally
See https://github.com/ParsePlatform/parse-server-example for more information.
Atom
apm install editorconfig es6-javascript javascript-snippets linter linter-eslint language-babel
Sublime
Others
| Platform | Register | Login | Profile |
|---|---|---|---|
| iOS | ![]() | ![]() | ![]() |
| Android | ![]() | ![]() | ![]() |
Some quotes from users of Snowflake
Open Source Mag: Learn best of React Native with these open source projects: http://opensourceforu.com/2016/05/learn-best-of-react-native-with-these-open-source-projects/
ICICletech Blog: Mobile App Development With 8 Awesome React-Native Starter Kits: We have listed some of our favorite starter kits and boilerplates to get started quickly. [https://www.icicletech.com/blog/react-native-starter-