본문으로 건너뛰기

제한사항

pretext-native는 특정 텍스트 측정 사용 사례를 위해 설계되었습니다. 이 페이지에서는 지원하지 않는 기능과 알려진 제약사항을 문서화합니다.

지원하지 않는 기능

  • 리치 텍스트 / 혼합 스타일 — 하나의 텍스트 블록에 단일 스타일을 가정합니다. 하나의 문자열 내에서 인라인 볼드, 이탤릭, 서로 다른 폰트 크기는 처리하지 않습니다.
  • 인라인 이미지 또는 뷰 — 순수 텍스트만 측정합니다. 내장된 <Image>나 커스텀 인라인 뷰는 반영되지 않습니다.
  • HTML / Markdown 렌더링 — 입력은 일반 문자열이어야 합니다. 마크업은 리터럴 텍스트로 처리됩니다.
  • RTL 레이아웃 — 오른쪽에서 왼쪽으로 쓰는 텍스트(아랍어, 히브리어)는 완전히 지원되지 않습니다. 줄바꿈은 동작하지만 양방향 재정렬은 구현되지 않았습니다.

JS 폴백 정확도

네이티브 모듈을 사용할 수 없는 환경(테스트, SSR, dev client 없는 Expo Go)에서는 JS 휴리스틱 엔진이 문자 폭 테이블을 사용하여 텍스트 크기를 추정합니다. 이는 픽셀 단위로 완벽하지 않으며, 네이티브 측정 대비 ±5–10%의 오차가 발생할 수 있습니다. 특히:

  • 커스텀 폰트 (JS 엔진은 범용 폭 테이블 사용)
  • 복잡한 스크립트 (태국어, 데바나가리 등)
  • 줄바꿈 기회가 없는 매우 긴 단어

프로덕션 정확도를 위해서는 항상 네이티브 모듈이 활성화된 상태에서 사용하세요.

플랫폼 간 측정 차이

iOS(CoreText)와 Android(StaticLayout)는 동일한 입력에 대해 약간 다른 높이/줄 수 결과를 생성할 수 있습니다. 이는 각 플랫폼의 텍스트 렌더링 엔진에 내재된 특성이며 버그가 아닙니다 — React Native의 <Text> 컴포넌트도 동일한 동작을 합니다.

API 안정성

pretext-native는 v0.0.2입니다. 핵심 API(useTextLayout, measureTextSync, measureText)는 안정적이며 변경될 가능성이 낮지만, 보조 API는 v1.0 이전에 변경될 수 있습니다.

onLayout이 더 나은 경우

다음과 같은 텍스트를 측정해야 하는 경우:

  • 혼합 인라인 스타일 (서로 다른 fontSize/fontWeight의 <Text> 중첩)
  • 인라인 이미지 또는 커스텀 뷰
  • 복잡한 접근성 어노테이션

이런 경우에는 onLayout / onTextLayout이 적합합니다. pretext-native는 이러한 API를 보완합니다 — 모든 시나리오에서 대체하지는 않습니다.