vibetunnel/docs/ios-web-parity-plan.md
Peter Steinberger 2a0b08497c ios work
2025-06-23 04:07:15 +02:00

135 lines
No EOL
4.1 KiB
Markdown

# iOS Web Parity Implementation Plan
This document outlines the missing features in the iOS app compared to the web frontend and the implementation plan to achieve full feature parity.
## Missing Features Analysis
### High Priority Features
1. **Terminal Width Selector**
- Web has: Width button showing current width (∞, 80, 100, 120, 132, 160, custom)
- iOS has: Basic width adjustment in sheet, no quick selector
- Need: Quick width selector button with common presets
2. **File Browser Path Insertion**
- Web has: Direct path insertion into terminal when selecting files
- iOS has: Only copy to clipboard
- Need: Insert path functionality with proper escaping for spaces
3. **Mobile Control Buttons**
- Web has: On-screen buttons for arrows, ESC, Tab, Enter, Ctrl
- iOS has: Limited toolbar with some special keys
- Need: Complete set of control buttons
4. **Full-Screen Text Input**
- Web has: Full-screen overlay for mobile text input
- iOS has: Native keyboard only
- Need: Optional full-screen input mode
5. **Ctrl+Key Overlay**
- Web has: Grid selector for Ctrl combinations
- iOS has: No Ctrl+key selector
- Need: Grid overlay for Ctrl sequences
### Medium Priority Features
6. **Font Size Controls** ⚠️
- Web has: +/- buttons with reset, range 8-32px
- iOS has: Slider in sheet, no quick controls
- Need: Quick adjustment buttons in toolbar
7. **Session Snapshot Loading**
- Web has: Loads final snapshot for exited sessions
- iOS has: No snapshot loading
- Need: Implement snapshot API and display
8. **Keyboard Shortcuts** ⚠️
- Web has: Cmd+O for file browser, various shortcuts
- iOS has: Limited keyboard support
- Need: Comprehensive keyboard shortcut support
9. **Enhanced File Browser** ⚠️
- Web has: Syntax highlighting, image preview, diff viewer
- iOS has: Basic preview, no diff integration
- Need: Enhanced preview capabilities
### Low Priority Features
10. **Git Status in File Browser** ⚠️
- Web has: Inline git status indicators
- iOS has: Git status but less prominent
- Need: Better git status visualization
11. **Swipe Gestures**
- Web has: Swipe from left edge to go back
- iOS has: Native swipe back gesture
- Status: Already implemented
## Implementation Order
### Phase 1: Core Terminal UX (High Priority)
1. Terminal Width Selector
2. Font Size Quick Controls
3. Mobile Control Buttons
### Phase 2: Enhanced Input (High Priority)
4. File Browser Path Insertion
5. Full-Screen Text Input
6. Ctrl+Key Overlay
### Phase 3: Session Management (Medium Priority)
7. Session Snapshot Loading
8. Keyboard Shortcuts
9. Enhanced File Preview
### Phase 4: Polish (Low Priority)
10. Improved Git Status Display
11. Additional gestures and animations
## Technical Considerations
### Width Management
- Store preferred widths in UserDefaults
- Common widths: [0 (∞), 80, 100, 120, 132, 160]
- Custom width input with validation (20-500)
### Mobile Input
- Full-screen UITextView for text input
- Send options: text only, text + enter
- Keyboard shortcuts for quick send
### File Path Handling
- Escape paths with spaces using quotes
- Support both absolute and relative paths
- Integration with terminal input system
### Performance
- Debounce resize operations
- Cache terminal dimensions
- Optimize control button layout for different screen sizes
## UI/UX Guidelines
### Visual Consistency
- Match web frontend's visual style where appropriate
- Use native iOS patterns for better platform integration
- Maintain terminal aesthetic with modern touches
### Accessibility
- VoiceOver support for all controls
- Dynamic Type support
- High contrast mode compatibility
### Responsive Design
- Adapt control layout for different device sizes
- Handle keyboard appearance/disappearance smoothly
- Support both portrait and landscape orientations
## Success Metrics
- [ ] All high-priority features implemented
- [ ] Feature parity with web frontend
- [ ] Native iOS advantages utilized
- [ ] Performance on par or better than web
- [ ] User feedback incorporated
- [ ] Comprehensive testing completed