Skip to content

uhcakip/LOTRConverter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

40 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LOTRConverter

Swift 5.10 Xcode 15.4 iOS 17

Main Screen    Exchange Rates View    Currency View

Overview

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.

💡 Custom Implementations

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

Features

  • 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

Demo

LOTRConverter Demo

Project Structure

  • Features/: Contains the main feature of the app, Currency Exchange
    • Views/: Main views for the currency conversion interface
    • Models/: Data models and business logic
    • Components/: Reusable UI components
    • Extensions/: Swift extensions for additional functionality
    • Tips/: 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

Packages

This project uses Swift Package Manager (SPM) for dependency management. The following packages are included:

  • Inject - Used for hot reloading during development

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages