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
UserDefaultsand encoded JSON - Link outs to favourite marvel characters
- Swipe to delete from Favourites list
Architecture:
- MVVM-C
RxSwiftused. It should be easy to bridge toCombinebut I find testingRxeasier, at least untilCombinehas better testing and virtual time support.UIKit. Should be fairly easy to jump toSwiftUIandCombine.SnapshotTestingfor views- Tests colocated in project folder to make them first-class citizens and highlight missing test cases
CocoaPodsused overCarthageorSPMdue to ease-of-use and a bug inSPMmakingRxTestdifficult 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

