피드로 돌아가기
Dev.toFrontend
원문 읽기
패키지 구조 개선을 통한 앱 번들 사이즈 4MB 절감 및 런타임 복잡도 제거
Why You Should Drop @expo/vector-icons for React Native Vector Icons
AI 요약
Context
Expo Go 및 OTA 업데이트 호환성을 위해 expo-font를 기반으로 구축한 @expo/vector-icons 래퍼 구조의 유지보수 비용 증가. Babel transform을 통한 에일리어싱 설정으로 인한 시스템 복잡도 상승 및 폰트 패키지 관리의 비효율성 발생.
Technical Solution
- @react-native-vector-icons 패키지의 expo-font 네이티브 API 직접 통합을 통한 중간 래퍼 계층 제거
- Babel aliasing 의존성을 제거하여 빌드 파이프라인 단순화 및 버전 드리프트 문제 해결
- 폰트 로딩 로직을 네이티브 레이어로 이관하여 Expo Go 및 프로덕션 앱 전반의 일관된 렌더링 보장
- codemod 기반의 자동 마이그레이션 경로 제공을 통한 대규모 사용자 베이스의 전환 비용 최소화
- Type-checking 지원 구조 도입으로 아이콘 명칭 지정 시의 런타임 에러 방지 및 개발자 경험 개선
실천 포인트
외부 라이브러리를 래핑하여 제공하는 추상화 계층이 라이브러리 자체의 네이티브 통합을 지원할 경우, 래퍼를 제거하고 직접 통합하여 빌드 복잡도를 낮추고 성능을 최적화할 것