Skip to content
Snippets Groups Projects

Organizing Package.swift

Merged Bruno Muniz requested to merge refactor/package-swift into development
1 file
+ 0
1
Compare changes
  • Side-by-side
  • Inline
+ 668
831
@@ -15,7 +15,6 @@ let package = Package(
.library(name: "Models", targets: ["Models"]),
.library(name: "XXLogger", targets: ["XXLogger"]),
.library(name: "Defaults", targets: ["Defaults"]),
.library(name: "Bindings", targets: ["Bindings"]),
.library(name: "Keychain", targets: ["Keychain"]),
.library(name: "Voxophone", targets: ["Voxophone"]),
.library(name: "Countries", targets: ["Countries"]),
@@ -30,6 +29,7 @@ let package = Package(
.library(name: "SFTPFeature", targets: ["SFTPFeature"]),
.library(name: "CrashService", targets: ["CrashService"]),
.library(name: "Presentation", targets: ["Presentation"]),
.library(name: "ToastFeature", targets: ["ToastFeature"]),
.library(name: "BackupFeature", targets: ["BackupFeature"]),
.library(name: "LaunchFeature", targets: ["LaunchFeature"]),
.library(name: "iCloudFeature", targets: ["iCloudFeature"]),
@@ -50,842 +50,679 @@ let package = Package(
.library(name: "OnboardingFeature", targets: ["OnboardingFeature"]),
.library(name: "GoogleDriveFeature", targets: ["GoogleDriveFeature"]),
.library(name: "ContactListFeature", targets: ["ContactListFeature"]),
.library(name: "DependencyInjection", targets: ["DependencyInjection"])
.library(name: "DependencyInjection", targets: ["DependencyInjection"]),
],
dependencies: [
.package(url: "https://github.com/Quick/Quick", from: "3.0.0"),
.package(url: "https://github.com/Quick/Nimble", from: "9.0.0"),
.package(url: "https://github.com/SnapKit/SnapKit", from: "5.0.1"),
.package(url: "https://github.com/icanzilb/Retry.git", from: "0.6.3"),
.package(url: "https://github.com/ekazaev/ChatLayout", from: "1.1.14"),
.package(url: "https://github.com/ra1028/DifferenceKit", from: "1.2.0"),
.package(url: "https://github.com/apple/swift-protobuf", from: "1.14.0"),
.package(url: "https://github.com/google/GoogleSignIn-iOS", from: "6.1.0"),
.package(url: "https://github.com/dropbox/SwiftyDropbox.git", from: "8.2.1"),
.package(url: "https://github.com/amosavian/FileProvider.git", from: "0.26.0"),
.package(url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git", from: "1.9.5"),
.package(url: "https://github.com/darrarski/ScrollViewController", from: "1.2.0"),
.package(url: "https://github.com/pointfreeco/combine-schedulers", from: "0.5.0"),
.package(url: "https://github.com/kishikawakatsumi/KeychainAccess", from: "4.2.1"),
.package(url: "https://github.com/google/google-api-objectivec-client-for-rest", from: "1.6.0"),
.package(url: "https://git.xx.network/elixxir/client-ios-db.git", .upToNextMajor(from: "1.0.8")),
.package(url: "https://github.com/firebase/firebase-ios-sdk.git", .upToNextMajor(from: "8.10.0")),
.package(url: "https://github.com/darrarski/Shout.git", revision: "df5a662293f0ac15eeb4f2fd3ffd0c07b73d0de0"),
.package(url: "https://github.com/pointfreeco/swift-composable-architecture.git",.upToNextMajor(from: "0.32.0")),
.package(url: "https://github.com/pointfreeco/swift-custom-dump.git", .upToNextMajor(from: "0.5.0")),
.package(url: "https://github.com/pointfreeco/xctest-dynamic-overlay.git", .upToNextMajor(from: "0.3.3")),
.package(
url: "https://github.com/Quick/Quick",
.upToNextMajor(from: "3.0.0")
),
.package(
url: "https://github.com/Quick/Nimble",
.upToNextMajor(from: "9.0.0")
),
.package(
url: "https://github.com/SnapKit/SnapKit",
.upToNextMajor(from: "5.0.1")
),
.package(
url: "https://github.com/icanzilb/Retry.git",
.upToNextMajor(from: "0.6.3")
),
.package(
url: "https://github.com/ekazaev/ChatLayout",
.upToNextMajor(from: "1.1.14")
),
.package(
url: "https://github.com/ra1028/DifferenceKit",
.upToNextMajor(from: "1.2.0")
),
.package(
url: "https://github.com/apple/swift-protobuf",
.upToNextMajor(from: "1.14.0")
),
.package(
url: "https://github.com/google/GoogleSignIn-iOS",
.upToNextMajor(from: "6.1.0")
),
.package(
url: "https://github.com/dropbox/SwiftyDropbox.git",
.upToNextMajor(from: "8.2.1")
),
.package(
url: "https://github.com/amosavian/FileProvider.git",
.upToNextMajor(from: "0.26.0")
),
.package(
url: "https://github.com/SwiftyBeaver/SwiftyBeaver.git",
.upToNextMajor(from: "1.9.5")
),
.package(
url: "https://github.com/darrarski/ScrollViewController",
.upToNextMajor(from: "1.2.0")
),
.package(
url: "https://github.com/pointfreeco/combine-schedulers",
.upToNextMajor(from: "0.5.0")
),
.package(
url: "https://github.com/kishikawakatsumi/KeychainAccess",
.upToNextMajor(from: "4.2.1")
),
.package(
url: "https://github.com/google/google-api-objectivec-client-for-rest",
.upToNextMajor(from: "1.6.0")
),
.package(
url: "https://git.xx.network/elixxir/client-ios-db.git",
.upToNextMajor(from: "1.0.8")
),
.package(
url: "https://github.com/firebase/firebase-ios-sdk.git",
.upToNextMajor(from: "8.10.0")
),
.package(
url: "https://github.com/darrarski/Shout.git",
revision: "df5a662293f0ac15eeb4f2fd3ffd0c07b73d0de0"
),
.package(
url: "https://github.com/pointfreeco/swift-composable-architecture.git",
.upToNextMajor(from: "0.32.0")
),
.package(
url: "https://github.com/pointfreeco/swift-custom-dump.git",
.upToNextMajor(from: "0.5.0")
),
.package(
url: "https://github.com/pointfreeco/xctest-dynamic-overlay.git",
.upToNextMajor(from: "0.3.3")
),
],
targets: [
.target(
name: "App",
dependencies: [
"Keychain",
"Voxophone",
"Permissions",
"ScanFeature",
"ChatFeature",
"MenuFeature",
"PushFeature",
"SFTPFeature",
"ToastFeature",
"CrashService",
"BackupFeature",
"SearchFeature",
"LaunchFeature",
"iCloudFeature",
"DropboxFeature",
"ContactFeature",
"RestoreFeature",
"ProfileFeature",
"CrashReporting",
"ChatListFeature",
"SettingsFeature",
"RequestsFeature",
"OnboardingFeature",
"GoogleDriveFeature",
"ContactListFeature"
]
),
.target(name: "CrashReporting"),
.target(name: "NetworkMonitor"),
.target(name: "VersionChecking"),
.target(name: "DependencyInjection"),
.target(name: "InputField", dependencies: ["Shared"]),
.binaryTarget(name: "Bindings", path: "XCFrameworks/Bindings.xcframework"),
// MARK: - Permissions
.target(
name: "Permissions",
dependencies: [
"Theme",
"Shared",
"DependencyInjection"
]
),
// MARK: - PushFeature
.target(
name: "PushFeature",
dependencies: [
"Models",
"Defaults",
"Integration",
"DependencyInjection"
]
),
// MARK: - TestHelpers
.target(
name: "TestHelpers",
dependencies: [
"Models",
"Presentation"
]
),
// MARK: - Keychain
.target(
name: "Keychain",
dependencies: [
.product(
name: "KeychainAccess",
package: "KeychainAccess"
)
]
),
// MARK: - Voxophone
.target(
name: "Voxophone",
dependencies: [
"Shared"
]
),
// MARK: - Models
.target(
name: "Models",
dependencies: [
.product(
name: "DifferenceKit",
package: "DifferenceKit"
),
.product(
name: "SwiftProtobuf",
package: "swift-protobuf"
)
]
),
// MARK: - Defaults
.target(
name: "Defaults",
dependencies: [
"DependencyInjection"
]
),
// MARK: - ToastFeature
.target(
name: "ToastFeature",
dependencies: [
"Shared"
]
),
// MARK: - CrashService
.target(
name: "CrashService",
dependencies: [
"CrashReporting",
.product(
name: "FirebaseCrashlytics",
package: "firebase-ios-sdk"
)
]
),
// MARK: - SFTPFeature
.target(
name: "SFTPFeature",
dependencies: [
"HUD",
"Models",
"Shared",
"Keychain",
"InputField",
"Presentation",
"DependencyInjection",
.product(
name: "Shout",
package: "Shout"
)
]
),
// MARK: - GoogleDriveFeature
.target(
name: "GoogleDriveFeature",
dependencies: [
.product(
name: "GoogleSignIn",
package: "GoogleSignIn-iOS"
),
.product(
name: "GoogleAPIClientForREST_Drive",
package: "google-api-objectivec-client-for-rest"
)
],
resources: [.process("Resources")]
),
// MARK: - iCloudFeature
.target(
name: "iCloudFeature",
dependencies: [
.product(
name: "FilesProvider",
package: "FileProvider"
)
]
),
// MARK: - DropboxFeature
.target(
name: "DropboxFeature",
dependencies: [
.product(
name: "SwiftyDropbox",
package: "SwiftyDropbox"
)
],
resources: [.process("Resources")]
),
// MARK: - Countries
.target(
name: "Countries",
dependencies: [
"Theme",
"Shared",
"DependencyInjection"
],
resources: [.process("Resources")]
),
// MARK: - Theme
.target(
name: "Theme",
dependencies: [
"Defaults",
"DependencyInjection"
]
),
// MARK: - DrawerFeature
.target(
name: "DrawerFeature",
dependencies: [
"Shared",
"InputField",
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
]
),
// MARK: - HUD
.target(
name: "HUD",
dependencies: [
"Theme",
"Shared",
.product(
name: "SnapKit",
package: "SnapKit"
)
]
),
// MARK: - XXLogger
.target(
name: "XXLogger",
dependencies: [
.product(
name: "SwiftyBeaver",
package: "SwiftyBeaver"
)
]
),
// MARK: - Shared
.target(
name: "Shared",
dependencies: [
.product(
name: "SnapKit",
package: "SnapKit"
),
.product(
name: "ChatLayout",
package: "ChatLayout"
),
.product(
name: "DifferenceKit",
package: "DifferenceKit"
)
],
exclude: ["swiftgen.yml"],
resources: [.process("Resources")]
),
// MARK: - Integration
.target(
name: "Integration",
dependencies: [
"Shared",
"Bindings",
"XXLogger",
"Keychain",
"ToastFeature",
"BackupFeature",
"CrashReporting",
"NetworkMonitor",
"DependencyInjection",
.product(
name: "Retry",
package: "Retry"
),
.product(
name: "XXDatabase",
package: "client-ios-db"
),
.product(
name: "XXLegacyDatabaseMigrator",
package: "client-ios-db"
)
],
resources: [.process("Resources")]
),
// MARK: - Presentation
.target(
name: "Presentation",
dependencies: [
"Theme",
"Shared",
.product(
name: "SnapKit",
package: "SnapKit"
)
]
),
// MARK: - ChatInputFeature
.target(
name: "ChatInputFeature",
dependencies: [
"Voxophone",
.product(
name: "ComposableArchitecture",
package: "swift-composable-architecture"
)
]
),
// MARK: - RestoreFeature
.target(
name: "RestoreFeature",
dependencies: [
"HUD",
"Shared",
"SFTPFeature",
"Integration",
"Presentation",
"iCloudFeature",
"DropboxFeature",
"GoogleDriveFeature",
"DependencyInjection"
]
),
// MARK: - ContactFeature
.target(
name: "ContactFeature",
dependencies: [
"Shared",
"InputField",
"ChatFeature",
"Presentation",
.product(
name: "CombineSchedulers",
package: "combine-schedulers"
),
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
]
),
// MARK: - ChatFeature
.target(
name: "ChatFeature",
dependencies: [
"HUD",
"Theme",
"Shared",
"Defaults",
"Keychain",
"Voxophone",
"Integration",
"Permissions",
"Presentation",
"DrawerFeature",
"ChatInputFeature",
"DependencyInjection",
.product(
name: "ChatLayout",
package: "ChatLayout"
),
.product(
name: "DifferenceKit",
package: "DifferenceKit"
),
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
]
),
// MARK: - SearchFeature
.target(
name: "SearchFeature",
dependencies: [
"HUD",
"Shared",
"Countries",
"Integration",
"Presentation",
"ContactFeature",
"DependencyInjection"
]
),
// MARK: - LaunchFeature
.target(
name: "LaunchFeature",
dependencies: [
"HUD",
"Theme",
"Shared",
"Defaults",
"PushFeature",
"Integration",
"Permissions",
"DropboxFeature",
"VersionChecking",
"DependencyInjection"
]
),
// MARK: - RequestsFeature
.target(
name: "RequestsFeature",
dependencies: [
"Theme",
"Shared",
"Integration",
"ToastFeature",
"ContactFeature",
"DependencyInjection",
.product(
name: "DifferenceKit",
package: "DifferenceKit"
)
]
),
// MARK: - ProfileFeature
.target(
name: "ProfileFeature",
dependencies: [
"HUD",
"Theme",
"Shared",
"Keychain",
"Defaults",
"Countries",
"InputField",
"MenuFeature",
"Permissions",
"Integration",
"Presentation",
"DrawerFeature",
"DependencyInjection",
.product(
name: "CombineSchedulers",
package: "combine-schedulers"
),
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
]
),
// MARK: - ChatListFeature
.target(
name: "ChatListFeature",
dependencies: [
"Theme",
"Shared",
"Defaults",
"MenuFeature",
"ChatFeature",
"ProfileFeature",
"SettingsFeature",
"ContactListFeature",
"DependencyInjection",
.product(
name: "DifferenceKit",
package: "DifferenceKit"
)
]
),
// MARK: - OnboardingFeature
.target(
name: "OnboardingFeature",
dependencies: [
"HUD",
"Shared",
"Defaults",
"Keychain",
"Countries",
"InputField",
"Permissions",
"PushFeature",
"Integration",
"Presentation",
"DrawerFeature",
"VersionChecking",
"DependencyInjection",
.product(
name: "CombineSchedulers",
package: "combine-schedulers"
),
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
]
),
// MARK: - MenuFeature
.target(
name: "MenuFeature",
dependencies: [
"Theme",
"Shared",
"Defaults",
"Integration",
"Presentation",
"DependencyInjection"
]
),
// MARK: - BackupFeature
.target(
name: "BackupFeature",
dependencies: [
"HUD",
"Shared",
"Models",
"InputField",
"SFTPFeature",
"Presentation",
"iCloudFeature",
"DrawerFeature",
"DropboxFeature",
"GoogleDriveFeature",
"DependencyInjection"
]
),
// MARK: - ScanFeature
.target(
name: "ScanFeature",
dependencies: [
"Theme",
"Shared",
"Countries",
"Permissions",
"Integration",
"Presentation",
"ContactFeature",
"DependencyInjection",
.product(
name: "SnapKit",
package: "SnapKit"
)
]
),
// MARK: - ContactListFeature
.target(
name: "ContactListFeature",
dependencies: [
"Theme",
"Shared",
"Integration",
"Presentation",
"ContactFeature",
"DependencyInjection",
.product(
name: "DifferenceKit",
package: "DifferenceKit"
)
]
),
// MARK: - SettingsFeature
.target(
name: "SettingsFeature",
dependencies: [
"HUD",
"Theme",
"Shared",
"Defaults",
"Keychain",
"InputField",
"PushFeature",
"Permissions",
"MenuFeature",
"Integration",
"Presentation",
"DrawerFeature",
"DependencyInjection",
.product(
name: "CombineSchedulers",
package: "combine-schedulers"
),
.product(
name: "ScrollViewController",
package: "ScrollViewController"
)
]
),
// MARK: - DependencyInjectionTests
.testTarget(
name: "DependencyInjectionTests",
dependencies: ["DependencyInjection"]
),
// MARK: - AppTests
.testTarget(
name: "AppTests",
dependencies: ["App"]
),
// MARK: - ProfileFeatureTests
.testTarget(
name: "ProfileFeatureTests",
dependencies: [
"TestHelpers",
"ProfileFeature",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - ContactFeatureTests
.testTarget(
name: "ContactFeatureTests",
dependencies: [
"TestHelpers",
"ContactFeature",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - SearchFeatureTests
.testTarget(
name: "SearchFeatureTests",
dependencies: [
"TestHelpers",
"SearchFeature",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - RequestsFeatureTests
.testTarget(
name: "RequestsFeatureTests",
dependencies: [
"TestHelpers",
"RequestsFeature",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - SettingsFeatureTests
.testTarget(
name: "SettingsFeatureTests",
dependencies: [
"TestHelpers",
"SettingsFeature",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - SettingsFeatureTests
.testTarget(
name: "ChatListFeatureTests",
dependencies: [
"TestHelpers",
"ChatListFeature",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - ContactListFeatureTests
.testTarget(
name: "ContactListFeatureTests",
dependencies: [
"TestHelpers",
"ContactListFeature",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - OnboardingFeatureTests
.testTarget(
name: "OnboardingFeatureTests",
dependencies: [
"TestHelpers",
"OnboardingFeature",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - PresentationTests
.testTarget(
name: "PresentationTests",
dependencies: [
"Presentation",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - ThemeTests
.testTarget(
name: "ThemeTests",
dependencies: [
"Theme",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - ChatFeatureTests
.testTarget(
name: "ChatFeatureTests",
dependencies: [
"ChatFeature",
"TestHelpers",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - ScanFeatureTests
.testTarget(
name: "ScanFeatureTests",
dependencies: [
"TestHelpers",
"ScanFeature",
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble")
]
),
// MARK: - CollectionView
.target(
name: "CollectionView",
dependencies: [
.product(name: "ChatLayout", package: "ChatLayout"),
.product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"),
]
),
.testTarget(
name: "CollectionViewTests",
dependencies: [
.target(name: "CollectionView"),
.product(name: "CustomDump", package: "swift-custom-dump"),
]
),
.target(name: "Keychain"),
.target(name: "Voxophone"),
.target(name: "Permissions"),
.target(name: "ScanFeature"),
.target(name: "ChatFeature"),
.target(name: "MenuFeature"),
.target(name: "PushFeature"),
.target(name: "SFTPFeature"),
.target(name: "ToastFeature"),
.target(name: "CrashService"),
.target(name: "BackupFeature"),
.target(name: "SearchFeature"),
.target(name: "LaunchFeature"),
.target(name: "iCloudFeature"),
.target(name: "DropboxFeature"),
.target(name: "ContactFeature"),
.target(name: "RestoreFeature"),
.target(name: "ProfileFeature"),
.target(name: "CrashReporting"),
.target(name: "ChatListFeature"),
.target(name: "SettingsFeature"),
.target(name: "RequestsFeature"),
.target(name: "OnboardingFeature"),
.target(name: "GoogleDriveFeature"),
.target(name: "ContactListFeature"),
]
),
.testTarget(
name: "AppTests",
dependencies: [
.target(name: "App"),
]
),
.target(
name: "CrashReporting"
),
.target(
name: "NetworkMonitor"
),
.target(
name: "VersionChecking"
),
.target(
name: "DependencyInjection"
),
.testTarget(
name: "DependencyInjectionTests",
dependencies: [
.target(name: "DependencyInjection"),
]
),
.target(
name: "InputField",
dependencies: [
.target(name: "Shared"),
]
),
.binaryTarget(
name: "Bindings",
path: "XCFrameworks/Bindings.xcframework"
),
.target(
name: "Permissions",
dependencies: [
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "DependencyInjection"),
]
),
.target(
name: "PushFeature",
dependencies: [
.target(name: "Models"),
.target(name: "Defaults"),
.target(name: "Integration"),
.target(name: "DependencyInjection"),
]
),
.target(
name: "TestHelpers",
dependencies: [
.target(name: "Models"),
.target(name: "Presentation"),
]
),
.target(
name: "Keychain",
dependencies: [
.product(name: "KeychainAccess", package: "KeychainAccess"),
]
),
.target(
name: "Voxophone",
dependencies: [
.target(name: "Shared"),
]
),
.target(
name: "Models",
dependencies: [
.product(name: "DifferenceKit", package: "DifferenceKit"),
.product(name: "SwiftProtobuf", package: "swift-protobuf"),
]
),
.target(
name: "Defaults",
dependencies: [
.target(name: "DependencyInjection"),
]
),
.target(
name: "ToastFeature",
dependencies: [
.target(name: "Shared"),
]
),
.target(
name: "CrashService",
dependencies: [
.target(name: "CrashReporting"),
.product(name: "FirebaseCrashlytics", package: "firebase-ios-sdk"),
]
),
.target(
name: "SFTPFeature",
dependencies: [
.target(name: "HUD"),
.target(name: "Models"),
.target(name: "Shared"),
.target(name: "Keychain"),
.target(name: "InputField"),
.target(name: "Presentation"),
.target(name: "DependencyInjection"),
.product(name: "Shout", package: "Shout"),
]
),
.target(
name: "GoogleDriveFeature",
dependencies: [
.product(name: "GoogleSignIn", package: "GoogleSignIn-iOS"),
.product(name: "GoogleAPIClientForREST_Drive", package: "google-api-objectivec-client-for-rest"),
],
resources: [
.process("Resources"),
]
),
.target(
name: "iCloudFeature",
dependencies: [
.product(name: "FilesProvider", package: "FileProvider"),
]
),
.target(
name: "DropboxFeature",
dependencies: [
.product(name: "SwiftyDropbox", package: "SwiftyDropbox"),
],
resources: [
.process("Resources"),
]
),
.target(
name: "Countries",
dependencies: [
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "DependencyInjection"),
],
resources: [
.process("Resources"),
]
),
.target(
name: "Theme",
dependencies: [
.target(name: "Defaults"),
.target(name: "DependencyInjection"),
]
),
.testTarget(
name: "ThemeTests",
dependencies: [
.target(name: "Theme"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "DrawerFeature",
dependencies: [
.target(name: "Shared"),
.target(name: "InputField"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
]
),
.target(
name: "HUD",
dependencies: [
.target(name: "Theme"),
.target(name: "Shared"),
.product(name: "SnapKit", package: "SnapKit"),
]
),
.target(
name: "XXLogger",
dependencies: [
.product(name: "SwiftyBeaver", package: "SwiftyBeaver"),
]
),
.target(
name: "Shared",
dependencies: [
.product(name: "SnapKit", package: "SnapKit"),
.product(name: "ChatLayout", package: "ChatLayout"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
],
exclude: [
"swiftgen.yml",
],
resources: [
.process("Resources"),
]
),
.target(
name: "Integration",
dependencies: [
.target(name: "Shared"),
.target(name: "Bindings"),
.target(name: "XXLogger"),
.target(name: "Keychain"),
.target(name: "ToastFeature"),
.target(name: "BackupFeature"),
.target(name: "CrashReporting"),
.target(name: "NetworkMonitor"),
.target(name: "DependencyInjection"),
.product(name: "Retry", package: "Retry"),
.product(name: "XXDatabase", package: "client-ios-db"),
.product(name: "XXLegacyDatabaseMigrator", package: "client-ios-db"),
],
resources: [
.process("Resources"),
]
),
.target(
name: "Presentation",
dependencies: [
.target(name: "Theme"),
.target(name: "Shared"),
.product(name: "SnapKit", package: "SnapKit"),
]
),
.testTarget(
name: "PresentationTests",
dependencies: [
.target(name: "Presentation"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "ChatInputFeature",
dependencies: [
.target(name: "Voxophone"),
.product(name: "ComposableArchitecture", package: "swift-composable-architecture"),
]
),
.target(
name: "RestoreFeature",
dependencies: [
.target(name: "HUD"),
.target(name: "Shared"),
.target(name: "SFTPFeature"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "iCloudFeature"),
.target(name: "DropboxFeature"),
.target(name: "GoogleDriveFeature"),
.target(name: "DependencyInjection"),
]
),
.target(
name: "ContactFeature",
dependencies: [
.target(name: "Shared"),
.target(name: "InputField"),
.target(name: "ChatFeature"),
.target(name: "Presentation"),
.product(name: "CombineSchedulers", package: "combine-schedulers"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
]
),
.testTarget(
name: "ContactFeatureTests",
dependencies: [
.target(name: "TestHelpers"),
.target(name: "ContactFeature"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "ChatFeature",
dependencies: [
.target(name: "HUD"),
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "Defaults"),
.target(name: "Keychain"),
.target(name: "Voxophone"),
.target(name: "Integration"),
.target(name: "Permissions"),
.target(name: "Presentation"),
.target(name: "DrawerFeature"),
.target(name: "ChatInputFeature"),
.target(name: "DependencyInjection"),
.product(name: "ChatLayout", package: "ChatLayout"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
]
),
.testTarget(
name: "ChatFeatureTests",
dependencies: [
.target(name: "ChatFeature"),
.target(name: "TestHelpers"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "SearchFeature",
dependencies: [
.target(name: "HUD"),
.target(name: "Shared"),
.target(name: "Countries"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "ContactFeature"),
.target(name: "DependencyInjection"),
]
),
.testTarget(
name: "SearchFeatureTests",
dependencies: [
.target(name: "TestHelpers"),
.target(name: "SearchFeature"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "LaunchFeature",
dependencies: [
.target(name: "HUD"),
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "Defaults"),
.target(name: "PushFeature"),
.target(name: "Integration"),
.target(name: "Permissions"),
.target(name: "DropboxFeature"),
.target(name: "VersionChecking"),
.target(name: "DependencyInjection"),
]
),
.target(
name: "RequestsFeature",
dependencies: [
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "Integration"),
.target(name: "ToastFeature"),
.target(name: "ContactFeature"),
.target(name: "DependencyInjection"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
]
),
.testTarget(
name: "RequestsFeatureTests",
dependencies: [
.target(name: "TestHelpers"),
.target(name: "RequestsFeature"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "ProfileFeature",
dependencies: [
.target(name: "HUD"),
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "Keychain"),
.target(name: "Defaults"),
.target(name: "Countries"),
.target(name: "InputField"),
.target(name: "MenuFeature"),
.target(name: "Permissions"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "DrawerFeature"),
.target(name: "DependencyInjection"),
.product(name: "CombineSchedulers", package: "combine-schedulers"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
]
),
.testTarget(
name: "ProfileFeatureTests",
dependencies: [
.target(name: "TestHelpers"),
.target(name: "ProfileFeature"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "ChatListFeature",
dependencies: [
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "Defaults"),
.target(name: "MenuFeature"),
.target(name: "ChatFeature"),
.target(name: "ProfileFeature"),
.target(name: "SettingsFeature"),
.target(name: "ContactListFeature"),
.target(name: "DependencyInjection"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
]
),
.testTarget(
name: "ChatListFeatureTests",
dependencies: [
.target(name: "TestHelpers"),
.target(name: "ChatListFeature"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "OnboardingFeature",
dependencies: [
.target(name: "HUD"),
.target(name: "Shared"),
.target(name: "Defaults"),
.target(name: "Keychain"),
.target(name: "Countries"),
.target(name: "InputField"),
.target(name: "Permissions"),
.target(name: "PushFeature"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "DrawerFeature"),
.target(name: "VersionChecking"),
.target(name: "DependencyInjection"),
.product(name: "CombineSchedulers", package: "combine-schedulers"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
]
),
.testTarget(
name: "OnboardingFeatureTests",
dependencies: [
.target(name: "TestHelpers"),
.target(name: "OnboardingFeature"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "MenuFeature",
dependencies: [
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "Defaults"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "DependencyInjection"),
]
),
.target(
name: "BackupFeature",
dependencies: [
.target(name: "HUD"),
.target(name: "Shared"),
.target(name: "Models"),
.target(name: "InputField"),
.target(name: "SFTPFeature"),
.target(name: "Presentation"),
.target(name: "iCloudFeature"),
.target(name: "DrawerFeature"),
.target(name: "DropboxFeature"),
.target(name: "GoogleDriveFeature"),
.target(name: "DependencyInjection"),
]
),
.target(
name: "ScanFeature",
dependencies: [
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "Countries"),
.target(name: "Permissions"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "ContactFeature"),
.target(name: "DependencyInjection"),
.product(name: "SnapKit", package: "SnapKit"),
]
),
.testTarget(
name: "ScanFeatureTests",
dependencies: [
.target(name: "ScanFeature"),
.target(name: "TestHelpers"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "ContactListFeature",
dependencies: [
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "ContactFeature"),
.target(name: "DependencyInjection"),
.product(name: "DifferenceKit", package: "DifferenceKit"),
]
),
.testTarget(
name: "ContactListFeatureTests",
dependencies: [
.target(name: "TestHelpers"),
.target(name: "ContactListFeature"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "SettingsFeature",
dependencies: [
.target(name: "HUD"),
.target(name: "Theme"),
.target(name: "Shared"),
.target(name: "Defaults"),
.target(name: "Keychain"),
.target(name: "InputField"),
.target(name: "PushFeature"),
.target(name: "Permissions"),
.target(name: "MenuFeature"),
.target(name: "Integration"),
.target(name: "Presentation"),
.target(name: "DrawerFeature"),
.target(name: "DependencyInjection"),
.product(name: "CombineSchedulers", package: "combine-schedulers"),
.product(name: "ScrollViewController", package: "ScrollViewController"),
]
),
.testTarget(
name: "SettingsFeatureTests",
dependencies: [
.target(name: "TestHelpers"),
.target(name: "SettingsFeature"),
.product(name: "Quick", package: "Quick"),
.product(name: "Nimble", package: "Nimble"),
]
),
.target(
name: "CollectionView",
dependencies: [
.product(name: "ChatLayout", package: "ChatLayout"),
.product(name: "XCTestDynamicOverlay", package: "xctest-dynamic-overlay"),
]
),
.testTarget(
name: "CollectionViewTests",
dependencies: [
.target(name: "CollectionView"),
.product(name: "CustomDump", package: "swift-custom-dump"),
]
),
]
)
Loading