/iOSDesignPatternSamples

This is Github user search demo app which made by many variety of design patterns. You can compare differences in MVC, MVP, MVVM and Flux.

Primary LanguageSwiftMIT LicenseMIT

iOSDesignPatternSamples

This is Github user search demo app which made by many variety of design patterns.

Application Structure

  • SearchViewController... Search Github user with query.
  • UserRepositoryViewController... Show repositories of user who selected in SearchViewController.
  • RepositoryViewController... Show a repository which selected in UserRepositoryViewController or FavoriteViewController. In addition, add / remove favorite repositories on memory.
  • FavoriteViewController... Show favorite repositories which stored on memory.

Design Patterns

Difference between A to B

A / B MVC MVP MVVM Flux
MVC - diff diff diff
MVP - - diff diff
MVVM - - - diff

You can compare differences like this.

Run

You need to set Github Personal Access Token like this.

extension ApiSession {
    static let shared: ApiSession = {
        let token = "" // <- Your Github Personal Access Token
        return ApiSession(injectToken: { InjectableToken(token: token) })
    }()
}

Requirements

  • Xcode 12 or later
  • iOS 13 or later
  • Swift 5 or later

Special Thanks

Author

marty-suzuki, s1180183@gmail.com

License

iOSDesignPatternSamples is available under the MIT license. See the LICENSE file for more info.