Requires an api key from https://www.marvel.com/signin?referer=https%3A%2F%2Fdeveloper.marvel.com%2Faccount in xcconfig file
App to Search and Favourite Marvel Characters featuring:
- Search for characters (searches debounced every 400ms to reduce API use)
- Simple in-memory cache for images
- Favourite characters cached and retrieved using
UserDefaults
and encoded JSON - Link outs to favourite marvel characters
- Swipe to delete from Favourites list
Architecture:
- MVVM-C
RxSwift
used. It should be easy to bridge toCombine
but I find testingRx
easier, at least untilCombine
has better testing and virtual time support.UIKit
. Should be fairly easy to jump toSwiftUI
andCombine
.SnapshotTesting
for views- Tests colocated in project folder to make them first-class citizens and highlight missing test cases
CocoaPods
used overCarthage
orSPM
due to ease-of-use and a bug inSPM
makingRxTest
difficult to use.- Pods included in repo to make it easier to clone and build for timebeing
Todo:
- loading state and network activity indicator
- error state / handling for failed network calls