UI 모듈 설정 (opt-in)
탭바·드로어·바텀시트·접근성 등 UI 모듈을 config.json에서 켜고 끕니다.
개요
SDK의 UI 모듈(accessibility, topDownMenu, sideDrawer, bottomTabs, bottomSheet)은 opt-in입니다. 기본 배포되는 config.json에는 모든 모듈이 꺼진 상태로 제공되며, 앱에서 실제로 쓰는 패널만 켜면 됩니다. iOS·Android 모두 동일한 config.json 방식을 사용합니다.
기본값 = opt-in (모두 비활성)
배포 패키지의 app/src/main/assets/config.json은 모든 UI 모듈이 비활성 상태입니다.
"modules": {
"accessibility": { "enabled": false, "topDownPanel": true },
"topDownMenu": { "enabled": false },
"sideDrawer": { "enabled": false },
"bottomTabs": { "enabled": false, "autoHide": true },
"bottomSheet": { "enabled": false }
}사용하려는 패널만 "enabled": true로 바꾸면 됩니다.
왜 opt-in인가
- 의도하지 않은 UI/제스처 방지 — 요청하지 않은 탭·드로어·패널과 그 터치 감지기가 앱에 주입되지 않습니다.
- 권한 & 스토어 심사 — 접근성 모듈은 마이크(음성 입력,
RECORD_AUDIO)·TTS를 사용할 수 있습니다. 기본 활성화하면 원치 않는 권한이 딸려 들어와 심사가 복잡해질 수 있습니다. - 라이선스 티어 — 프로덕션에서는 모듈 활성화가 원격/라이선스 경로에서 티어별로 제한됩니다.
로컬 config.json은 티어 게이팅이 적용되지 않습니다. 따라서 로컬 데모에서는 실제 프로덕션 티어가 막을 패널도 보일 수 있습니다. 로컬 데모만 보고 티어 사용 가능 여부를 판단하지 마세요.
모듈별 요건
| 모듈 | 켜면 바로 보이나? | 추가로 필요 |
|---|---|---|
accessibility | 예 — 자체 UI 즉시 표시 | 음성 입력용 RECORD_AUDIO 권한, 읽어주기용 TTS |
topDownMenu | 아니오 | setConfig(items) 후 show |
sideDrawer | 아니오 | setConfig(items) 후 show |
bottomTabs | 아니오 | setConfig(items) 후 show; autoHide 옵션 |
bottomSheet | 부분 | 표시할 콘텐츠 제공 |
티어 최소값:
accessibility·bottomTabs·topDownMenu= basic,sideDrawer= standard.
각 모듈의 실제 API는 내비게이션(탭바·드로어)과 접근성 문서를 참고하세요.
데모 빠르게 체험
모든 패널이 켜진 데모 설정이 config.sample.json으로 함께 제공됩니다. 현재 설정을 백업한 뒤 덮어써서 바로 확인할 수 있습니다.
cp app/src/main/assets/config.json app/src/main/assets/config.json.bak
cp app/src/main/assets/config.sample.json app/src/main/assets/config.json빌드 후 번들된 테스트 브릿지 페이지에서 확인하고, 끝나면 .bak 파일로 복원하세요.
config.sample.json은 평가용입니다. 프로덕션에서는 opt-in 원칙대로 필요한 모듈만 켠 config.json을 유지하세요.