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

4.1 KiB

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

  1. 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
  2. Session Snapshot Loading

    • Web has: Loads final snapshot for exited sessions
    • iOS has: No snapshot loading
    • Need: Implement snapshot API and display
  3. Keyboard Shortcuts ⚠️

    • Web has: Cmd+O for file browser, various shortcuts
    • iOS has: Limited keyboard support
    • Need: Comprehensive keyboard shortcut support
  4. 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

  1. Git Status in File Browser ⚠️

    • Web has: Inline git status indicators
    • iOS has: Git status but less prominent
    • Need: Better git status visualization
  2. 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)

  1. File Browser Path Insertion
  2. Full-Screen Text Input
  3. Ctrl+Key Overlay

Phase 3: Session Management (Medium Priority)

  1. Session Snapshot Loading
  2. Keyboard Shortcuts
  3. Enhanced File Preview

Phase 4: Polish (Low Priority)

  1. Improved Git Status Display
  2. 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