Germany Corona Light is a meticulously designed iOS app that elegantly displays the current status of COVID-19 restrictions and alerts in Germany using a traffic light metaphor. Built with cutting-edge technologies and clean architecture, it serves as a perfect example of a scalable, user-focused application.
- Real-Time Location-Based Status: Displays COVID-19 rules and restrictions based on your location.
- Localization: Fully localized for English 🇬🇧 and German 🇩🇪.
- Interactive UI: Intuitive design with smooth animations and visual feedback.
- Extensibility: Easily adaptable for other states in Germany.
Designed with scalability and maintainability in mind, the architecture employs MVVM+C with RxSwift and incorporates multiple design patterns for an optimal codebase.
- Download or Clone the project:
$ git clone https://github.com/mamadfrhi/Germany-Corona-Light.git
- Install dependencies using CocoaPods:
$ cd .../project_directory/Corona_Light
$ pod update
- Open
Corona_Light.xcworkspace
and run the app:
Cmd + R
- Select the iOS simulator.
- Navigate to
Feature > Location > Custom Location...
. - Enter the following:
- Lat:
49.763138
- Long:
10.697828
- Lat:
Switch to German in the simulator:
Settings > General > Language & Region > Deutsch
This project demonstrates expertise in clean architecture and SOLID principles, emphasizing scalability and maintainability.
- State
- Template
- Coordinator
- Singleton
- Adapter
- Delegate
- Decorator
- Facade
- Object-Oriented Programming (OOP)
- Protocol-Oriented Programming (POP)
- SOLID Principles
- Clean Code
- UIKit
- CoreLocation
- NotificationCenter
- Networking:
- UI:
- Reactive Programming:
The core logic of the application is illustrated below:
To use this app for other German states:
- Open
.../Resources/Info.plist
. - Locate
stateName = Bayern;
. - Replace
Bayern
with the desired state's name (in German).
Example:
- ❌ English:
Bavaria
- ✅ German:
Bayern
Contributions are welcome! Please feel free to discuss ideas or submit pull requests.
You can download the app design in Adobe XD here.