RNBNR Starter Kit
This project is a React Native boilerplate template powered by NativeBase, ReactNavigation, ReduxToolkit and TypeScript that can be used to kickstart a mobile application. The boilerplate provides an optimized architecture for building solid cross-platform mobile applications through separation of concerns between the UI and business logic. Live preview on Google Play.
Inspiration: https://github.com/mcnamee/react-native-starter-kit

Features
This template consists of four screens and three components showing the interaction between used libraries and offers a predefined project structure.
Views
- Screens
- Cards.tsx - Demonstrates the use of a grid, images embedded in the application and a component constructed from a large number of props;
- Forms.tsx - Demonstrates integration between NativeBase UI, Formik form controller, Yup validator and RTK store;
- Gallery.tsx - Demonstrates the use of local state, remote images and gallery implementation;
- Session.tsx - Demonstrates access to user files and basic CRUD operations on store;
- Components
- AppBar.tsx - Demonstrates basic examples of use of reducers and preservation of application data in offline mode;
- Card.tsx - Demonstrates reuse of a component by using props;
- Modal.tsx - Demonstrates reuse of a component by using store;
Dependencies
- Mandatory
- Optional
- Development
Structure
- src
- assets - static assets such as videos, fonts, images, etc;
- components - custom components for use in screens;
- screens - finished screens, i.e. views for your application;
- slices - business logic implemented using Redux reducers;
- Theme.tsx - global theme parameters, as an example this application uses the Poppins font;
- Store.tsx - state container which holds the application's global state;
- Types.tsx - custom types and interfaces;
- App.tsx - handles your app startup and routing;
Installation
To create a new project using the boilerplate simply run:
npx react-native init MyApp --template rnbnr-template
Than install dependencies:
npm install
cd ios && pod install
And test your new application:
npm run android
npm run ios