Planets is an educational app designed to share detailed information about the planets in our solar system.
- MVVM(Model View ViewModel) + Clean Architecture concepts
- Minimum iOS Version: 15
- Minimum Xcode Version: 13
- Framework: SwiftUI
- Clone this repository:
git clone https://github.com/Esraa-ragab7/Planets2025.git
- Navigate to the project directory::
cd Planets2025 - Open the project in Xcode:
open Planets2025.xcodeproj
4- Build and run the project on the iOS Simulator or a connected device.
View- Handles user interaction and displays data. For example, a PlanetsListView displays a list of planets and sends user actions (e.g., taps) to the ViewModel.View Model- Contains the presentation logic and transforms data from the UseCase into a format suitable for the View. It observes state changes and updates the View.Router- Manages navigation between views. For example, it determines how to navigate from a list of planets to a planet's detail view.
UseCase / Interactor- Contains business rules and application logic. For example, a FetchPlanetsUseCase retrieves data from a repository and processes it.Entity- Core models representing the app's data. For example, the Planet struct holds attributes like name, gravity, and population.
Repository- Provides data from various sources, such as APIs or local databases. It acts as an abstraction layer, isolating data retrieval logic.Persistence / API Entities- Represents database models or API response objects that map to the app's Entity layer.



