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. Using Redux and Immutable, the state of the application is fully testable with Jest, currently at 86% coverage. Snowflake supports Hot Reloading of its state. Snowflake uses CI with Bitrise.io and has extensive docs and 45+ min of video demonstating implementation.
Note: Snowflake now (Jan 3, 2016) has a choice of servers, either the original Parse.com or a Hapi Server that runs on Openshift and locally. See https://github.com/bartonhammond/snowflake-hapi-openshift for more information about the OpenShift server. The setup instructions below describe how to select the server you desire.
- Screens
- Summary
- Hot Reloading
- Continuous Integration - Bitrise.io
- Source documentation
- Technologies
- Setup
- Redux State Management
- FAQ
Platform | Register | Login | Profile |
---|---|---|---|
iOS | |||
Android |
- The application runs on both iOS and Android with a single code base
- A User can Register, Login, Logout, Reset their Password and modify their Profile
- The Forms display messages for help and field validation.
- The Forms are protected when fetching.
- The Forms display spinner when fetching.
- Form submission errors are displayed (see above Login)
- All state changes* are actions to the Redux store.
- The backend is provided by Parse.com using the Rest API
- Every action performed by the UI interfaces with the Redux actions and subsequently to the Redux Store. This reduces the complexity of the JSX Components tremendouslyand makes them easily testable.
- Jest Unit Tests cover 86% of the application statements.
- Demonstrates how to setup React-Native to perform Jest testing with Babel.
- Includes ability to debug Jest unit testswith Chrome
- Instructions and videos for continuous integration with Bitrise.io
This video shows Snowflake exporting and importing state from Redux. It demonstrates, with the iOS Simulator, the process of copying the state for import at a later time. After the demo, I walk through the code to clarify how I achieved this. It's assumed you have some familiarity with Redux. Hopefully it helps you gain a better understanding of what Redux provides you!
CI proves to the developer that everything required to build and test the application is well defined and repeatable. Without CI, one would not know, for a fact, that all the required tools and assests are available for everyone to build with. CI gives us developers some "peace of mind" that our build process is repeatable.
With that in mind, please refer to the following document for instructions and 8 videos.
######-barton hammond