Skip to content

Add native Swift iOS app for RSVP speed reading#3

Draft
Copilot wants to merge 3 commits into
mainfrom
copilot/add-native-swift-experience
Draft

Add native Swift iOS app for RSVP speed reading#3
Copilot wants to merge 3 commits into
mainfrom
copilot/add-native-swift-experience

Conversation

Copilot AI commented Mar 16, 2026

Copy link
Copy Markdown

Description

Adds a native Swift + SwiftUI iOS app (ios/) delivering the same RSVP speed reading experience as the existing TUI and web frontends — no third-party dependencies.

App structure (ios/)

  • Cheetah.xcodeproj/ — Xcode project targeting iOS 16+, Swift 5.9, linked against libz.tbd and PDFKit.framework
  • Models/ReadingEngine (@MainActor ObservableObject, Timer-driven word advancement), Document (SHA-256 hashing via CryptoKit for session identity), Settings (UserDefaults-backed), SessionStore (JSON-serialised singleton)
  • Parsers/DocumentParser — handles TXT/MD (plain String), PDF (PDFKit), and ZIP-based formats (DOCX, EPUB, ODT) via a pure-Swift ZIP reader with raw-deflate decompression through a zlib bridging header; uses XMLParser (SAX, iOS-compatible — XMLDocument is macOS-only)
  • Views/HomeView (file picker via fileImporter, recent sessions), ReadingView (full-screen RSVP, drag-to-seek scrubber, speed panel, go-to %, paragraph nav), SettingsView
  • CheetahTests/ — 30+ unit tests covering Document model, ReadingEngine navigation/speed/state, Settings presets, and SessionStore CRUD

Feature parity with web/TUI

Feature Detail
Speed control 50–2000 WPM slider + ±50 WPM; presets 1–9 = 200–1000 WPM
Punctuation delay Sentence ×1.3, clause ×1.15 — matches Go backend
Context words Configurable previous + up to 5 next words
Progress scrubber Drag-to-seek + go-to-% sheet
Auto-save / resume Position saved every N words, matched by SHA-256 hash

Additional Context

Build and test:

# Open in Xcode
open ios/Cheetah.xcodeproj

# CLI build
xcodebuild -project ios/Cheetah.xcodeproj -scheme Cheetah \
  -destination 'platform=iOS Simulator,name=iPhone 15' build

# CLI test
xcodebuild -project ios/Cheetah.xcodeproj -scheme CheetahTests \
  -destination 'platform=iOS Simulator,name=iPhone 15' test

.gitignore updated to exclude Xcode user data and derived build artefacts. README.md and SPECIFICATION.md updated to document iOS as a supported platform.

Type of change

  • 🐛 Bug fix
  • ✨ New feature
  • 💥 Breaking change
  • 📚 Documentation update
  • 🎨 Code style or formatting
  • ⚡ Performance
  • 🧪 Test coverage
  • 📦 Packaging
  • 👷 CI improvement

Checklist

  • I have performed a self-review of my code
  • I have tested my changes and confirmed there are no regressions
Original prompt

Add a new native swift experience of timlinux/cheetah for iOS users. It must provide the same features and experience as the web and tui apps


💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits March 16, 2026 08:19
Co-authored-by: timlinux <178003+timlinux@users.noreply.github.com>
Co-authored-by: timlinux <178003+timlinux@users.noreply.github.com>
Copilot AI changed the title [WIP] Add native Swift experience for iOS users Add native Swift iOS app for RSVP speed reading Mar 16, 2026
Copilot AI requested a review from timlinux March 16, 2026 08:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants