Skip to content
Snippets Groups Projects

Organizing Package.swift

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