Example iOS app designed using MVVM-C and Layered Architecture. Uses Swift Concurrency.
The app shows cryptocurrency prices and other related info. Built with Messari API.
It has two modules: AssetsList and AssetDetails. The list of cryptocurrencies is loaded in batches.
- Layered Architecture
- MVVM
- Flow coordinator
- Dependency Injection, DIContainer
- Data Binding using the lightweight Observable<T>
- Closure-based delegation using the lightweight Event<T>
- Reusable data sources
- async/await with the existing Infrastructure remaining unchanged
- Shared events service
- Advanced using of Codable
- Localization
- Unit tests
- SwiftEvents - The easiest way to implement data binding and notifications. Includes Event<T> and Observable<T>. Has a thread-safe version.
- URLSessionAdapter - A Codable wrapper around URLSession for networking.
- Toast-Swift - A Swift extension that adds toast notifications to the UIView object class.
- UAObfuscatedString - A simple category to hide sensitive strings from appearing in your binary.
The dependency manager is CocoaPods. Run pod update
to update pods.
iOS version support: 15.0+. Xcode 13.0+, Swift 5.5+