This folder contains focused engineering notes for LiveTranscriber. Keep user-facing overview content in the root README.md; keep implementation decisions and debugging notes in DEVELOPMENT_NOTES.md.
- Current Product and UI Design: Current app structure, interaction model, visual tokens, and screen-level UI behavior.
- Recording Processing Pipeline: AVCaptureSession audio capture, transcription fan-out, and stereo recording decisions.
- Live Activity Design: Lock Screen and Dynamic Island state, layout, and update policy.
- Localization: Semantic string catalog rules, Swift usage patterns, and steps for adding a new language.
- Development Notes: Full project log, feature notes, tradeoffs, and TestFlight checklist.
The app has three main runtime areas:
ContentViewowns the top-level tab shell and wires sharedLiveTranscriptionManagerandRecordingStoreinstances into the recording, library, and settings views.LiveTranscriptionManagerowns the live recording session, AVCaptureSession Stereo Capture path, SpeechAnalyzer pipeline, transcript lines, elapsed timer, selected language/format, and Live Activity updates.RecordingStoreowns saved recording metadata, local app-private storage by default, optional app-private iCloud storage, SwiftData local/CloudKit private index persistence, import transcription, re-transcription, deletion, search inputs, and Apple Intelligence analysis.RecordingsViewowns the file-library UI: search, import picker, row actions, swipe actions, detail navigation, playback, transcript seek, sharing, copy, delete, re-transcribe, and summary/tag generation.AppTheme,AppTypography,EmptyStateView, andHapticFeedbackdefine the shared visual and tactile design language.LiveTranscriberWidgetrenders ActivityKit content for Lock Screen and Dynamic Island.
Use the same command as the root README:
/Applications/Xcode-beta.app/Contents/Developer/usr/bin/xcodebuild \
-quiet \
-project LiveTranscriber.xcodeproj \
-scheme LiveTranscriber \
-destination 'generic/platform=iOS' \
-derivedDataPath /tmp/LiveTranscriberDerivedData \
CODE_SIGNING_ALLOWED=NO \
build