├── .DS_Store ├── README.md └── TheMealsApp ├── .DS_Store ├── .swiftlint.yml ├── TheMealsApp.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ ├── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ ├── WorkspaceSettings.xcsettings │ │ └── swiftpm │ │ │ └── Package.resolved │ └── xcuserdata │ │ └── gilangramadhan.xcuserdatad │ │ ├── IDEFindNavigatorScopes.plist │ │ ├── UserInterfaceState.xcuserstate │ │ └── WorkspaceSettings.xcsettings └── xcuserdata │ └── gilangramadhan.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist ├── TheMealsApp ├── .DS_Store ├── App │ ├── AppDelegate.swift │ ├── ContentView.swift │ └── SceneDelegate.swift ├── Core │ ├── DI │ │ └── Injection.swift │ ├── Data │ │ ├── .DS_Store │ │ ├── MealRepository.swift │ │ └── Remote │ │ │ ├── RemoteDataSource.swift │ │ │ └── Response │ │ │ └── CategoriesResponse.swift │ ├── Domain │ │ ├── Model │ │ │ └── CategoryModel.swift │ │ └── UseCase │ │ │ ├── DetailInteractor.swift │ │ │ └── HomeInteractor.swift │ └── Utils │ │ ├── .DS_Store │ │ ├── Extensions │ │ ├── Color+Ext.swift │ │ └── CustomeError+Ext.swift │ │ ├── Mapper │ │ └── CategoryMapper.swift │ │ ├── Network │ │ └── APICall.swift │ │ └── View │ │ ├── ActivityIndicator.swift │ │ ├── BlurView.swift │ │ ├── CustomEmptyView.swift │ │ ├── CustomIcon.swift │ │ ├── RoundedCorner.swift │ │ ├── SearchBar.swift │ │ └── TabItem.swift ├── Module │ ├── .DS_Store │ ├── Detail │ │ ├── Presenter │ │ │ └── DetailPresenter.swift │ │ └── View │ │ │ └── DetailView.swift │ └── Home │ │ ├── Presenter │ │ └── HomePresenter.swift │ │ ├── Router │ │ └── HomeRouter.swift │ │ └── View │ │ ├── CategoryRow.swift │ │ └── HomeView.swift ├── Preview Content │ └── Preview Assets.xcassets │ │ └── Contents.json └── Supporting Files │ ├── Assets.xcassets │ ├── AccentColor.colorset │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ └── Contents.json │ └── Contents.json │ ├── Base.lproj │ └── LaunchScreen.storyboard │ └── Info.plist ├── TheMealsAppTests ├── Info.plist └── TheMealsAppTests.swift └── TheMealsAppUITests ├── Info.plist └── TheMealsAppUITests.swift /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/README.md -------------------------------------------------------------------------------- /TheMealsApp/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/.DS_Store -------------------------------------------------------------------------------- /TheMealsApp/.swiftlint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/.swiftlint.yml -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcuserdata/gilangramadhan.xcuserdatad/IDEFindNavigatorScopes.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcuserdata/gilangramadhan.xcuserdatad/IDEFindNavigatorScopes.plist -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcuserdata/gilangramadhan.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcuserdata/gilangramadhan.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcuserdata/gilangramadhan.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp.xcodeproj/project.xcworkspace/xcuserdata/gilangramadhan.xcuserdatad/WorkspaceSettings.xcsettings -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp.xcodeproj/xcuserdata/gilangramadhan.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp.xcodeproj/xcuserdata/gilangramadhan.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/.DS_Store -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/App/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/App/AppDelegate.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/App/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/App/ContentView.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/App/SceneDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/App/SceneDelegate.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/DI/Injection.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/DI/Injection.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Data/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Data/.DS_Store -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Data/MealRepository.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Data/MealRepository.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Data/Remote/RemoteDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Data/Remote/RemoteDataSource.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Data/Remote/Response/CategoriesResponse.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Data/Remote/Response/CategoriesResponse.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Domain/Model/CategoryModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Domain/Model/CategoryModel.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Domain/UseCase/DetailInteractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Domain/UseCase/DetailInteractor.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Domain/UseCase/HomeInteractor.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Domain/UseCase/HomeInteractor.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/.DS_Store -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/Extensions/Color+Ext.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/Extensions/Color+Ext.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/Extensions/CustomeError+Ext.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/Extensions/CustomeError+Ext.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/Mapper/CategoryMapper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/Mapper/CategoryMapper.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/Network/APICall.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/Network/APICall.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/View/ActivityIndicator.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/View/ActivityIndicator.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/View/BlurView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/View/BlurView.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/View/CustomEmptyView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/View/CustomEmptyView.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/View/CustomIcon.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/View/CustomIcon.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/View/RoundedCorner.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/View/RoundedCorner.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/View/SearchBar.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/View/SearchBar.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Core/Utils/View/TabItem.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Core/Utils/View/TabItem.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Module/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Module/.DS_Store -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Module/Detail/Presenter/DetailPresenter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Module/Detail/Presenter/DetailPresenter.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Module/Detail/View/DetailView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Module/Detail/View/DetailView.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Module/Home/Presenter/HomePresenter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Module/Home/Presenter/HomePresenter.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Module/Home/Router/HomeRouter.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Module/Home/Router/HomeRouter.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Module/Home/View/CategoryRow.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Module/Home/View/CategoryRow.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Module/Home/View/HomeView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Module/Home/View/HomeView.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Supporting Files/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Supporting Files/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Supporting Files/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Supporting Files/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Supporting Files/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Supporting Files/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Supporting Files/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Supporting Files/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /TheMealsApp/TheMealsApp/Supporting Files/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsApp/Supporting Files/Info.plist -------------------------------------------------------------------------------- /TheMealsApp/TheMealsAppTests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsAppTests/Info.plist -------------------------------------------------------------------------------- /TheMealsApp/TheMealsAppTests/TheMealsAppTests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsAppTests/TheMealsAppTests.swift -------------------------------------------------------------------------------- /TheMealsApp/TheMealsAppUITests/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsAppUITests/Info.plist -------------------------------------------------------------------------------- /TheMealsApp/TheMealsAppUITests/TheMealsAppUITests.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/dicodingacademy/a209-ios-expert-project/HEAD/TheMealsApp/TheMealsAppUITests/TheMealsAppUITests.swift --------------------------------------------------------------------------------