{"id":24868495,"url":"https://github.com/esraa-ragab7/planets2025","last_synced_at":"2026-04-17T00:02:19.610Z","repository":{"id":274552510,"uuid":"918173934","full_name":"Esraa-ragab7/Planets2025","owner":"Esraa-ragab7","description":null,"archived":false,"fork":false,"pushed_at":"2025-01-28T00:41:54.000Z","size":1141,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T16:07:15.166Z","etag":null,"topics":["clean-architecture","coredata","mvvp","swiftui","unit-testing","universal-app"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Esraa-ragab7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-01-17T11:52:08.000Z","updated_at":"2025-01-28T00:41:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"e8507933-c254-48be-8fb8-cdcb895faf49","html_url":"https://github.com/Esraa-ragab7/Planets2025","commit_stats":null,"previous_names":["esraa-ragab7/planets2025"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Esraa-ragab7/Planets2025","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Esraa-ragab7%2FPlanets2025","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Esraa-ragab7%2FPlanets2025/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Esraa-ragab7%2FPlanets2025/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Esraa-ragab7%2FPlanets2025/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Esraa-ragab7","download_url":"https://codeload.github.com/Esraa-ragab7/Planets2025/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Esraa-ragab7%2FPlanets2025/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31909235,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"ssl_error","status_checked_at":"2026-04-16T18:21:47.142Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clean-architecture","coredata","mvvp","swiftui","unit-testing","universal-app"],"created_at":"2025-02-01T02:20:17.501Z","updated_at":"2026-04-17T00:02:19.598Z","avatar_url":"https://github.com/Esraa-ragab7.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Planets\nPlanets is an educational app designed to share detailed information about the planets in our solar system. \n\n## Architecture pattern\n* MVVM(Model View ViewModel) + Clean Architecture concepts\n\n## Run Requirements\n- **Minimum iOS Version**: 15\n- **Minimum Xcode Version**: 13\n- **Framework**: SwiftUI\n\n## Installation \n1. Clone this repository:\n   ```bash\n   git clone https://github.com/Esraa-ragab7/Planets2025.git\n   \n2. Navigate to the project directory::\n   ```bash\n   cd Planets2025\n\n3. Open the project in Xcode:\n   ```bash\n   open Planets2025.xcodeproj\n   \n4- Build and run the project on the iOS Simulator or a connected device.\n\n\n### Dark Mode Screenshots (portrait and Landscape orientation)\n![Simulator Screenshot - iPhone 11 - 2025-01-17 at 14 48 45](https://github.com/user-attachments/assets/f7417705-4702-4ebc-8d0a-8205ba4756c7)\n![Simulator Screenshot - iPhone 11 - 2025-01-17 at 14 45 15](https://github.com/user-attachments/assets/41d02de4-b131-4c5c-b5ed-86a05543ac74)\n\n\n### Light Mode Screenshots (portrait and Landscape orientation)\n![Simulator Screenshot - iPhone 11 - 2025-01-17 at 14 45 00](https://github.com/user-attachments/assets/7b7d3418-5dfa-4311-affc-3ef5808f496b)\n![Simulator Screenshot - iPhone 11 - 2025-01-17 at 14 44 54](https://github.com/user-attachments/assets/28ffc00b-fdcc-401a-93c7-7b695228f7d2)\n\n\n\n\n## App Layers\n\n#### MVVM Concepts\n##### Presentation Logic\n* `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.\n* `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.\n* `Router` - Manages navigation between views. For example, it determines how to navigate from a list of planets to a planet's detail view.\n\n#### Clean Architecture Concepts\n##### Application Logic\n\n* `UseCase / Interactor` - Contains business rules and application logic. For example, a FetchPlanetsUseCase retrieves data from a repository and processes it.\n* `Entity` - Core models representing the app's data. For example, the Planet struct holds attributes like name, gravity, and population.\n\n##### Repository \u0026 Framework Logic\n\n* `Repository` - Provides data from various sources, such as APIs or local databases. It acts as an abstraction layer, isolating data retrieval logic.\n* `Persistence / API Entities` - Represents database models or API response objects that map to the app's Entity layer.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesraa-ragab7%2Fplanets2025","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fesraa-ragab7%2Fplanets2025","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fesraa-ragab7%2Fplanets2025/lists"}