위시켓 PID 155061 · Flutter iOS 파일럿

타이포그래픽 QR
TwinCode Scanner

기존 Flutter Android 앱의 iOS 미동작 원인을 분석하고,
카메라 실시간 스캔·갤러리 스캔·히스토리·플래시를 추가한
iOS 전용 TFLite 파이프라인으로 완전 재구현했습니다.

🔍 스캐너 데모 ✏️ TwinCode 생성기

iOS에서 왜 동작하지 않았나

파일럿에서 추가 구현한 기능

📷
iOS 전용 실시간 스캔
camera 패키지 + tflite_flutter 직접 조합. BGRA8888/YUV420 포맷 변환, 3프레임 스로틀링으로 OOM 방지.
🖼
갤러리 스캔
image_picker로 저장된 이미지에서도 TwinCode 인식. detectFromBytes() API 신규 추가.
🕐
스캔 히스토리
SharedPreferences 기반 로컬 저장. 최근 50건, 타임스탬프, URL 클릭 오픈 지원.
🔦
플래시 토글
어두운 환경에서 FlashMode.torch로 카메라 플래시 사용. 아이콘으로 상태 표시.
📳
햅틱 피드백
디코딩 성공 시 HapticFeedback.mediumImpact() 진동으로 즉시 알림.
🧪
단위 테스트
classId 매핑, Reed-Solomon 0~2개 오류 정정을 dart test로 자동 검증.

웹 데모 둘러보기

🔍
스캐너 데모
샘플 TwinCode 이미지를 선택하면 10프레임 멀티프레임 안정화 + Reed-Solomon 디코딩 과정을 시각화합니다.
데모 열기 →
✏️
TwinCode 생성기
URL을 입력하면 Reed-Solomon ECC가 적용된 5×5 TwinCode를 즉시 생성·다운로드할 수 있습니다.
생성기 열기 →

기술 스택

Flutter 3.32 Dart 3.8 tflite_flutter 0.12 ultralytics_yolo 0.1.46 camera 0.11 iOS 14.0+ CocoaPods image_picker shared_preferences Reed-Solomon GF(256) Base32 YOLO v8 TFLite CPU 4-thread