├── .gitignore ├── .slather.yml ├── .swiftlint.yml ├── Dangerfile.swift ├── Gemfile ├── Gemfile.lock ├── Makefile ├── Podfile ├── Podfile.lock ├── README.md ├── Sources ├── Application │ ├── AppDelegate.swift │ ├── AppInjector.swift │ └── AppScenes.swift ├── Common │ ├── Base │ │ ├── BaseView.swift │ │ ├── CompletableUseCase.swift │ │ ├── SingleUseCase.swift │ │ └── UseCase.swift │ ├── Configs │ │ ├── Api.swift │ │ ├── Configs.swift │ │ ├── Environment.swift │ │ └── ScreenType.swift │ ├── Extensions │ │ ├── NSLock+Extensions.swift │ │ ├── ObservableType+Debug.swift │ │ ├── PKHUD+Extensions.swift │ │ ├── UIWindow+Extensions.swift │ │ └── URL+Extensions.swift │ ├── LeakDetector │ │ ├── Executor.swift │ │ └── LeakDetector.swift │ ├── Logs │ │ └── Logger.swift │ ├── Networking │ │ ├── AppError.swift │ │ ├── AppNetwork.swift │ │ └── AppRequestConvertible.swift │ ├── Pagination │ │ ├── BaseCollectionViewViewController.swift │ │ ├── BaseTableViewViewController.swift │ │ ├── BaseViewController.swift │ │ ├── HasScreenType.swift │ │ ├── HasTrigger.swift │ │ ├── Observable+Operators.swift │ │ └── Pageable.swift │ └── Utilities │ │ ├── Atomic.swift │ │ └── AuthenticationServices.swift ├── Configs │ ├── BuildConfigurations │ │ └── Debug.xcconfig │ └── GoogleServices │ │ ├── GoogleService-Info-Debug.plist │ │ ├── GoogleService-Info-Release.plist │ │ └── GoogleService-Info-Staging.plist ├── Data │ ├── Local │ │ ├── Storage.swift │ │ └── UserDefaultsStorage.swift │ └── Remote │ │ ├── AppApi.swift │ │ ├── AppMonitor.swift │ │ ├── AppRoute.swift │ │ ├── AuthenAdapter.swift │ │ ├── RefreshTokenInterceptor.swift │ │ └── XTypeAdapter.swift ├── Domain │ ├── Entity │ │ ├── ErrorResponse.swift │ │ ├── LoginResponse.swift │ │ ├── LoginState.swift │ │ ├── PagingResponse.swift │ │ ├── RefreshTokenResponse.swift │ │ └── UserResponse.swift │ └── UseCases │ │ ├── CleanUserInfoUseCase.swift │ │ ├── GETEventUseCase.swift │ │ ├── GETUserInfoUseCase.swift │ │ ├── LoginUseCase.swift │ │ └── RefreshTokenUseCase.swift ├── Modules │ ├── Detail │ │ ├── Detail.storyboard │ │ ├── DetailInteractor.swift │ │ ├── DetailRouter.swift │ │ ├── DetailView.swift │ │ └── DetailViewController.swift │ ├── Login │ │ ├── Login.storyboard │ │ ├── LoginInteractor.swift │ │ ├── LoginRouter.swift │ │ ├── LoginView.swift │ │ └── LoginViewController.swift │ └── Main │ │ ├── Base.lproj │ │ └── Home.storyboard │ │ ├── MainInteractor.swift │ │ ├── MainRouter.swift │ │ ├── MainView.swift │ │ └── MainViewController.swift ├── Presenter │ ├── DetailPresenter.swift │ ├── LoginPresenter.swift │ └── MainPresenter.swift ├── Repository │ ├── HomeRepository.swift │ ├── LocalStorageRepository.swift │ └── UserRepository.swift ├── Resources │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── 100.png │ │ │ ├── 1024.png │ │ │ ├── 114.png │ │ │ ├── 120.png │ │ │ ├── 144.png │ │ │ ├── 152.png │ │ │ ├── 167.png │ │ │ ├── 180.png │ │ │ ├── 20.png │ │ │ ├── 29.png │ │ │ ├── 40.png │ │ │ ├── 50.png │ │ │ ├── 57.png │ │ │ ├── 58.png │ │ │ ├── 60.png │ │ │ ├── 72.png │ │ │ ├── 76.png │ │ │ ├── 80.png │ │ │ ├── 87.png │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── no_img.imageset │ │ │ ├── Contents.json │ │ │ └── no_img.png │ ├── Colors.xcassets │ │ ├── Contents.json │ │ └── primary.colorset │ │ │ └── Contents.json │ ├── Info.plist │ ├── LaunchScreen.storyboard │ ├── MyApp-Bridging-Header.h │ └── MyApp.entitlements └── Services │ ├── ApiErrorHandler.swift │ ├── AppHelper.swift │ ├── ConnectivityService.swift │ ├── DialogManager.swift │ ├── LoadingHelper.swift │ └── PermissionManager.swift ├── SourcesTests ├── Extensions │ └── Recorder.swift ├── Info.plist ├── Mocks.swift ├── Presenter │ └── LoginPresenterTests.swift └── UseCase │ └── LoginUseCaseTests.swift ├── fastlane ├── .env.debug ├── Fastfile ├── Matchfile ├── Pluginfile ├── README.md ├── metadata │ ├── copyright.txt │ ├── primary_category.txt │ ├── primary_first_sub_category.txt │ ├── primary_second_sub_category.txt │ ├── review_information │ │ ├── demo_password.txt │ │ ├── demo_user.txt │ │ ├── email_address.txt │ │ ├── first_name.txt │ │ ├── last_name.txt │ │ ├── notes.txt │ │ └── phone_number.txt │ ├── secondary_category.txt │ ├── secondary_first_sub_category.txt │ ├── secondary_second_sub_category.txt │ └── vi │ │ ├── apple_tv_privacy_policy.txt │ │ ├── description.txt │ │ ├── keywords.txt │ │ ├── marketing_url.txt │ │ ├── name.txt │ │ ├── privacy_url.txt │ │ ├── promotional_text.txt │ │ ├── release_notes.txt │ │ ├── subtitle.txt │ │ └── support_url.txt └── screenshots │ └── README.txt ├── project.yml ├── renovate.json ├── scripts ├── brew │ ├── brew-cmd.sh │ ├── brew-install-package.sh │ └── brew-install.sh ├── common │ ├── generate.sh │ └── install.sh ├── logs │ ├── debug.sh │ ├── error.sh │ └── info.sh ├── project │ ├── delete.sh │ ├── firebase.sh │ ├── linter.sh │ ├── swiftgen.sh │ ├── unit-test.sh │ └── upload-testflight.sh └── slather │ ├── slather-cmd.sh │ └── slather-run.sh └── swiftgen.yml /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/.gitignore -------------------------------------------------------------------------------- /.slather.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/.slather.yml -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/.swiftlint.yml -------------------------------------------------------------------------------- /Dangerfile.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Dangerfile.swift -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Gemfile -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Gemfile.lock -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Makefile -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Podfile -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Podfile.lock -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/README.md -------------------------------------------------------------------------------- /Sources/Application/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Application/AppDelegate.swift -------------------------------------------------------------------------------- /Sources/Application/AppInjector.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Application/AppInjector.swift -------------------------------------------------------------------------------- /Sources/Application/AppScenes.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Application/AppScenes.swift -------------------------------------------------------------------------------- /Sources/Common/Base/BaseView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Base/BaseView.swift -------------------------------------------------------------------------------- /Sources/Common/Base/CompletableUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Base/CompletableUseCase.swift -------------------------------------------------------------------------------- /Sources/Common/Base/SingleUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Base/SingleUseCase.swift -------------------------------------------------------------------------------- /Sources/Common/Base/UseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Base/UseCase.swift -------------------------------------------------------------------------------- /Sources/Common/Configs/Api.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Configs/Api.swift -------------------------------------------------------------------------------- /Sources/Common/Configs/Configs.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Configs/Configs.swift -------------------------------------------------------------------------------- /Sources/Common/Configs/Environment.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Configs/Environment.swift -------------------------------------------------------------------------------- /Sources/Common/Configs/ScreenType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Configs/ScreenType.swift -------------------------------------------------------------------------------- /Sources/Common/Extensions/NSLock+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Extensions/NSLock+Extensions.swift -------------------------------------------------------------------------------- /Sources/Common/Extensions/ObservableType+Debug.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Extensions/ObservableType+Debug.swift -------------------------------------------------------------------------------- /Sources/Common/Extensions/PKHUD+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Extensions/PKHUD+Extensions.swift -------------------------------------------------------------------------------- /Sources/Common/Extensions/UIWindow+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Extensions/UIWindow+Extensions.swift -------------------------------------------------------------------------------- /Sources/Common/Extensions/URL+Extensions.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Extensions/URL+Extensions.swift -------------------------------------------------------------------------------- /Sources/Common/LeakDetector/Executor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/LeakDetector/Executor.swift -------------------------------------------------------------------------------- /Sources/Common/LeakDetector/LeakDetector.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/LeakDetector/LeakDetector.swift -------------------------------------------------------------------------------- /Sources/Common/Logs/Logger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Logs/Logger.swift -------------------------------------------------------------------------------- /Sources/Common/Networking/AppError.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Networking/AppError.swift -------------------------------------------------------------------------------- /Sources/Common/Networking/AppNetwork.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Networking/AppNetwork.swift -------------------------------------------------------------------------------- /Sources/Common/Networking/AppRequestConvertible.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Networking/AppRequestConvertible.swift -------------------------------------------------------------------------------- /Sources/Common/Pagination/BaseCollectionViewViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Pagination/BaseCollectionViewViewController.swift -------------------------------------------------------------------------------- /Sources/Common/Pagination/BaseTableViewViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Pagination/BaseTableViewViewController.swift -------------------------------------------------------------------------------- /Sources/Common/Pagination/BaseViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Pagination/BaseViewController.swift -------------------------------------------------------------------------------- /Sources/Common/Pagination/HasScreenType.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Pagination/HasScreenType.swift -------------------------------------------------------------------------------- /Sources/Common/Pagination/HasTrigger.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Pagination/HasTrigger.swift -------------------------------------------------------------------------------- /Sources/Common/Pagination/Observable+Operators.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Pagination/Observable+Operators.swift -------------------------------------------------------------------------------- /Sources/Common/Pagination/Pageable.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Pagination/Pageable.swift -------------------------------------------------------------------------------- /Sources/Common/Utilities/Atomic.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Utilities/Atomic.swift -------------------------------------------------------------------------------- /Sources/Common/Utilities/AuthenticationServices.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Common/Utilities/AuthenticationServices.swift -------------------------------------------------------------------------------- /Sources/Configs/BuildConfigurations/Debug.xcconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Configs/BuildConfigurations/Debug.xcconfig -------------------------------------------------------------------------------- /Sources/Configs/GoogleServices/GoogleService-Info-Debug.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Configs/GoogleServices/GoogleService-Info-Debug.plist -------------------------------------------------------------------------------- /Sources/Configs/GoogleServices/GoogleService-Info-Release.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Configs/GoogleServices/GoogleService-Info-Release.plist -------------------------------------------------------------------------------- /Sources/Configs/GoogleServices/GoogleService-Info-Staging.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Configs/GoogleServices/GoogleService-Info-Staging.plist -------------------------------------------------------------------------------- /Sources/Data/Local/Storage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Data/Local/Storage.swift -------------------------------------------------------------------------------- /Sources/Data/Local/UserDefaultsStorage.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Data/Local/UserDefaultsStorage.swift -------------------------------------------------------------------------------- /Sources/Data/Remote/AppApi.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Data/Remote/AppApi.swift -------------------------------------------------------------------------------- /Sources/Data/Remote/AppMonitor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Data/Remote/AppMonitor.swift -------------------------------------------------------------------------------- /Sources/Data/Remote/AppRoute.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Data/Remote/AppRoute.swift -------------------------------------------------------------------------------- /Sources/Data/Remote/AuthenAdapter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Data/Remote/AuthenAdapter.swift -------------------------------------------------------------------------------- /Sources/Data/Remote/RefreshTokenInterceptor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Data/Remote/RefreshTokenInterceptor.swift -------------------------------------------------------------------------------- /Sources/Data/Remote/XTypeAdapter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Data/Remote/XTypeAdapter.swift -------------------------------------------------------------------------------- /Sources/Domain/Entity/ErrorResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/Entity/ErrorResponse.swift -------------------------------------------------------------------------------- /Sources/Domain/Entity/LoginResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/Entity/LoginResponse.swift -------------------------------------------------------------------------------- /Sources/Domain/Entity/LoginState.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/Entity/LoginState.swift -------------------------------------------------------------------------------- /Sources/Domain/Entity/PagingResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/Entity/PagingResponse.swift -------------------------------------------------------------------------------- /Sources/Domain/Entity/RefreshTokenResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/Entity/RefreshTokenResponse.swift -------------------------------------------------------------------------------- /Sources/Domain/Entity/UserResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/Entity/UserResponse.swift -------------------------------------------------------------------------------- /Sources/Domain/UseCases/CleanUserInfoUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/UseCases/CleanUserInfoUseCase.swift -------------------------------------------------------------------------------- /Sources/Domain/UseCases/GETEventUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/UseCases/GETEventUseCase.swift -------------------------------------------------------------------------------- /Sources/Domain/UseCases/GETUserInfoUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/UseCases/GETUserInfoUseCase.swift -------------------------------------------------------------------------------- /Sources/Domain/UseCases/LoginUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/UseCases/LoginUseCase.swift -------------------------------------------------------------------------------- /Sources/Domain/UseCases/RefreshTokenUseCase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Domain/UseCases/RefreshTokenUseCase.swift -------------------------------------------------------------------------------- /Sources/Modules/Detail/Detail.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Detail/Detail.storyboard -------------------------------------------------------------------------------- /Sources/Modules/Detail/DetailInteractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Detail/DetailInteractor.swift -------------------------------------------------------------------------------- /Sources/Modules/Detail/DetailRouter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Detail/DetailRouter.swift -------------------------------------------------------------------------------- /Sources/Modules/Detail/DetailView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Detail/DetailView.swift -------------------------------------------------------------------------------- /Sources/Modules/Detail/DetailViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Detail/DetailViewController.swift -------------------------------------------------------------------------------- /Sources/Modules/Login/Login.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Login/Login.storyboard -------------------------------------------------------------------------------- /Sources/Modules/Login/LoginInteractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Login/LoginInteractor.swift -------------------------------------------------------------------------------- /Sources/Modules/Login/LoginRouter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Login/LoginRouter.swift -------------------------------------------------------------------------------- /Sources/Modules/Login/LoginView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Login/LoginView.swift -------------------------------------------------------------------------------- /Sources/Modules/Login/LoginViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Login/LoginViewController.swift -------------------------------------------------------------------------------- /Sources/Modules/Main/Base.lproj/Home.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Main/Base.lproj/Home.storyboard -------------------------------------------------------------------------------- /Sources/Modules/Main/MainInteractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Main/MainInteractor.swift -------------------------------------------------------------------------------- /Sources/Modules/Main/MainRouter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Main/MainRouter.swift -------------------------------------------------------------------------------- /Sources/Modules/Main/MainView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Main/MainView.swift -------------------------------------------------------------------------------- /Sources/Modules/Main/MainViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Modules/Main/MainViewController.swift -------------------------------------------------------------------------------- /Sources/Presenter/DetailPresenter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Presenter/DetailPresenter.swift -------------------------------------------------------------------------------- /Sources/Presenter/LoginPresenter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Presenter/LoginPresenter.swift -------------------------------------------------------------------------------- /Sources/Presenter/MainPresenter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Presenter/MainPresenter.swift -------------------------------------------------------------------------------- /Sources/Repository/HomeRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Repository/HomeRepository.swift -------------------------------------------------------------------------------- /Sources/Repository/LocalStorageRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Repository/LocalStorageRepository.swift -------------------------------------------------------------------------------- /Sources/Repository/UserRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Repository/UserRepository.swift -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/100.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/1024.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/114.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/120.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/144.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/152.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/167.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/167.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/180.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/20.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/29.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/40.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/50.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/57.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/58.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/60.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/72.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/76.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/80.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/80.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/87.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/87.png -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/no_img.imageset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/no_img.imageset/Contents.json -------------------------------------------------------------------------------- /Sources/Resources/Assets.xcassets/no_img.imageset/no_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Assets.xcassets/no_img.imageset/no_img.png -------------------------------------------------------------------------------- /Sources/Resources/Colors.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Colors.xcassets/Contents.json -------------------------------------------------------------------------------- /Sources/Resources/Colors.xcassets/primary.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Colors.xcassets/primary.colorset/Contents.json -------------------------------------------------------------------------------- /Sources/Resources/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/Info.plist -------------------------------------------------------------------------------- /Sources/Resources/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/LaunchScreen.storyboard -------------------------------------------------------------------------------- /Sources/Resources/MyApp-Bridging-Header.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/MyApp-Bridging-Header.h -------------------------------------------------------------------------------- /Sources/Resources/MyApp.entitlements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Resources/MyApp.entitlements -------------------------------------------------------------------------------- /Sources/Services/ApiErrorHandler.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Services/ApiErrorHandler.swift -------------------------------------------------------------------------------- /Sources/Services/AppHelper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Services/AppHelper.swift -------------------------------------------------------------------------------- /Sources/Services/ConnectivityService.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Services/ConnectivityService.swift -------------------------------------------------------------------------------- /Sources/Services/DialogManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Services/DialogManager.swift -------------------------------------------------------------------------------- /Sources/Services/LoadingHelper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Services/LoadingHelper.swift -------------------------------------------------------------------------------- /Sources/Services/PermissionManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/Sources/Services/PermissionManager.swift -------------------------------------------------------------------------------- /SourcesTests/Extensions/Recorder.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/SourcesTests/Extensions/Recorder.swift -------------------------------------------------------------------------------- /SourcesTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/SourcesTests/Info.plist -------------------------------------------------------------------------------- /SourcesTests/Mocks.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/SourcesTests/Mocks.swift -------------------------------------------------------------------------------- /SourcesTests/Presenter/LoginPresenterTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/SourcesTests/Presenter/LoginPresenterTests.swift -------------------------------------------------------------------------------- /SourcesTests/UseCase/LoginUseCaseTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/SourcesTests/UseCase/LoginUseCaseTests.swift -------------------------------------------------------------------------------- /fastlane/.env.debug: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/fastlane/.env.debug -------------------------------------------------------------------------------- /fastlane/Fastfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/fastlane/Fastfile -------------------------------------------------------------------------------- /fastlane/Matchfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/fastlane/Matchfile -------------------------------------------------------------------------------- /fastlane/Pluginfile: -------------------------------------------------------------------------------- 1 | gem 'fastlane-plugin-xcconfig' 2 | -------------------------------------------------------------------------------- /fastlane/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/fastlane/README.md -------------------------------------------------------------------------------- /fastlane/metadata/copyright.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/primary_category.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/primary_first_sub_category.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/primary_second_sub_category.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/review_information/demo_password.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/review_information/demo_user.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/review_information/email_address.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/review_information/first_name.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/review_information/last_name.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/review_information/notes.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/review_information/phone_number.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/secondary_category.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/secondary_first_sub_category.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/secondary_second_sub_category.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/apple_tv_privacy_policy.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/description.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/keywords.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/marketing_url.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/name.txt: -------------------------------------------------------------------------------- 1 | MP Default 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/privacy_url.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/promotional_text.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/release_notes.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/subtitle.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/metadata/vi/support_url.txt: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /fastlane/screenshots/README.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/fastlane/screenshots/README.txt -------------------------------------------------------------------------------- /project.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/project.yml -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/renovate.json -------------------------------------------------------------------------------- /scripts/brew/brew-cmd.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/brew/brew-cmd.sh -------------------------------------------------------------------------------- /scripts/brew/brew-install-package.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/brew/brew-install-package.sh -------------------------------------------------------------------------------- /scripts/brew/brew-install.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/brew/brew-install.sh -------------------------------------------------------------------------------- /scripts/common/generate.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/common/generate.sh -------------------------------------------------------------------------------- /scripts/common/install.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/common/install.sh -------------------------------------------------------------------------------- /scripts/logs/debug.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/logs/debug.sh -------------------------------------------------------------------------------- /scripts/logs/error.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/logs/error.sh -------------------------------------------------------------------------------- /scripts/logs/info.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/logs/info.sh -------------------------------------------------------------------------------- /scripts/project/delete.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/project/delete.sh -------------------------------------------------------------------------------- /scripts/project/firebase.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/project/firebase.sh -------------------------------------------------------------------------------- /scripts/project/linter.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/project/linter.sh -------------------------------------------------------------------------------- /scripts/project/swiftgen.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/project/swiftgen.sh -------------------------------------------------------------------------------- /scripts/project/unit-test.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/project/unit-test.sh -------------------------------------------------------------------------------- /scripts/project/upload-testflight.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/project/upload-testflight.sh -------------------------------------------------------------------------------- /scripts/slather/slather-cmd.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/slather/slather-cmd.sh -------------------------------------------------------------------------------- /scripts/slather/slather-run.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/scripts/slather/slather-run.sh -------------------------------------------------------------------------------- /swiftgen.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/manhpham90vn/ios_boilerplate/HEAD/swiftgen.yml --------------------------------------------------------------------------------