A React Native CLI app built with the new architecture (TurboModules, Fabric, JSI, and NitroModules).
Explore Ugandaβs beauty through modern mobile engineering practices.
- Features
- Tech Stack
- Prerequisites
- Installation
- Running the App
- Project Structure
- Testing
- Linting & Formatting
- Troubleshooting
- Contributing
- Contributors
- License
- β‘οΈ New React Native Architecture (TurboModules, Fabric Renderer, JSI, NitroModules).
- π± Cross-platform: Android + iOS support.
- π§ React Navigation for smooth app navigation.
- βοΈ Signals state management via
@preact/signals-react. - π§ Strict TypeScript typing.
- π¨ Code style enforced with ESLint + Prettier.
- π Clear modular file structure.
Make sure you have the following installed:
- Node.js (β₯ 18.x recommended)
- Yarn
- React Native CLI
- Xcode (for iOS)
- Android Studio (for Android)
- CocoaPods (for iOS dependencies)
Clone the repo and install dependencies:
git clone https://github.com/Tambulab/this-is-uganda.git
cd this-is-uganda
yarn installInstall iOS dependencies:
cd ios && pod install && cd ..Start the Metro bundler:
yarn startRun on Android:
yarn androidRun on iOS:
yarn iosFor full details see file-structure.md. Key directories:
this-is-uganda/
βββ android/ # Native Android code
βββ ios/ # Native iOS code
βββ src/ # App source code
β βββ components/ # Shared components
β βββ navigation/ # Navigation setup
β βββ screens/ # Screen components
β βββ state/ # Signals state management
β βββ utils/ # Helpers & utilities
βββ App.tsx # Entry point
βββ ...
Run unit tests with:
yarn testCheck linting issues:
yarn lintFormat code with Prettier:
yarn format-
Metro bundler not starting? Clear the cache:
yarn start --reset-cache
-
iOS pods not working? Run:
cd ios && pod install --repo-update
-
Android build issues? Ensure youβve installed the correct JDK + Android SDK.
-
Create a new branch for your work:
git checkout -b feature/my-feature
-
Make your changes and commit them with clear messages:
git commit -m "Add: short description of change" -
Push your branch to the repo:
git push origin feature/my-feature
-
Open a Pull Request (PR) to merge your branch into
dev.
-
Use descriptive branch names:
feature/awesome-featurefix/bug-descriptionchore/dependency-update
-
Keep commits focused β avoid mixing unrelated changes.
-
Ensure code passes linting & tests before submitting.
-
Add yourself to the Contributors list with the All Contributors bot by commenting:
This project is licensed under the MIT License.
Thanks goes to these wonderful people (emoji key):
louicoder π» |
ssewilliam π» |
tracykeeya π» |
This project follows the all-contributors specification. Contributions of any kind welcome!