Clean Architecture SwiftUI示例应用

想做一个清爽且易维护的 iOS 应用吗?试试clean-architecture-swiftui吧!这个示例项目结合了SwiftUIClean Architecture,给你展示如何用清晰的架构设计来开发一个高效、可扩展的应用。它涵盖了CoreData、网络通信、依赖注入和单元测试等关键技术,确保你在开发过程中代码不混乱,业务逻辑与 UI 解耦。Clean Architecture让你的代码更模块化,易于理解和测试。SwiftUI的声明式 UI 风格,搭配上 Clean 架构的层次化设计,UI 和业务逻辑的分离,让你在修改界面时不会影响后端的逻辑。并且,项目中还引入了CoreData持久化方案,用适配器与业务逻辑层交互,切换数据库也不麻烦。依赖注入和单元测试的结合,确保你的代码在扩展和重构过程中不会出问题。如果你想提高自己的架构设计水平,建议深入看看这个项目哦。

zip
clean-architecture-swiftui-master.zip 预估大小:98个文件
folder
clean-architecture-swiftui-master 文件夹
file
.travis.yml 271B
folder
UnitTests 文件夹
folder
System 文件夹
file
SceneDelegateTests.swift 1KB
file
SystemEventsHandlerTests.swift 6KB
file
PushNotificationsHandlerTests.swift 2KB
file
DeepLinksHandlerTests.swift 2KB
file
AppDelegateTests.swift 2KB
folder
UI 文件夹
file
SearchBarTests.swift 2KB
file
ContentViewTests.swift 1KB
file
SVGImageViewTests.swift 3KB
file
RootViewAppearanceTests.swift 2KB
file
ViewPreviewsTests.swift 1KB
file
CountriesListTests.swift 6KB
file
ModalDetailsViewTests.swift 2KB
file
CountryDetailsTests.swift 5KB
file
DeepLinkUITests.swift 4KB
folder
Utilities 文件夹
file
LazyListTests.swift 4KB
file
HelpersTests.swift 781B
file
LoadableTests.swift 3KB
folder
NetworkMocking 文件夹
file
RequestMocking.swift 3KB
file
MockedResponse.swift 2KB
folder
Resources 文件夹
file
svg_convert_01.html 13KB
file
Info.plist 727B
file
svg_convert_02.html 3KB
folder
Repositories 文件夹
file
PushTokenWebRepositoryTests.swift 961B
file
WebRepositoryTests.swift 6KB
file
CountriesDBRepositoryTests.swift 8KB
file
CountriesWebRepositoryTests.swift 3KB
file
ImageWebRepositoryTests.swift 8KB
file
TestHelpers.swift 4KB
folder
Persistence 文件夹
file
CoreDataStackTests.swift 5KB
folder
Interactors 文件夹
file
ImagesInteractorTests.swift 4KB
file
UserPermissionsInteractorTests.swift 3KB
file
CountriesInteractorTests.swift 15KB
folder
Mocks 文件夹
file
MockedDBRepositories.swift 2KB
file
MockedSystemEventsHandler.swift 2KB
file
MockedInteractors.swift 3KB
file
MockedWebRepositories.swift 2KB
file
Mock.swift 1KB
file
MockedPersistentStore.swift 4KB
file
.swiftlint.yml 839B
folder
CountriesSwiftUI.xcodeproj 文件夹
file
project.pbxproj 60KB
folder
xcshareddata 文件夹
folder
xcschemes 文件夹
file
CountriesSwiftUI.xcscheme 4KB
folder
.github 文件夹
file
FUNDING.yml 55B
folder
CountriesSwiftUI 文件夹
folder
Models 文件夹
file
Models.swift 1KB
file
Models+CoreData.swift 4KB
file
MockedData.swift 1KB
folder
System 文件夹
file
AppEnvironment.swift 5KB
file
PushNotificationsHandler.swift 2KB
file
AppDelegate.swift 2KB
file
SystemEventsHandler.swift 4KB
file
SceneDelegate.swift 1KB
file
DeepLinksHandler.swift 2KB
folder
UI 文件夹
file
RootViewModifier.swift 880B
folder
Components 文件夹
file
ErrorView.swift 902B
file
SearchBar.swift 2KB
file
CountryCell.swift 835B
file
ActivityIndicatorView.swift 563B
file
DetailRow.swift 1KB
file
SVGImageView.swift 2KB
folder
Screens 文件夹
file
CountriesList.swift 7KB
file
CountryDetails.swift 5KB
file
ContentView.swift 1KB
file
ModalDetailsView.swift 1KB
folder
Utilities 文件夹
file
Helpers.swift 1KB
file
WebRepository.swift 2KB
file
CancelBag.swift 451B
file
APICall.swift 1KB
file
LazyList.swift 4KB
file
NetworkingHelpers.swift 3KB
file
Store.swift 1KB
file
Loadable.swift 3KB
folder
Resources 文件夹
folder
Assets.xcassets 文件夹
folder
AppIcon.appiconset 文件夹
file
Contents.json 2KB
file
Contents.json 62B
file
CountriesSwiftUI.entitlements 295B
folder
es.lproj 文件夹
file
Localizable.strings 559B
folder
Preview Assets.xcassets 文件夹
file
Contents.json 62B
folder
fr.lproj 文件夹
file
Localizable.strings 562B
folder
ja.lproj 文件夹
file
Localizable.strings 589B
file
Info.plist 2KB
folder
en.lproj 文件夹
file
LaunchScreen.storyboard 2KB
file
Localizable.strings 513B
folder
Repositories 文件夹
file
CountriesDBRepository.swift 4KB
file
CountriesWebRepository.swift 2KB
file
PushTokenWebRepository.swift 803B
file
ImageWebRepository.swift 7KB
folder
Injected 文件夹
file
DependencyInjector.swift 2KB
file
AppState.swift 2KB
file
InteractorsContainer.swift 1019B
folder
Persistence 文件夹
folder
db_model_v1.xcdatamodeld 文件夹
folder
db_model_v1.xcdatamodel 文件夹
file
contents 4KB
file
CoreDataStack.swift 6KB
file
CoreDataHelpers.swift 1KB
folder
Interactors 文件夹
file
UserPermissionsInteractor.swift 3KB
file
CountriesInteractor.swift 4KB
file
ImagesInteractor.swift 1KB
file
LICENSE 1KB
folder
PushNotificationPayload 文件夹
file
push_with_deeplink.apns 220B
file
.gitignore 698B
file
README.md 5KB
...
zip 文件大小:113.53KB