app-reviews/Libraries/Package.swift
Javier Cicchelli 09df006ab9 [Framework] Feed list view in the Feed framework (#9)
This PR contains the work done to provide the existing `FeedViewController` view controller with real life data by integrating the `iTunesService` service into its view model. In addition, the list item cell has been design has been updated, and re-implemented using the `SwiftUI` framework.

Reviewed-on: #9
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
2024-03-19 08:31:13 +00:00

123 lines
3.0 KiB
Swift

// swift-tools-version: 5.10
import PackageDescription
let package = Package(
name: .Package.name,
platforms: [
.iOS(.v14)
],
products: [
.library(
name: .Product.name.kit,
targets: [
.Target.feed.kit,
.Target.filter.kit,
.Target.foundation.kit,
.Target.iTunes.kit,
.Target.ui.kit,
]
),
],
targets: [
.target(
name: .Target.feed.kit,
dependencies: [
.byName(name: .Target.foundation.kit),
],
path: "Feed/Kit"
),
.target(
name: .Target.filter.kit,
dependencies: [
.byName(name: .Target.foundation.kit),
],
path: "Filter/Kit"
),
.target(
name: .Target.foundation.kit,
path: "Foundation/Kit"
),
.target(
name: .Target.iTunes.kit,
dependencies: [
.byName(name: .Target.feed.kit),
.byName(name: .Target.foundation.kit),
],
path: "iTunes/Kit"
),
.target(
name: .Target.ui.kit,
dependencies: [
.byName(name: .Target.foundation.kit),
],
path: "UI/Kit"
),
.testTarget(
name: .Target.feed.test,
dependencies: [
.byName(name: .Target.feed.kit),
],
path: "Feed/Test"
),
.testTarget(
name: .Target.filter.test,
dependencies: [
.byName(name: .Target.filter.kit),
],
path: "Filter/Test"
),
.testTarget(
name: .Target.foundation.test,
dependencies: [
.byName(name: .Target.foundation.kit),
],
path: "Foundation/Test"
),
.testTarget(
name: .Target.iTunes.test,
dependencies: [
.byName(name: .Target.iTunes.kit),
],
path: "iTunes/Test"
),
.testTarget(
name: .Target.ui.test,
dependencies: [
.byName(name: .Target.ui.kit),
],
path: "UI/Test"
),
]
)
// MARK: - String+Constants
private extension String {
enum Package {
static let name = "reviews-kit"
}
enum Product {
static let name = "Reviews"
}
enum Target {
static let feed = "\(String.Product.name)Feed"
static let filter = "\(String.Product.name)Filter"
static let foundation = "\(String.Product.name)Foundation"
static let iTunes = "\(String.Product.name)iTunes"
static let ui = "\(String.Product.name)UI"
}
}
// MARK: - String+Computed
private extension String {
var kit: String {
"\(self)Kit"
}
var test: String {
"\(self)Test"
}
}