You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							225 lines
						
					
					
						
							4.3 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							225 lines
						
					
					
						
							4.3 KiB
						
					
					
				| # Camera Platform-Specific Implementation | |
| 
 | |
| > **Agent role**: | |
|   Reference this file for platform-specific camera implementation details. | |
| 
 | |
| ## Web Platform | |
| 
 | |
| ### Implementation Details | |
| 
 | |
| - Uses `getUserMedia` API for camera access | |
| 
 | |
| - Implements fallback to file input if camera unavailable | |
| 
 | |
| - Handles browser compatibility issues | |
| 
 | |
| - Requires HTTPS for camera access | |
| 
 | |
| ### Browser Support | |
| 
 | |
| - Chrome: Full support | |
| 
 | |
| - Firefox: Full support | |
| 
 | |
| - Safari: Limited support | |
| 
 | |
| - Edge: Full support | |
| 
 | |
| ### Fallback Mechanisms | |
| 
 | |
| 1. Camera access via getUserMedia | |
| 
 | |
| 2. File input for image upload | |
| 
 | |
| 3. Drag and drop support | |
| 
 | |
| 4. Clipboard paste support | |
| 
 | |
| ## Mobile Platform (Capacitor) | |
| 
 | |
| ### iOS Implementation | |
| 
 | |
| - Uses `@capacitor-mlkit/barcode-scanning` | |
| 
 | |
| - Implements proper permission handling | |
| 
 | |
| - Supports both front and back cameras | |
| 
 | |
| - Handles camera switching | |
| 
 | |
| ### Android Implementation | |
| 
 | |
| - Uses `@capacitor-mlkit/barcode-scanning` | |
| 
 | |
| - Implements proper permission handling | |
| 
 | |
| - Supports both front and back cameras | |
| 
 | |
| - Handles camera switching | |
| 
 | |
| ### Permission Handling | |
| 
 | |
| - Camera permissions requested at runtime | |
| 
 | |
| - Permission state tracked and cached | |
| 
 | |
| - Graceful handling of denied permissions | |
| 
 | |
| - Clear user guidance for enabling permissions | |
| 
 | |
| ## Desktop Platform (Electron) | |
| 
 | |
| ### Current Status | |
| 
 | |
| - Camera implementation pending | |
| 
 | |
| - Will use platform-specific APIs | |
| 
 | |
| - Requires proper permission handling | |
| 
 | |
| - Will support both built-in and external cameras | |
| 
 | |
| ### Planned Implementation | |
| 
 | |
| - Native camera access via Electron | |
| 
 | |
| - Platform-specific camera APIs | |
| 
 | |
| - Proper permission handling | |
| 
 | |
| - Camera switching support | |
| 
 | |
| ## Platform Detection | |
| 
 | |
| ### Implementation | |
| 
 | |
| - Uses `PlatformServiceFactory` for platform detection | |
| 
 | |
| - Implements platform-specific camera services | |
| 
 | |
| - Handles platform-specific error conditions | |
| 
 | |
| - Provides platform-specific user guidance | |
| 
 | |
| ### Service Selection | |
| 
 | |
| - Web: `WebPlatformService` | |
| 
 | |
| - Mobile: `CapacitorPlatformService` | |
| 
 | |
| - Desktop: `ElectronPlatformService` | |
| 
 | |
| ## Cross-Platform Compatibility | |
| 
 | |
| ### Common Interface | |
| 
 | |
| - Unified camera service interface | |
| 
 | |
| - Platform-specific implementations | |
| 
 | |
| - Consistent error handling | |
| 
 | |
| - Unified user experience | |
| 
 | |
| ### Feature Parity | |
| 
 | |
| - Core camera functionality across platforms | |
| 
 | |
| - Platform-specific optimizations | |
| 
 | |
| - Consistent user interface | |
| 
 | |
| - Unified error messages | |
| 
 | |
| ## Platform-Specific Features | |
| 
 | |
| ### Web | |
| 
 | |
| - Browser-based camera access | |
| 
 | |
| - File upload fallback | |
| 
 | |
| - Drag and drop support | |
| 
 | |
| - Clipboard paste support | |
| 
 | |
| ### Mobile | |
| 
 | |
| - Native camera access | |
| 
 | |
| - Barcode scanning | |
| 
 | |
| - Photo capture | |
| 
 | |
| - Camera switching | |
| 
 | |
| ### Desktop | |
| 
 | |
| - Native camera access (planned) | |
| 
 | |
| - External camera support (planned) | |
| 
 | |
| - Advanced camera controls (planned) | |
| 
 | |
| ## Testing Strategy | |
| 
 | |
| ### Platform Coverage | |
| 
 | |
| - Web: Multiple browsers | |
| 
 | |
| - Mobile: iOS and Android devices | |
| 
 | |
| - Desktop: Windows, macOS, Linux | |
| 
 | |
| ### Test Scenarios | |
| 
 | |
| - Permission handling | |
| 
 | |
| - Camera access | |
| 
 | |
| - Error conditions | |
| 
 | |
| - Platform compatibility | |
| 
 | |
| - Performance metrics | |
| 
 | |
| --- | |
| 
 | |
| **See also**: | |
| 
 | |
| - `.cursor/rules/features/camera-implementation.mdc` for | |
| 
 | |
|   core implementation overview | |
| 
 | |
| - `.cursor/rules/features/camera_technical.mdc` for | |
| 
 | |
|   technical implementation details | |
| 
 | |
| **Status**: Active platform-specific implementation guide | |
| **Priority**: Medium | |
| **Estimated Effort**: Ongoing reference | |
| **Dependencies**: camera-implementation.mdc | |
| **Stakeholders**: Development team, Platform team | |
| 
 | |
| ## Model Implementation Checklist | |
| 
 | |
| ### Before Camera Platform Implementation | |
| 
 | |
| - [ ] **Platform Analysis**: Identify target platforms and their camera capabilities | |
| - [ ] **Feature Planning**: Plan platform-specific camera features | |
| - [ ] **Integration Planning**: Plan integration with existing camera systems | |
| - [ ] **Testing Strategy**: Plan testing across all target platforms | |
| 
 | |
| ### During Camera Platform Implementation | |
| 
 | |
| - [ ] **Platform Services**: Implement platform-specific camera functionality | |
| - [ ] **Feature Development**: Implement planned camera features for each platform | |
| - [ ] **Integration**: Integrate with existing camera infrastructure | |
| - [ ] **Performance Optimization**: Optimize camera performance for each platform | |
| 
 | |
| ### After Camera Platform Implementation | |
| 
 | |
| - [ ] **Cross-Platform Testing**: Test camera functionality across all platforms | |
| - [ ] **Feature Validation**: Verify all planned features work correctly | |
| - [ ] **Performance Testing**: Ensure camera performance meets requirements | |
| - [ ] **Documentation Update**: Update platform-specific camera documentation
 | |
| 
 |