ReadKeep/Package.swift
Ilyas Hallak 98a914cb2e feat: Implementierung der Readeck API mit kompletter Architektur
- API-Klasse mit allen CRUD-Operationen für Bookmarks
  - Login/Authentifizierung mit Bearer Token
  - Bookmarks abrufen (Liste und Details)
  - Artikel-Inhalt abrufen
- DTO-Strukturen in separate Dateien aufgeteilt
  - UserDto für Authentifizierung
  - BookmarkDto für Bookmark-Listen
  - BookmarkDetailDto mit vollständigen Metadaten
- MVVM-Architektur mit @Observable
  - SettingsViewModel für Anmeldung
  - BookmarksViewModel für Bookmark-Verwaltung
- SwiftUI Views mit modernem Design
  - SettingsView mit Eingabefeldern und Validierung
  - BookmarksView mit Pull-to-Refresh und Leerzustand
  - MainTabView als Navigation
- Use Case Pattern implementiert
  - LoginUseCase für Authentifizierung
  - GetBookmarksUseCase für Datenabfrage
  - DefaultUseCaseFactory für Dependency Injection
- Fehlerbehandlung und Loading States
- Protocol-basierte Architektur für bessere Testbarkeit
2025-06-11 11:02:19 +02:00

45 lines
1.3 KiB
Swift

// swift-tools-version: 5.9
import PackageDescription
let package = Package(
name: "ReadeckAPI",
platforms: [
.iOS(.v15),
.macOS(.v12),
.tvOS(.v15),
.watchOS(.v8),
.visionOS(.v1)
],
products: [
.library(
name: "ReadeckAPI",
targets: ["ReadeckAPI"]
),
],
dependencies: [
// Swift OpenAPI Generator (Codegenerierung beim Build)
.package(url: "https://github.com/apple/swift-openapi-generator.git", from: "1.2.0"),
// OpenAPI Runtime (Laufzeitkomponenten)
.package(url: "https://github.com/apple/swift-openapi-runtime.git", from: "1.3.0"),
// Optional: URLSession-Transport für HTTP-Clients
.package(url: "https://github.com/apple/swift-openapi-urlsession.git", from: "1.0.0")
],
targets: [
.target(
name: "ReadeckAPI",
dependencies: [
.product(name: "OpenAPIRuntime", package: "swift-openapi-runtime"),
.product(name: "OpenAPIURLSession", package: "swift-openapi-urlsession")
],
plugins: [
.plugin(name: "OpenAPIGenerator", package: "swift-openapi-generator")
]
),
.testTarget(
name: "ReadeckAPITests",
dependencies: ["ReadeckAPI"]
)
]
)