Skip to content

tylermcginnis/snowflake

 
 

Repository files navigation

Snowflake snowflake

A React-Native starter mobile app 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.

Join the chat at https://gitter.im/bartonhammond/snowflake ios Build Status andriod Build Status License

Content


Screens

Platform Register Login Profile
iOS ios Profile ios Login ios Register
Android Android Register Android Login Android Profile

Summary

  1. The application runs on both iOS and Android with a single code base
  2. A User can Register, Login, Logout, Reset their Password and modify their Profile
  3. The Forms display messages for help and field validation.
  4. The Forms are protected when fetching.
  5. The Forms display spinner when fetching.
  6. Form submission errors are displayed (see above Login)
  7. All state changes* are actions to the Redux store.
  8. The backend is provided by Parse.com using the Rest API
  9. 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.
  10. Jest Unit Tests cover 86% of the application statements.
  11. Demonstrates how to setup React-Native to perform Jest testing with Babel.
  12. Includes ability to debug Jest unit testswith Chrome
  13. Instructions and videos for continuous integration with Bitrise.io

Hot Reloading

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!

Snowflake Hot Loading


Continuous Integration

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.

CI - Videos And Instructions


######-barton hammond

About

A React-Native Android iOS Starter with single code base using Redux, Parse.com, Jest

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 94.8%
  • Objective-C 3.2%
  • Java 1.6%
  • Ruby 0.4%