Email with IMAP flags for all
- Swift 98.6%
- Go 1%
- Shell 0.4%
| Apps/FlagshipIOS | ||
| Flagship.xcodeproj | ||
| Scripts | ||
| Server | ||
| Sources | ||
| Tests | ||
| .env.example | ||
| .gitignore | ||
| Package.resolved | ||
| Package.swift | ||
| README.md | ||
Flagship
Flagship is an experimental native Apple-platform email client focused on full IMAP keyword flag support.
It's named Flagship because flags are the point.
Development
Build everything:
swift build
Run unit tests:
swift test
The package includes:
FlagshipCore: lightweight domain models and small preference storage.FlagshipPersistence: SwiftData-backed account, mailbox, sync state, and message metadata models, plus a Keychain-backed account secret store.FlagshipApp: the SwiftUI mailbox/message shell and app model that loads through the metadata store and performs manual selected-mailbox refreshes.FlagshipIMAP: the live IMAP client implementation.
Account passwords live in Keychain, small UI preferences live in UserDefaults, and account/mailbox/message metadata lives in SwiftData.
iOS App
Open the Xcode project and run the Flagship scheme on an iPhone Simulator:
open Flagship.xcodeproj
The iOS app currently hosts FlagshipPersistentRootView, opens a SwiftData container, seeds preview mailbox/message data on first launch, then reads the visible app model back through the metadata store. Pulling down on a selected mailbox message list performs a manual refresh through SwiftMail. Account passwords live in Keychain.