- Implement a secured TODO list application with a bare React Native project and Expo local-authentication module.
- The application MUST ask for authentication before the user can add, update and delete items on the list.
- Clean and Robust state management.
- Adding comments explaining what code does.
- Implement some unit tests.
This application setup and build with latest version with react native (EXPO) Follow this link to find more infromation
- This project is develop and delivered with EXPO GO
- Follow the link to get documentation Link
- Project is tested with
Pixel_2_API_TiramisuAndroid EmulatoriPhone 12iOS simulator- Device support checked with
iPhone 12 Mini,iPhone 12andSamsung M2
| library | Summary |
|---|---|
| expo-local-authentication | Provides an API for FaceID and TouchID (iOS) or the Fingerprint API (Android) to authenticate the user with a face or fingerprint scan.. |
| prop-types | Runtime type checking for React props and similar objects. |
| Jest | Jest is a JavaScript test runner, that help you to ensure correctness of any JavaScript codebase |
| @testing-library/react-native | The React Native Testing Library (RNTL) is a lightweight solution for testing React Native components. |
| redux | Redux is an open-source JavaScript library for managing and centralizing application state. |
| react-redux | React Redux is the official React UI bindings layer for Redux |
| redux-persist | Persist and rehydrate a redux store. |
picnic-react-native-thuyiya
│
└───src
│ └───components
│ └───constants
│ └───screens
│ └───contexts
│ └───styles
│ │ App.js
│ │
│ index.js
- Auth Process
- Local authentication to protect the todos
- Keep access store untill restart the application
- Navigate to seetings page if user did not setup any local authentication
- Catch user cancel auth process and give option to procced
- Todo
- Add Todos
- Remove Todos
- Update todos
- Keep todos when come back to the application again
- Snapshot for every components
- Uniti test for check rendering
- Mock selectors and dispatch
-
Instruction to run the project in android and ios
- First of all clone the project from
- Then install packages using
npm installon root of the project - Starting Metro Bundler execute the
npm starton root of the project- Scan the QR code above with Expo Go (Android) or the Camera app (iOS)
- Press a │ open Android
- Press i │ open iOS simulator
- Press w │ open web
- Press r │ reload app
- Press m │ toggle menu
- Press ? │ show all commands
- Login to your expo to run it in your decvce easilay
-
Instruction for check test
- Execute
npm run teson root of the project, All the test files are under__tests__folders
- Execute
- macOS Monterey (12.4)
- VSCode 1.71.0 (Universal)
- Node (v14.17.3)
- Npm (6.14.13)