How packingproof/packingproof-mobile works
PackingProof Mobile is a local-first Android/iOS packing-evidence recorder, usable alone and optionally paired with a LAN desktop host. The documented workflow is to start work, record continuously, recognize shipping labels and mark tracking numbers in the footage, then search history and replay the matching evidence. Editing/export, watermarking, backup retention, and order announcements are additional capabilities. The tree contains native platform code and plugins but not the shared Flutter application source, so UI-to-native wiring and several feature links are represented only where documented or supported by the available paths.
Main entry points: ContinuousSegmentCamera.kt Camera capture · LanBackupPlugin.kt LAN video backup · PigeonPlatformRegistrar.kt Android platform bridge · IosCameraPlatform.swift iOS camera capture
Components 20
Capture and identify
- Android platform bridge
android/app/src/main/kotlin/app/packingproof/mobile/PigeonPlatformRegistrar.kt - Camera capture
android/app/src/main/kotlin/app/packingproof/mobile/ContinuousSegmentCamera.kt - Label recognition
android/app/src/main/kotlin/app/packingproof/mobile/BarcodeAnalysisGate.kt - iOS camera capture
ios/Runner/IosCameraPlatform.swift
Recording and evidence
- Audio/video recording
android/app/src/main/kotlin/app/packingproof/mobile/RecordingMuxPipeline.kt - Recording storage
android/app/src/main/kotlin/app/packingproof/mobile/RecordingStorageManager.kt - Video watermarking
android/app/src/main/kotlin/app/packingproof/mobile/VideoWatermarkPlugin.kt - iOS media processing
ios/Runner/IosMediaProcessingCore.swift
Review and export
- Tracking history
android/app/src/main/kotlin/app/packingproof/mobile/OrderInfoStore.kt - Video playback
android/app/src/main/kotlin/app/packingproof/mobile/SystemVideoPlayerPlugin.kt - Clip export
android/app/src/main/kotlin/app/packingproof/mobile/VideoExportPlugin.kt
Connected services
- LAN video backup
android/app/src/main/kotlin/app/packingproof/mobile/LanBackupPlugin.kt - Backup job state
android/app/src/main/kotlin/app/packingproof/mobile/LanBackupJobDatabase.kt - iOS backup
ios/Runner/IosBackupPlatform.swift - LAN order receiver
android/app/src/main/kotlin/app/packingproof/mobile/OrderInfoReceiverPlugin.kt - Order information
android/app/src/main/kotlin/app/packingproof/mobile/OrderInfoStore.kt - Order voice alerts
plugins/flutter_tts/android/src/main/kotlin/com/eyedeadevelopment/fluttertts/FlutterTtsPlugin.kt
Other components
- Packing operator
- Flutter app
- PackingProof host
Connections 20
- Packing operator → Flutter app: starts work
- Flutter app → Android platform bridge: requests capture
- Android platform bridge → Camera capture: controls camera
- Camera capture → Label recognition: analyzes frames
- Camera capture → Audio/video recording: records media
- Audio/video recording → Recording storage: writes segments
- Recording storage → Video watermarking: watermarks video
- Flutter app → Tracking history: searches tracking
- Tracking history → Video playback: selects footage
- Flutter app → Clip export: exports clips
- Flutter app → LAN video backup: queues backup
- LAN video backup → Backup job state: persists jobs
- LAN video backup → PackingProof host: uploads on LAN
- Flutter app → iOS camera capture: controls capture
- iOS camera capture → iOS media processing: processes recordings
- Flutter app → iOS backup: requests backup
- iOS backup → PackingProof host: uploads on LAN
- PackingProof host → LAN order receiver: sends order data
- LAN order receiver → Order information: stores orders
- Order information → Order voice alerts: supplies alert text