Marvel Client

Overview

iOS 15 Client for Marvel API with the following features:

  • MVVM
  • Abstract Network Layer
  • SwiftUI
  • Async/Await
  • Theme Switcher
  • Core Data persistence with Async/Await approach + One To Many Relationship
  • DAO, Repository and Dependency Injection Design Patterns
  • Unit Testing: Network Layer, CoreData DAO, Repository, JSON Decodable

Set-Up

  1. Register in https://developer.marvel.com/
  2. Replace Private and Public Key variables in /APIService/Router.swift
  3. Install Swiftlint via brew install swiftlint
  4. Xcode 13 should be installed

Architecture

Marvel Client

Dependencies installed via SwiftPM:

View Use Cases

  • Get Heroes
  • Pagination
  • Delete Hero via Swipe
  • Delete All Heroes
  • Make Favorite Heroes
  • Sort Heroes by Favorite & Name
  • Pull to Refresh
  • Loading State
  • No Internet Connection Pop-Up
  • Empty State
  • Persistent Data

Screenshots

GitHub

View Github