This SwiftUI project is a Lord of the Rings themed currency converter application.
Based on the Udemy course iOS 18, SwiftUI 6, & Swift 6: Build iOS Apps From Scratch.
The following features and improvements were independently developed, extending beyond the course curriculum:
- Integration of additional packages to extend capabilities and streamline development
- Project structure for better organization
- Persistent storage for user preferences (last selected currencies)
- Reusable UI components for better maintainability
- Convert between different Middle-earth currencies
- Interactive UI with custom backgrounds and icons
- Informative popover tips for improved user experience
- Persistent storage of user's last selected currencies
Features/
: Contains the main feature of the app, Currency ExchangeViews/
: Main views for the currency conversion interfaceModels/
: Data models and business logicComponents/
: Reusable UI componentsExtensions/
: Swift extensions for additional functionalityTips/
: Custom tips for improved user experience
LOTRConverter/
├── LOTRConverterApp.swift
├── Assets.xcassets
├── Features/
│ └── CurrencyExchange/
│ ├── Views/
│ │ ├── CurrencyExchangeView.swift
│ │ ├── CurrencyExchangeInfoView.swift
│ │ └── CurrencySelectionView.swift
│ ├── Models/
│ │ └── CurrencyModel.swift
│ ├── Components/
│ │ ├── BackgroundView.swift
│ │ ├── CurrencyExchangeRateView.swift
│ │ ├── CurrencyIconGridView.swift
│ │ ├── CurrencyIconView.swift
│ │ └── CurrencyInputView.swift
│ ├── Extensions/
│ │ └── UserDefaultsExtension.swift
│ └── Tips/
│ └── CurrencySelectionTip.swift
This project uses Swift Package Manager (SPM) for dependency management. The following packages are included:
- Inject - Used for hot reloading during development