├── .gitignore ├── LICENSE ├── NumberCounterMVC ├── NumberCounterMVC.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata └── NumberCounterMVC │ ├── AppDelegate.swift │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard │ ├── Info.plist │ ├── NumberModel.swift │ └── NumberVC.swift ├── NumberCounterMVP ├── NumberCounterMVP.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── NumberCounterMVP │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ ├── NumberModel.swift │ ├── NumberPresenter.swift │ ├── NumberVC.swift │ └── NumberView.swift └── NumberCounterMVPTests │ ├── Info.plist │ └── NumberPresenterTests.swift ├── NumberCounterMVVM ├── NumberCounterMVVM.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ └── contents.xcworkspacedata ├── NumberCounterMVVM │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── DataBinding.swift │ ├── Info.plist │ ├── NumberModel.swift │ ├── NumberVC.swift │ └── NumberViewModel.swift └── NumberCounterMVVMTests │ ├── Info.plist │ └── NumberCounterViewModelTests.swift └── NumberCounterVIPER ├── NumberCounterVIPER.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata └── NumberCounterVIPER ├── AppDelegate.swift ├── Assets.xcassets └── AppIcon.appiconset │ └── Contents.json ├── Base.lproj ├── LaunchScreen.storyboard └── Main.storyboard ├── Info.plist └── Modules └── NumberCounter ├── Entity └── NumberEntity.swift ├── Interactor ├── NumberInteractor.swift └── NumberInteractorIO.swift ├── Presenter ├── NumberPresenter.swift └── NumberPresenterProtocol.swift ├── View ├── NumberVC.swift └── NumberView.swift └── Wireframe └── Wireframe.swift /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/LICENSE -------------------------------------------------------------------------------- /NumberCounterMVC/NumberCounterMVC.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVC/NumberCounterMVC.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /NumberCounterMVC/NumberCounterMVC.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVC/NumberCounterMVC.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /NumberCounterMVC/NumberCounterMVC/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVC/NumberCounterMVC/AppDelegate.swift -------------------------------------------------------------------------------- /NumberCounterMVC/NumberCounterMVC/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVC/NumberCounterMVC/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /NumberCounterMVC/NumberCounterMVC/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVC/NumberCounterMVC/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /NumberCounterMVC/NumberCounterMVC/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVC/NumberCounterMVC/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /NumberCounterMVC/NumberCounterMVC/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVC/NumberCounterMVC/Info.plist -------------------------------------------------------------------------------- /NumberCounterMVC/NumberCounterMVC/NumberModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVC/NumberCounterMVC/NumberModel.swift -------------------------------------------------------------------------------- /NumberCounterMVC/NumberCounterMVC/NumberVC.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVC/NumberCounterMVC/NumberVC.swift -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP/AppDelegate.swift -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP/Info.plist -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP/NumberModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP/NumberModel.swift -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP/NumberPresenter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP/NumberPresenter.swift -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP/NumberVC.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP/NumberVC.swift -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVP/NumberView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVP/NumberView.swift -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVPTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVPTests/Info.plist -------------------------------------------------------------------------------- /NumberCounterMVP/NumberCounterMVPTests/NumberPresenterTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVP/NumberCounterMVPTests/NumberPresenterTests.swift -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM/AppDelegate.swift -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM/DataBinding.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM/DataBinding.swift -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM/Info.plist -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM/NumberModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM/NumberModel.swift -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM/NumberVC.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM/NumberVC.swift -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVM/NumberViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVM/NumberViewModel.swift -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVMTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVMTests/Info.plist -------------------------------------------------------------------------------- /NumberCounterMVVM/NumberCounterMVVMTests/NumberCounterViewModelTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterMVVM/NumberCounterMVVMTests/NumberCounterViewModelTests.swift -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/AppDelegate.swift -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Info.plist -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Entity/NumberEntity.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Entity/NumberEntity.swift -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Interactor/NumberInteractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Interactor/NumberInteractor.swift -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Interactor/NumberInteractorIO.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Interactor/NumberInteractorIO.swift -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Presenter/NumberPresenter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Presenter/NumberPresenter.swift -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Presenter/NumberPresenterProtocol.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Presenter/NumberPresenterProtocol.swift -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/View/NumberVC.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/View/NumberVC.swift -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/View/NumberView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/View/NumberView.swift -------------------------------------------------------------------------------- /NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Wireframe/Wireframe.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/viettx-demos/ios-app-architectures/HEAD/NumberCounterVIPER/NumberCounterVIPER/Modules/NumberCounter/Wireframe/Wireframe.swift --------------------------------------------------------------------------------