Implements a native iOS app that runs the full Memos backend locally on iOS devices.
Architecture:
- Uses gomobile to compile Go backend as iOS framework
- SwiftUI app with WKWebView displays the React UI
- All data stored locally in SQLite on device
- Optional network access for other devices to connect
Key Components:
- mobile/server.go: gomobile binding layer for iOS
- ios/Memos/: Native SwiftUI app with server management
- scripts/build-ios.sh: Build script for iOS framework
- IOS.md: Comprehensive iOS documentation
Features:
- Full backend runs natively on iOS (no cloud required)
- Complete feature parity with desktop version
- Network access toggle to allow LAN connections
- Settings UI showing server status and network address
- Automatic server lifecycle management
Network Modes:
- Local only (default): accessible only from the device
- Network access: binds to 0.0.0.0 for LAN access
Usage:
1. Run ./scripts/build-ios.sh to build framework
2. Open ios/Memos.xcodeproj in Xcode
3. Build and run on iOS device or simulator
Technical Details:
- Minimum iOS 15.0
- Server runs on port 5230 (configurable)
- Data stored in app Documents directory
- WKWebView for web UI rendering
- Native iOS controls for settings
See IOS.md and ios/README.md for detailed documentation.