- 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
180 lines
5.3 KiB
JSON
180 lines
5.3 KiB
JSON
{
|
|
"object" : {
|
|
"artifacts" : [
|
|
|
|
],
|
|
"dependencies" : [
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "openapikit",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/mattpolzin/OpenAPIKit",
|
|
"name" : "OpenAPIKit"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "a75aa4166d916f1cb4a192e928a18f7b6d3516bc",
|
|
"version" : "3.5.2"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "OpenAPIKit"
|
|
},
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "swift-algorithms",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/apple/swift-algorithms",
|
|
"name" : "swift-algorithms"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "87e50f483c54e6efd60e885f7f5aa946cee68023",
|
|
"version" : "1.2.1"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "swift-algorithms"
|
|
},
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "swift-argument-parser",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/apple/swift-argument-parser",
|
|
"name" : "swift-argument-parser"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "011f0c765fb46d9cac61bca19be0527e99c98c8b",
|
|
"version" : "1.5.1"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "swift-argument-parser"
|
|
},
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "swift-collections",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/apple/swift-collections",
|
|
"name" : "swift-collections"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "c1805596154bb3a265fd91b8ac0c4433b4348fb0",
|
|
"version" : "1.2.0"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "swift-collections"
|
|
},
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "swift-http-types",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/apple/swift-http-types",
|
|
"name" : "swift-http-types"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "a0a57e949a8903563aba4615869310c0ebf14c03",
|
|
"version" : "1.4.0"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "swift-http-types"
|
|
},
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "swift-numerics",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/apple/swift-numerics.git",
|
|
"name" : "swift-numerics"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "e0ec0f5f3af6f3e4d5e7a19d2af26b481acb6ba8",
|
|
"version" : "1.0.3"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "swift-numerics"
|
|
},
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "swift-openapi-generator",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/apple/swift-openapi-generator.git",
|
|
"name" : "swift-openapi-generator"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "09ed6c489f88d06228a404a0313adeea743e6cad",
|
|
"version" : "1.8.0"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "swift-openapi-generator"
|
|
},
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "swift-openapi-runtime",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/apple/swift-openapi-runtime.git",
|
|
"name" : "swift-openapi-runtime"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "8f33cc5dfe81169fb167da73584b9c72c3e8bc23",
|
|
"version" : "1.8.2"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "swift-openapi-runtime"
|
|
},
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "swift-openapi-urlsession",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/apple/swift-openapi-urlsession.git",
|
|
"name" : "swift-openapi-urlsession"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "6fac6f7c428d5feea2639b5f5c8b06ddfb79434b",
|
|
"version" : "1.1.0"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "swift-openapi-urlsession"
|
|
},
|
|
{
|
|
"basedOn" : null,
|
|
"packageRef" : {
|
|
"identity" : "yams",
|
|
"kind" : "remoteSourceControl",
|
|
"location" : "https://github.com/jpsim/Yams",
|
|
"name" : "Yams"
|
|
},
|
|
"state" : {
|
|
"checkoutState" : {
|
|
"revision" : "9281f8c99aff4f4a55dce22ae29b1181c935caa5",
|
|
"version" : "6.0.0"
|
|
},
|
|
"name" : "sourceControlCheckout"
|
|
},
|
|
"subpath" : "Yams"
|
|
}
|
|
]
|
|
},
|
|
"version" : 6
|
|
} |