Changelog
[0.0.2] - 2026-04-01
Added
allowFontScalingoption — automatically applies system font scale (PixelRatio.getFontScale()) to fontSize and lineHeight, matching React Native's<Text>behavior. Defaults totrue.isFontAvailable(fontFamily)API — check if a custom font is registered on the device before measurement.- Warning logs when a custom font is not found (iOS:
RCTLogWarn, Android:Log.w). Previously fell back to system font silently. - Obstacle Text Demo with real-time stats panel (FPS, reflow time, line count, measure count).
- Pretendard Regular/Bold font in example app with custom font comparison demo.
Fixed
- iOS crash when measuring empty text —
ctLinesarray was empty but accessed at index 0. - React dual-instance error — deduplicated React across monorepo workspaces via
resolutions. - Metro module resolution — added
react-nativeandsourceentry points to package.json. - Frame-rate-dependent ball speed in ObstacleTextDemo — now uses delta time (120px/s).
- CI stability — eslint configs, turbo filters, docs workspace separation, Jest passWithNoTests.
Changed
- README simplified with reference to original pretext.
[0.0.1] - 2026-03-31
Initial release.
Added
- Text layout engine (tokenizer, line breaker, layout calculator)
- iOS native module (CoreText) and Android native module (StaticLayout)
- TurboModule (New Architecture) + legacy bridge support
measureTextSync,measureText,measureTextBatchAPIsuseTextLayoutReact hook- Two-tier LRU cache with 95%+ hit rate
- CJK and emoji support
- JS heuristic fallback
- Example app with 11 demo screens