- Exchange Rates: Fetch and display list of current exchange rates from https://www.exchangerate-api.com/docs/standard-requests
- Currency Calculator: Real-time currency conversion to calculate from base currency and target currency.
MVVM (Model-View-ViewModel) pattern combined with a Repository Pattern
-
Presentation Layer (SwiftUI + MVVM):
- Views: SwiftUI views that observe the ViewModel for state changes.
- ViewModels: Responsible for UI logic, data transformation, and handling user input.
-
Data Layer (Repository & Network):
- Repository: Acts as a single source of truth to fetch data from the network
- API Client: Handles API requests using
URLSessionand JSONDecoder to decodes JSON responses.