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!