This is a React Native v0.76 project developed as part of a technical assessment. The application simulates a wallet app with basic features, such as tracking transactions, displaying balances, and logging user interactions.
Clone this repository to your local machine:
git clone <repository-url>
cd <repository-folder>Make sure you have Node.js installed. Install the project dependencies by running:
npm installStart the Metro Bundler, which is required to bundle JavaScript for the app:
npm startnpm run androidDue to limitations during development, the iOS platform was not tested or configured. See Limitations for more details.
- Display user's wallet balance, transaction list and details.
- Collect, store and validate a user PIN to access the application.
- Support for dynamic language detection (native) on the user's device.
- React Native v0.76: Mobile app development framework.
- TypeScript: For type safety and code clarity.
- Redux v9.1: For global state management.
- React Native Paper: UI components
- Database File: The app requires a
db.jsonfile for proper functionality. However, this file is not included in the repository. Ensure it is added to the project root before running the application. - Platform Support: Development and testing were limited to Android due to the lack of access to macOS for iOS testing.
- The project took approximately 10 to 12 hours to achieve its current state.
- iOS Development: Unable to test or configure and develop due to lack of access to a macOS device.
- Add full support for iOS, including testing on physical devices.
- Implement Google Analytics or New Relic for production-ready logging.
- Add a local database (SQLite) to store logs for offline traceability.
If you encounter issues:
- Verify that your development environment matches the React Native environment setup guide.
- Check for missing dependencies:
npm install
- Restart the Metro Bundler with:
npm start --reset-cache
For additional help, refer to the official React Native Troubleshooting Guide.
If you have questions or feedback about this project, feel free to contact me via GitHub.