This is a sample Project for fetching data from PokeAPI in Swift & UIKit
- This Application is full written in Swift.
- UI has been implemented implemented with UIKit.
- The http client for API requests leverage the latest Swift Concurrency Features (Async-Await/Actors) because of that, all async methods can potentially been suspended awaiting results, this implies also a better reading and reasoning compared to the traditional callbacks.
- Images are downloaded with a basic caching system implemented inside Http Client for avoid useless downloads and data consumption.
- Because the pokemon count amount to 1154, is unrealistic to download everything in one shot, so it has been implemented also a pagination system, that download other pokemons while scrolling.
- Furthermore with withThrowingTaskGroup we are able to download data in parallel instead of a sequential async requests.
- PokemonManager is an observable object just because is shared with the SwiftUI version of the same project that you can fine here