How proverbiallemon/sailswift works
Sailswift is a native macOS manager for Ship of Harkinian mods. Users browse GameBanana or open an install link, download and install a mod, then manage enabled state and load order or launch the game. The app also saves/restores profiles, shares modpacks, and checks installed mods for updates. AppState is the central workflow coordinator; the graph reflects README capabilities and sampled source, while some unsampled feature wiring is documented rather than inferred.
Main entry points: AppState.swift App state · MainView.swift Main view · DownloadManager.swift Download manager · ModManager.swift Mod manager
Components 26
App interface
- SwiftUI app
Sailswift/App/SailswiftApp.swift - Main view
Sailswift/Views/MainView.swift - Mod list
Sailswift/Views/ModListView.swift - Mod browser
Sailswift/Views/ModBrowserView.swift - Settings
Sailswift/Views/SettingsView.swift
Mod workflows
- App state
Sailswift/App/AppState.swift - Mod manager
Sailswift/ViewModels/ModManager.swift - Download manager
Sailswift/ViewModels/DownloadManager.swift - Profile manager
Sailswift/Models/ModProfile.swift - Modpack export
Sailswift/Views/ModpackExportView.swift
Services and integrations
- GameBanana API
Sailswift/ViewModels/GameBananaAPI.swift - Update checker
Sailswift/Services/ModUpdateChecker.swift - File service
Sailswift/Services/FileService.swift - Archive validator
Sailswift/Services/ArchiveEntryValidator.swift - Game config
Sailswift/Services/GameConfigService.swift - App updater
Sailswift/Services/UpdaterService.swift
Local state
- Mod model
Sailswift/Models/Mod.swift - Modpack model
Sailswift/Models/Modpack.swift - Profiles JSON
- Installed mods
- Game config file
Other components
- User
- Ship of Harkinian
- GameBanana
- Sparkle update service
- macOS file system
Connections 31
- User → SwiftUI app: opens
- SwiftUI app → Main view: shows
- Main view → App state: dispatches actions
- Main view → Mod list: shows mods
- Main view → Mod browser: shows browser
- Main view → Settings: shows settings
- Mod browser → App state: requests install
- App state → Mod manager: manages mods
- App state → Download manager: starts downloads
- App state → Profile manager: manages profiles
- App state → Game config: syncs load order
- App state → Update checker: checks updates
- App state → GameBanana API: fetches mod files
- Mod manager → File service: lists and changes files
- Mod manager → Installed mods: reads mods
- Mod manager → Mod model: creates models
- Download manager → GameBanana API: fetches file info
- Download manager → Archive validator: validates extraction
- Download manager → Installed mods: installs files
- Profile manager → Profiles JSON: loads and saves
- Profile manager → Installed mods: captures mod state
- App state → Modpack export: supports sharing
- Modpack export → Modpack model: exports and imports
- Game config → Game config file: reads and writes
- App state → Ship of Harkinian: launches
- GameBanana API → GameBanana: requests metadata
- Update checker → GameBanana API: checks mod records
- Update checker → Installed mods: checks installed mods
- Settings → App updater: configures updates
- App updater → Sparkle update service: checks releases
- Download manager → macOS file system: uses archive tools