--- name: sms-scanner description: SMS 스캔 기능 개발 및 디버깅. SMS 파싱, 구독 감지, Isolate 관련 이슈 시 사용. allowed-tools: Read, Edit, Grep, Glob --- # SMS Scanner ## 핵심 파일 | 파일 | 역할 | |------|------| | `lib/services/sms_scanner.dart` | SMS 파싱 로직 (Isolate) | | `lib/controllers/sms_scan_controller.dart` | 스캔 플로우 제어 | | `lib/screens/sms_scan_screen.dart` | UI | | `lib/services/sms_scan/` | 보조 클래스 | ## Isolate 주의사항 `compute()` 내부에서 실행되는 함수는 별도 Isolate에서 실행됨. **접근 불가 항목:** - Flutter 바인딩 (`WidgetsBinding`) - `BuildContext` - `Provider` - `navigatorKey` - `AppLocalizations` **올바른 패턴:** ```dart // Isolate 내부 함수 (접두사: _iso) String _isoExtractServiceName(String sender) { if (RegExp(r'^\d+$').hasMatch(sender)) { return 'Unknown service'; // 하드코딩 사용 } return sender; } ``` **잘못된 패턴:** ```dart String _isoExtractServiceName(String sender) { // 오류: Isolate에서 Context 접근 불가 return AppLocalizations.of(context).unknownService; } ``` ## 디버깅 ```bash # SMS 스캔 로그 확인 flutter logs | grep -i "sms\|scan\|isolate" ``` ## 테스트 데이터 `lib/temp/test_sms_data.dart`에 테스트용 SMS 데이터 정의됨.