Android UI에서 텍스트가 다양한 화면 크기(모바일, 태블릿 등)에 따라 적절히 조절되지 않아, 한 화면에서는 보기 좋지만 다른 화면에서는 너무 크거나 작게 보이는 문제를 해결하기 위해 BasicText 컴포저블의 새로운 autoSize 속성이 도입되었습니다. 📱↔️🖥️
기존의 WindowSizeClass를 사용하여 화면 너비에 따라 SP 단위를 매핑하는 방식은 점진적인 크기 조절에 한계가 있었습니다. 📏🚫
BasicText는 Text 컴포저블보다 간소화되었지만, TextStyle을 통해 스타일을 적용할 수 있으며 autoSize 기능을 지원합니다. ✨🆕
최신 Compose 버전(2025년 6월 BOM 기준)에 추가된 autoSize 속성은 정의된 규칙에 따라 텍스트를 자동으로 스케일링합니다. 🚀📈
autoSize는 현재 TextAutoSize.StepBased 옵션만 제공하며, minFontSize, maxFontSize, 그리고 선택적으로 stepSize를 설정하여 텍스트 크기 조절 범위를 정의할 수 있습니다. 🔢📐
이 기능의 핵심은 텍스트가 포함된 컨테이너의 제약 조건, 특히 maxLines 설정에 크게 의존한다는 점입니다. 📦💡
maxLines가 명시적으로 설정되지 않거나 여러 줄을 허용하는 경우 autoSize는 maxFontSize를 선택하는 경향이 있지만, maxLines = 1과 같이 줄 수를 제한하면 텍스트는 해당 줄에 맞게 동적으로 크기를 조절합니다. ↔️↕️
결과적으로 컨테이너의 가용 너비에 따라 텍스트 크기가 minFontSize와 maxFontSize 사이에서 동적으로 조절되어, 다양한 기기에서 최적의 가독성을 제공하는 반응형 텍스트를 구현할 수 있습니다. 🌐👍
이는 기존의 복잡한 커스텀 솔루션 대신 공식적이고 편리한 방법으로 반응형 텍스트를 구현할 수 있게 해줍니다. ✅🛠️