- Node.js > 12 and npm (Recommended: Use nvm)
- Xcode 12
- Cocoapods 1.10.1
- JDK > 11
- Android Studio and Android SDK
- axios rest client.
- prop-types to prop type-check.
- react-navigation navigation library.
- redux for state management.
- redux-persist as persistance layer.
- redux-thunk to dispatch asynchronous actions.
- @react-native-async-storage/async-storage as key value storage system.
- @react-native-community/netinfo as network info api
- react-native-exception-handler as global error handler
This project follows a very simple folder structure:
src
: This folder is the main container of all the code inside your application.components
: Folder to store any common components.atoms
: contain all basic ui components.organism
: contain all combined ui elements.wrappers
: contain all common component wrappers.
redux
: contain all redux specific codeactions
: contain all actions, and expose the combined result using itsindex.js
reducers
: contain all reducers, and expose the combined result using itsindex.js
store
: state container which holds the application's state
routes
: contain all the routes.screens
: contain all application screens.Screen
: screen specific folder.index.js
services
: contain all service calls.utils
: contain helper functions and constants.App.js
: Main component that starts whole app.
index.js
: Entry point of application as per React-Native standards.
Before running the app, make sure you run:
git clone https://github.com/isharadilshan/tmovies.git
cd tmovies
npm install or yarn install
Mac OS and Xcode are required.
cd ./tmovies/ios && pod install
- Open
tmovies/ios/tmovies.xcworkspace
in Xcode - Hit the Run button
You'll need to have all the prerequisites (SDK, NDK) for Building React Native installed.
cd ./tmovies
react-native run-android
Open the tmovies app in your emulator.