2.9 KiB
2.9 KiB
BookStax – Development Changelog
Session 1
Architecture & Foundation
- Full app architecture planned and implemented from scratch
- Target: iOS 26.2, Xcode 26, Swift 6,
SWIFT_DEFAULT_ACTOR_ISOLATION = MainActor - Models:
BookStackError, all API DTOs (ShelfDTO,BookDTO,ChapterDTO,PageDTO, etc.), SwiftData cache models - Services:
KeychainService(actor),ConnectivityMonitor(@Observable),BookStackAPI(actor),SyncService - ViewModels:
OnboardingViewModel,LibraryViewModel,SearchViewModel,PageEditorViewModel - Views: Full onboarding flow, library hierarchy, page reader (WebPage/WebView iOS 26), editor, search, settings, main tab view
- Localisation: English, German, Spanish (
Localizable.strings) - SwiftData model container, onboarding gate, Keychain credential loading wired in
bookstaxApp.swift
Session 2
Bug Fixes
- BookStackAPI filter syntax: Fixed
book_id=X→filter[book_id]=Xfor chapters and pages endpoints (BookStack API requirement) - Color picker in Settings not responding: Added
.buttonStyle(.plain)to swatch buttons insideForm(SwiftUI list button style conflict)
Localisation
- Search section fully translated: Replaced all hardcoded English strings in
SearchView.swiftwithL()keys ContentType.displayName: Changed from hardcoded English toNSLocalizedString(required becausenonisolatedstructs can't call@MainActor-isolatedL())- New localisation keys added to en/de/es:
search.loading,search.empty.title,search.empty.message,search.filter.all,search.type.page/book/chapter/shelf
Breadcrumb Navigation (Library)
- Added
BookInShelfwrapper struct (Hashable) to carry shelf context throughNavigationStack - Added
Crumbstruct andBreadcrumbBarview (scrollable, tappable ancestor crumbs) - Breadcrumbs embedded as first
SectioninList(prevents large title collapse that occurred with.safeAreaInset) BooksInShelfView: shows Library → Shelf crumbs, dismiss action on Library crumbBookDetailView: shows Library → Shelf → Book crumbs, newshelfName: String?parameter- New
navigationDestination(for: BookInShelf.self)inLibraryView
Session 3
App Icon
- Created three 1024×1024 app icon variants (light, dark, tinted) using provided artwork
- Light (
AppIcon.png): isometric purple BookStax books on white background - Dark (
AppIcon-dark.png): same books on dark navy background (user-provided AI-generated image) - Tinted (
AppIcon-tinted.png): greyscale version of dark icon for iOS tinted icon mode Contents.jsonreferences all three variants with correctluminosityappearance entries- Icon files also saved as standalone copies in
bookstax/bookstax/
Build Fix
- Fixed stray
tcharacter at top ofPageEditorView.swiftcausing compile errors (timport SwiftUI→import SwiftUI)