프로젝트

일반

사용자정보

Actions

개선사항 #78

완료됨
백대 백대

[DEF-iOS-TGFU-006] 다이나믹 아일랜드 내의 문구 깨짐 현상

개선사항 #78: [DEF-iOS-TGFU-006] 다이나믹 아일랜드 내의 문구 깨짐 현상

백대선이(가) 21일 전에 추가함. 20일 전에 수정됨.

상태:
개발서버
우선순위:
급하지 않음
담당자:
시작일:
2026/05/06
완료일:
진척도:

100%

추정시간:

설명

결함 ID: DEF-iOS-TGFU-006
환경: iPhone Air
화면: 공통 (다이나믹 아일랜드)
원본 등록일: 2026-05-01 (QA: 품생품사)
QA 우선순위: Minor

사전 조건

임의 경고 알림이 수신된 상태

시나리오

  1. 디바이스 > 다이나믹 아일랜드 알림을 확인한다.

실제 결과

문구 깨짐 상태로 표시됩니다.

기대 결과

문구 깨짐 없이 표시되어야 합니다.

비고

  • Live Activity / Dynamic Island 텍스트 길이 제한 또는 widget extension 폰트 처리 의심

백대 백대선이(가) 20일 전에 변경 Actions #1

분석 결과 — 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 작업):

  1. TrackerLiveActivity.swift 의 Text 위젯에 .lineLimit(1) + .minimumScaleFactor(0.7) 적용
  2. 또는 .dynamicTypeSize 제한 추가
  3. iPhone Air Dynamic Island 폭 (140-200pt 추정) 기준 텍스트 길이 가이드라인 수립

현재 status: 보고 유지 (iOS Native 별도 작업 필요)

백대 백대선이(가) 20일 전에 변경 Actions #2

  • 상태을(를) 보고에서 개발서버(으)로 변경되었습니다.
  • 진척도을(를) 0에서 100(으)로 변경되었습니다.

기능 비활성화 처리 완료. 개발서버에 반영합니다.

처리 방식:

  • 다이나믹 아일랜드 텍스트 깨짐 회귀로 Live Activity / Dynamic Island 기능 잠시 제거
  • 사용자 결정 (2026-05-07): 추후 다른 용도로 재사용 예정 → 코드/위젯/매니저 모두 보존

수정 내역:

  • lib/utils/services/live_activity_service.dart
    • 클래스 상단에 _featureEnabled = false kill-switch 플래그 추가
    • _enabled = _featureEnabled && Platform.isIOS getter 추가
    • 모든 메서드 진입 가드 if (!Platform.isIOS)if (!_enabled) 로 일괄 교체 (10곳)
  • ios/Runner/Info.plist
    • NSSupportsLiveActivities true → 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.swift liveActivityChannel 등록 코드

재활성화 절차 (추후):

  1. _featureEnabled = true 변경
  2. NSSupportsLiveActivitiestrue 변경
  3. (선택) TrackerLiveActivity.swift 의 Text 위젯에 .lineLimit(1) + .minimumScaleFactor(0.7) 적용해 텍스트 깨짐 근본 해결

QA 재검증 시나리오:

  1. iPhone Air 빌드 후 트래커 BLE 이벤트 발생 (배터리 변경 / 침입 등)
  2. 다이나믹 아일랜드에 Live Activity 표시되지 않는지 확인 (기능 비활성화 상태)
  3. 일반 푸시 알림은 정상 동작 확인
Actions

내보내기 PDF Atom