Actions
개선사항 #78
완료됨
백대
백대
[DEF-iOS-TGFU-006] 다이나믹 아일랜드 내의 문구 깨짐 현상
개선사항 #78:
[DEF-iOS-TGFU-006] 다이나믹 아일랜드 내의 문구 깨짐 현상
시작일:
2026/05/06
완료일:
진척도:
100%
추정시간:
백대 백대선이(가) 20일 전에 변경
분석 결과 — iOS Native (SwiftUI Live Activity Widget) 영역 결함
코드 위치:
-
ios/LiveActivityWidget/TrackerLiveActivity.swift(SwiftUI Dynamic Island 정의) -
ios/Runner/LiveActivityManager.swift(Flutter→Native bridge) -
ios/Runner/TrackerLiveActivityAttributes.swift(데이터 모델)
추정 원인:
- SwiftUI 의
compactLeading/compactTrailing/expanded영역 내 Text 위젯 폭 제한 미적용 - iPhone Air 의 Dynamic Island 폭 변경에 따른 텍스트 잘림
- 또는 폰트 크기 / 줄바꿈 정책 미설정
권장 조치 (별도 SPEC, iOS Native 작업):
-
TrackerLiveActivity.swift의 Text 위젯에.lineLimit(1)+.minimumScaleFactor(0.7)적용 - 또는
.dynamicTypeSize제한 추가 - iPhone Air Dynamic Island 폭 (140-200pt 추정) 기준 텍스트 길이 가이드라인 수립
현재 status: 보고 유지 (iOS Native 별도 작업 필요)
백대 백대선이(가) 20일 전에 변경
- 상태을(를) 보고에서 개발서버(으)로 변경되었습니다.
- 진척도을(를) 0에서 100(으)로 변경되었습니다.
기능 비활성화 처리 완료. 개발서버에 반영합니다.
처리 방식:
- 다이나믹 아일랜드 텍스트 깨짐 회귀로 Live Activity / Dynamic Island 기능 잠시 제거
- 사용자 결정 (2026-05-07): 추후 다른 용도로 재사용 예정 → 코드/위젯/매니저 모두 보존
수정 내역:
-
lib/utils/services/live_activity_service.dart- 클래스 상단에
_featureEnabled = falsekill-switch 플래그 추가 -
_enabled = _featureEnabled && Platform.isIOSgetter 추가 - 모든 메서드 진입 가드
if (!Platform.isIOS)→if (!_enabled)로 일괄 교체 (10곳)
- 클래스 상단에
-
ios/Runner/Info.plist-
NSSupportsLiveActivitiestrue → false (시스템 레벨 비활성화)
-
호출처 코드 보존 (변경 없음):
-
lib/main.dart(initialize 호출) -
lib/utils/services/ble_method_channel.dart(updateStatus, updateEvent 호출 3곳) -
lib/theguideDB/theguideSqflite.dart(end 호출) -
lib/screens/home.dart(startOrUpdateDailyRouteWithI18n 호출)
iOS Native 자산 보존:
-
ios/LiveActivityWidget/TrackerLiveActivity.swift(SwiftUI Dynamic Island 정의) -
ios/LiveActivityWidget/TrackerLiveActivityBundle.swift(위젯 번들) -
ios/Runner/LiveActivityManager.swift(Flutter↔Native bridge) -
ios/Runner/TrackerLiveActivityAttributes.swift(데이터 모델) -
ios/Runner/AppDelegate.swiftliveActivityChannel 등록 코드
재활성화 절차 (추후):
-
_featureEnabled = true변경 -
NSSupportsLiveActivities→true변경 - (선택)
TrackerLiveActivity.swift의 Text 위젯에.lineLimit(1)+.minimumScaleFactor(0.7)적용해 텍스트 깨짐 근본 해결
QA 재검증 시나리오:
- iPhone Air 빌드 후 트래커 BLE 이벤트 발생 (배터리 변경 / 침입 등)
- 다이나믹 아일랜드에 Live Activity 표시되지 않는지 확인 (기능 비활성화 상태)
- 일반 푸시 알림은 정상 동작 확인
Actions