SwiftUI+MVVM+DI Demo

Light Dark

Light.mp4

Dark.mp4

Criteria

  • SwiftUI
  • MVVM architecture utilizing IoC.

Functionality

  • Fetching and parsing data from API.
  • Listing Data.
  • Searching.
  • Search suggestions.
  • Navigation to Details view.
  • Dark mode.
  • Unit tests.

Design Decisions

  • Dependency Manager:

    • Swift Package Manager
  • Dependencies:

    • Swinject: Dependency injection framework.
    • Kingfisher: Downloading and caching images from the web.

What could be improved

  • Use Coordinator pattern for navigation.
  • Use Repository pattern if local data storage is needed in the future.

GitHub

View Github