{"id":15066909,"url":"https://github.com/ilies-space/marvelcharactersphazero","last_synced_at":"2026-02-23T21:36:25.158Z","repository":{"id":255952396,"uuid":"853819456","full_name":"ilies-space/MarvelCharactersPhazero","owner":"ilies-space","description":"Clean-code iOS app that integrates with the Marvel API to display a list of Marvel characters Using MVVM, featuring pagination, secure API key management, and unit testing.","archived":false,"fork":false,"pushed_at":"2024-09-08T05:36:59.000Z","size":2674,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T16:13:06.319Z","etag":null,"topics":["ios","ios-app","swift","uikit","xcode"],"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/ilies-space.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}},"created_at":"2024-09-07T16:15:18.000Z","updated_at":"2024-09-08T05:39:55.000Z","dependencies_parsed_at":"2024-09-29T11:25:23.906Z","dependency_job_id":"d4b8da2f-c2d1-4d39-ab3f-624ce42a6875","html_url":"https://github.com/ilies-space/MarvelCharactersPhazero","commit_stats":null,"previous_names":["ilies-space/marvelcharactersphazero"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilies-space%2FMarvelCharactersPhazero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilies-space%2FMarvelCharactersPhazero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilies-space%2FMarvelCharactersPhazero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilies-space%2FMarvelCharactersPhazero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ilies-space","download_url":"https://codeload.github.com/ilies-space/MarvelCharactersPhazero/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243822313,"owners_count":20353496,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ios","ios-app","swift","uikit","xcode"],"created_at":"2024-09-25T01:13:53.685Z","updated_at":"2026-02-23T21:36:25.099Z","avatar_url":"https://github.com/ilies-space.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Marvel Characters (Phazero Challenge)\n\niOS app using UIKIT that fetches and displays Marvel characters using the Marvel API. This app supports pagination, error handling, and securely manages API keys following best practice and clean MVVM architecture concept.\n\n## Screenshots\n\nBelow are screenshots of the app in action:\n\n|         Character Listing         |      Character comics detail      |          Error handeling          |\n| :-------------------------------: | :-------------------------------: | :-------------------------------: |\n| \u003cimg src=\"demo/screenshot1.png\"/\u003e | \u003cimg src=\"demo/screenshot2.png\"/\u003e | \u003cimg src=\"demo/screenshot3.png\"/\u003e |\n\n## Features\n\n- **Fetch Marvel Characters**: Display a list of Marvel characters.\n- **Pagination Support**: Load characters in pages to manage large datasets.\n- **Error Handling**: Graceful handling of network and API errors.\n- **Display Character details**: Display Details of Marvel characters.\n- **Display Comics of Character**: Display Horizontal list of Comics of selected Marvel characters.\n- **Redirection to external info link**: Open Browser with selected character external information like wikiLink.\n\n## Installation\n\n### Prerequisites\n\n- **Xcode**: 12 or later\n- **Swift**: 5.5 or later\n- **iOS**: 14.0 or later\n\n### Setup\n\n1. **Clone the Repository:**\n\n   ```bash\n   git clone https://github.com/ilies-space/MarvelCharactersPhazero\n\n   cd MarvelCharactersPhazero\n   ```\n\n2. **Open the Project:**\n\n   Open `MarvelCharactersPhazero.xcodeproj` in Xcode.\n\n3. **Add API Keys to Your Project:**\n\n   - **Using `Config.xcconfig` File:**\n     Add the following entries to the file, replacing the placeholders with your actual API keys:\n\n   ```plaintext\n         MARVEL_PUBLIC_KEY = YOUR_PUBLIC_KEY_HERE\n         MARVEL_PRIVATE_KEY = YOUR_PRIVATE_KEY_HERE\n   ```\n\n   - Make sure this file is included in your project and properly configured in Xcode's scheme settings.\n\n---\n\n## Code Structure\n\n- **MarvelAPIService.swift**: Handles API requests and authentication.\n- **CharacterListViewModel.swift**: Manages character data and pagination.\n- **CharacterListViewController.swift**: Displays characters in a collection view.\n- **Data Models**: Includes `Character`, `Comics` and `MarvelDataWrapper`.\n- **MarvelCharactersPhazeroTests**: Include Unit testing using `XCTest`.\n\n---\n\n### Author\n\n- **Ilies Ould Menouer**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filies-space%2Fmarvelcharactersphazero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filies-space%2Fmarvelcharactersphazero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filies-space%2Fmarvelcharactersphazero/lists"}