- Xcode 12.3
- Swift 5
- iOS 14
- Swift UI 2
- Combine FRP
- MVVM with UI bindings
- Persistence layer for hired heroes storage
- Logic separation
- Dependency injection
- App coordination
- Error toasts for network issues
- Photo parallax effect (sticky header) in hero details screen
- Custom confirmation modal on "fire a hero" action instead of alert
- Unit tests
- API wrapper around Alamofire using Combine
- Kingfisher for lazy loading images and caching in SwiftUI
- better API error handling with retry and empty state
- replace system activity indicator (deprecated style in iOS14)
- replace many different unavailable hero images from API to a common consistant good looking one
- more unit and ui tests
- accessibility and light/dark mode support
You'll need Marvel API keys to build and run this project. Please paste your keys in the APISettings.swift as on picture below.