Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ilies-space/marvelcharactersphazero
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.
https://github.com/ilies-space/marvelcharactersphazero
ios ios-app swift uikit xcode
Last synced: 25 days ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/ilies-space/marvelcharactersphazero
- Owner: ilies-space
- Created: 2024-09-07T16:15:18.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2024-09-08T05:36:59.000Z (about 2 months ago)
- Last Synced: 2024-09-29T11:25:39.766Z (about 1 month ago)
- Topics: ios, ios-app, swift, uikit, xcode
- Language: Swift
- Homepage:
- Size: 2.55 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Marvel Characters (Phazero Challenge)
iOS 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.
## Screenshots
Below are screenshots of the app in action:
| Character Listing | Character comics detail | Error handeling |
| :-------------------------------: | :-------------------------------: | :-------------------------------: |
| | | |## Features
- **Fetch Marvel Characters**: Display a list of Marvel characters.
- **Pagination Support**: Load characters in pages to manage large datasets.
- **Error Handling**: Graceful handling of network and API errors.
- **Display Character details**: Display Details of Marvel characters.
- **Display Comics of Character**: Display Horizontal list of Comics of selected Marvel characters.
- **Redirection to external info link**: Open Browser with selected character external information like wikiLink.## Installation
### Prerequisites
- **Xcode**: 12 or later
- **Swift**: 5.5 or later
- **iOS**: 14.0 or later### Setup
1. **Clone the Repository:**
```bash
git clone https://github.com/ilies-space/MarvelCharactersPhazerocd MarvelCharactersPhazero
```2. **Open the Project:**
Open `MarvelCharactersPhazero.xcodeproj` in Xcode.
3. **Add API Keys to Your Project:**
- **Using `Config.xcconfig` File:**
Add the following entries to the file, replacing the placeholders with your actual API keys:```plaintext
MARVEL_PUBLIC_KEY = YOUR_PUBLIC_KEY_HERE
MARVEL_PRIVATE_KEY = YOUR_PRIVATE_KEY_HERE
```- Make sure this file is included in your project and properly configured in Xcode's scheme settings.
---
## Code Structure
- **MarvelAPIService.swift**: Handles API requests and authentication.
- **CharacterListViewModel.swift**: Manages character data and pagination.
- **CharacterListViewController.swift**: Displays characters in a collection view.
- **Data Models**: Includes `Character`, `Comics` and `MarvelDataWrapper`.
- **MarvelCharactersPhazeroTests**: Include Unit testing using `XCTest`.---
### Author
- **Ilies Ould Menouer**