bbcf0c74bb
- 19 Swift source files (~4900 lines) - Complete UI with SwiftUI (MainView, SettingsView, MessageBubble, InputBar) - Inference layer (LlmEngine, Agent, ToolCalling, ConversationContext) - Services (Audio, TTS, WebSearch, ModelDownload, Storage) - Build system: Makefile, Package.swift, Podfile - Documentation: BUILD.md, plan.md, PROJECT_STATUS.md - Ready for Xcode build - just need LiteRT dependency added
4.1 KiB
4.1 KiB
Sleepy Agent iOS - Project Status
✅ What's Complete
Source Code (19 Swift files)
- App Layer - App entry point, lifecycle management, audio session config
- Core Layer - Models (Message, ToolCall, ModelVariant), DI container
- Inference Layer - LlmEngine, Agent, ConversationContext, ToolCalling
- Services Layer - AudioRecorder, TtsService, WebSearchService, ModelDownloadService, ConversationStorage
- UI Layer - MainView, SettingsView, MessageBubble, InputBar + ViewModels
Build System
Package.swift- Swift Package Manager manifestPodfile- CocoaPods configuration for LiteRTMakefile- Build automation (build, archive, ipa, install)Info.plist- App configuration and permissionsSleepyAgent.entitlements- Sandbox and capability declarationsexportOptions.plist- IPA export configuration
Scripts
create-project.sh- Project setup helper
Documentation
README.md- Project overviewBUILD.md- Detailed build instructionsplan.md- Architecture decisions and porting notesFILES.md- File structure reference
⚠️ What's Missing (Needs Xcode)
Critical (Must Have)
-
Xcode Project File (
.xcodeprojor.xcworkspace)- Can't create without Xcode installed
- Could try
swift package generate-xcodeprojif you have it
-
LiteRT Framework Integration
- Need to add TensorFlow Lite / LiteRT dependency
- Options:
- CocoaPods:
pod 'TensorFlowLiteSwift' - Swift Package Manager: Add TensorFlow repo
- Manual: Download and link framework
- CocoaPods:
-
Code Signing Setup
- Need Apple Developer account or free signing for personal use
- Team ID in project settings
Nice to Have
- App Icons - Create in Assets.xcassets
- Launch Screen - Storyboard or SwiftUI
- Unit Tests - Test targets
How to Build (Step by Step)
Since Xcode isn't installed on this machine, here's what YOU need to do on your Mac:
1. Install Prerequisites
# Install Xcode from App Store
# Then install CocoaPods
sudo gem install cocoapods
2. Setup Project
cd sleepy_agent_ios
# Option A: Use Swift Package Manager (easiest)
open Package.swift
# Option B: Use CocoaPods
pod install
open SleepyAgent.xcworkspace
3. Add LiteRT
In Xcode:
- File → Add Package Dependencies
- Add:
https://github.com/tensorflow/tensorflow - Or use the CocoaPods version
4. Configure & Build
# Check environment
make check
# Build for simulator
make build
# Build for device (requires signing setup)
make build-release
# Create archive
make archive
# Create IPA (requires proper signing)
make ipa
Expected Output
After successful build, you'll have:
build/
├── DerivedData/ # Build intermediates
├── SleepyAgent.xcarchive # Archive for distribution
└── Export/
└── SleepyAgent.ipa # Final IPA file
Testing
On Simulator
make build
# Run in Xcode with iPhone 15 Pro simulator selected
On Device
# Connect iPhone via USB
make install
# Or use Xcode: Cmd+R with device selected
IPA Installation
- AltStore (free, no dev account needed)
- Xcode (with dev account or free personal team)
- TestFlight (for distribution)
Known Limitations
- No Xcode on build machine - Couldn't create .xcodeproj or compile
- LiteRT version - May need to adjust based on latest release
- iOS 15 minimum - AttributedString markdown requires iOS 15+
- Physical device recommended - Simulator has limited audio/camera support
Next Steps for You
- ✅ Copy all files to your Mac
- ✅ Install Xcode
- ✅ Run
make setuporpod install - ✅ Open in Xcode
- ✅ Add LiteRT dependency
- ✅ Set signing team
- ✅ Build (Cmd+B)
- ✅ Run on device (Cmd+R)
- ✅ Create IPA (Product → Archive → Distribute)
File Count
- 19 Swift source files
- 6 Configuration files
- 4 Documentation files
- 2 Build scripts
Total: 31 files ready to use
Help
If you get stuck:
- Check
BUILD.mdfor detailed troubleshooting - File an issue: https://github.com/sleepyeldrazi/sleepy-agent/issues
- Refer to Android version for logic reference