All Projects → wednesday-solutions → react-native-template

wednesday-solutions / react-native-template

Licence: other
An enterprise react-native template application showcasing - Testing strategy, Global state management, middleware support, a network layer, component library integration, localization, navigation configuration and CI

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to react-native-template

saga-monitor
Simple, elegant, and configurable redux-saga monitor
Stars: ✭ 37 (+15.63%)
Mutual labels:  redux-saga, saga
react-template
An enterprise react template application showcasing - Testing strategy, Global state management, middleware support, a network layer, component library integration, localization, PWA support, route configuration, lazy loading and CI/CD
Stars: ✭ 44 (+37.5%)
Mutual labels:  saga, apisauce
next-redux-saga-boilerplate
Next/Redux/Saga boilerplate - Example of using Next.js 9 with Redux Saga
Stars: ✭ 13 (-59.37%)
Mutual labels:  redux-saga, saga
react-native-ecommerce
E-commerce mobile application developed using React Native 👔 🎩
Stars: ✭ 60 (+87.5%)
Mutual labels:  redux-saga, reduxsauce
react-truffle-metamask
Build an DApp using react, redux, saga, truffle, metamask
Stars: ✭ 25 (-21.87%)
Mutual labels:  redux-saga, saga
react-project-tpl
react project template
Stars: ✭ 32 (+0%)
Mutual labels:  saga
react-native-boilerplate
🚀 A highly scalable, react-native boilerplate reinforced with react-boilerplate which focus on performance and best practices. 🔥. 💻 🚀 😎 👾 👽
Stars: ✭ 82 (+156.25%)
Mutual labels:  redux-saga
next-ifood
Ifood clone made with NextJS ⚛️
Stars: ✭ 68 (+112.5%)
Mutual labels:  redux-saga
Project06-A-Slack
팀 협업도구, 우리동네 슬랙 🚀
Stars: ✭ 14 (-56.25%)
Mutual labels:  redux-saga
redux-typed-saga
A type-safe alternative to redux-saga. // Using `yield*` in `finally` is currently broken in Babel / ES spec, as it will terminate the generator completely.
Stars: ✭ 12 (-62.5%)
Mutual labels:  redux-saga
Hangfire.Atoms
Execute multiple jobs as a one atomic job.
Stars: ✭ 20 (-37.5%)
Mutual labels:  atoms
react admin
🎉 TS+Hooks 后台管理系统 http://hooks.sunhang.top
Stars: ✭ 39 (+21.88%)
Mutual labels:  redux-saga
nestjs-boilerplate-microservice
Nestjs Microservice boilerplate: apply DDD, CQRS, and Event Sourcing within an event driven architecture
Stars: ✭ 270 (+743.75%)
Mutual labels:  saga
toutiao
模仿今日头条,实现 APP 端,Server 端, Web 管理端
Stars: ✭ 17 (-46.87%)
Mutual labels:  redux-saga
ts-ui
Telar Social Network using Reactjs
Stars: ✭ 35 (+9.38%)
Mutual labels:  redux-saga
rocketshoes-react-native
NetShoes Clone with React Native and Redux
Stars: ✭ 38 (+18.75%)
Mutual labels:  redux-saga
media-library
An online media library application with React, Redux and redux-saga
Stars: ✭ 27 (-15.62%)
Mutual labels:  redux-saga
awesome-tasker
Carefully curated list of awesome Tasker projects, tutorials and tricks
Stars: ✭ 78 (+143.75%)
Mutual labels:  scenes
react-kit
Ready-to-go react App
Stars: ✭ 25 (-21.87%)
Mutual labels:  redux-saga
klyva
A state management library that follows the React component model
Stars: ✭ 53 (+65.63%)
Mutual labels:  atoms

React Native Template

An enterprise React Native template application showcasing - Testing strategies, Global state management, middleware support, a network layer, component library integration, localization, navigation configuration, and Continuous integration.


Expert teams of digital product strategists, developers, and designers.


We’re always looking for people who value their work, so come and join us. We are hiring!

Architecture

The driving goal of the architecture of the template is separation of concerns. Namely:

  • Presentational components are separated from scenes (aka "screens").

    Presentational components are small components that are concerned with how things look. Scenes usually define whole application screens and are concerned with how things work: they include presentational components and wire everything together.

    If you are interested you can read more about it here.

Atomic Design for react native architecture

Atomic design further solidifies the idea of seperating screens into components and scenes (containers). The design primarily focuses on reusablity of code, which brings us to the differentiation of components into atoms, molecules and organisms. Analogous to the Atomic design of chemicals, components are seperated by their composition. The components require increasing context as their complexity increases, since each component is tested, this promotes a more granular test coverage.

  • Atoms Atoms are the smallest components that can be reused. Button, Text, and Icons are good example of Atoms. Atoms can be used without context and cannot be further divided.

  • Molecules Molecules are built from one or more atoms that are slightly complex presentational components.

  • Organisms Organisms contain multiple molecules, atoms and perform a specific purpose. In the example screen, an organism is used that displays the fetched character and quote.

  • State is managed using global Redux stores.

    When applications grow, sharing state and its changes can become very hard. Questions like "How can I access this data?" or "When did this change?" are common, just like passing data around components just to be able to use it in nested components.

    With Redux, state is shared using global stores, and changes are predictable: actions are applied by reducers to the state. While the pattern can be a bit much for small projects, the clear separation of responsibilities and predictability helps with bigger applications.

    If you are interested you can read more about it here.

  • Application side-effects (API calls, etc.) are separated from UI and state manipulation using Redux Saga.

    Using Redux Saga has two benefits: keeping application side-effects and related business logic out of UI components, as well as executing that logic in an asynchronous way without ending in callback hell.

    Sagas are triggered by Redux actions and can also trigger Redux actions to alter state. By using JavaScript generators (yield), sagas are written in a synchronous-like manner while still executing asynchronously.

Content

The React Native Template contains:

The template includes an example (displaying fake user data) from UI components to the saga. The example is easy to remove so that it doesn't get in the way.

Directory layout

For more information on each directory, click the link and read the directory's README.

Requirements

Node 8 or greater is required. Development for iOS requires a Mac and Xcode 9 or up, and will target iOS 9 and up.

You also need to install the dependencies required by React Native:

Using the template

To create a new project using the template:

  • clone this repository
  • remove the previous git history: yarn initialize
  • install the npm dependencies by running yarn
  • rename the React Native project to your own project name: yarn run rename -- <YourProjectName> (the default name is ReactNativeApplication)
  • remove the LICENSE file and the "License" section from the README if your project is not open source

Running expo project

Android

  • yarn run android

iOS

  • yarn run ios

Useful documentation

Deployment

Package dependencies

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