728x90
728x90
커스텀 폰트 사용하기 (expo-font)
들어가며
- 리액트 네이티브(React Native) 엑스포(Expo) 프로젝트에서 커스텀 폰트를 적용하는 방법을 간단하게 정리해본다.

방법
1️⃣ 패키지 설치하기
- 폰트 사용을 위해 @expo-font@ 패키지를 설치한다.
$ expo install expo-font
@expo install@ 명령은 현재 Expo 프로젝트의 버전과 호환되는 패키지를 자동으로 설치해준다.
2️⃣ 폰트 파일 준비하기
- 프로젝트의 @/assets/fonts@ 폴더 안에, 추가할 커스텀 폰트 파일을 넣어준다.
- 해당 폴더가 없을 경우, 새로 생성해준다.

4️⃣ 폰트 불러오기 (useFonts 훅)
- 프로젝트 최상단에 있는 @App.js@ 파일에 다음과 같은 커스텀 폰트를 불러오는 코드를 추가해준다.
- @useFont@ 훅을 사용하여 폰트를 불러와줄 수 있다.
/App.js
import { useFonts } from 'expo-font';
export default function App() {
const [fontsLoaded] = useFonts({
'open-sans': require('./assets/fonts/OpenSans-Regular.ttf'),
'open-sans-bold': require('./assets/fonts/OpenSans-Bold.ttf'),
});
// ...
}
- 차후에 @useFont@ 내부의 객체의 키(Key)를 이용하여 특정 요소에 폰트를 적용시킬 것이다. (@open-sans@, @open-sans-bold@)
- @require@ 메서드를 이용하여 폰트가 저장된 경로를 추가해준다.
5️⃣ 폰트 로딩 중 로딩 화면 표시해주기 (선택)
- 폰트가 로드되기 전까지 시간이 걸릴 수 있는데, 이때 다음과 같이 간단한 라이브러리를 이용하여 로딩중 화면을 표시해줄 수 있다.
$ expo install expo-app-loading
/App.js
import { useFonts } from 'expo-font';
import AppLoading from 'expo-app-loading'; // 추가
export default function App() {
const [fontsLoaded] = useFonts({
'open-sans': require('./assets/fonts/OpenSans-Regular.ttf'),
'open-sans-bold': require('./assets/fonts/OpenSans-Bold.ttf'),
});
// 로딩중 화면 표시
if (!fontsLoaded) {
return <AppLoading />;
}
// ...
}
6️⃣ 폰트 사용하기
- 이제 각 컴포넌트 스타일에 @fontFamily@를 지정하여 커스텀 폰트를 사용할 수 있다.
/components/NumberContainer.js
import { View, Text, StyleSheet } from 'react-native';
import Colors from '../../constants/colors';
function NumberContainer({ children }) {
return (
<View>
<Text style={styles.numberText}>{children}</Text>
</View>
);
}
export default NumberContainer;
const styles = StyleSheet.create({
numberText: {
color: Colors.accent500,
fontSize: 36,
fontFamily: 'open-sans-bold', // 커스텀 폰트 사용하기
},
});
참고 사이트
Font
A library that allows loading fonts at runtime and using them in React Native components.
docs.expo.dev
expo-app-loading
A React component that keeps the native splash screen visible.. Latest version: 2.1.1, last published: 2 years ago. Start using expo-app-loading in your project by running `npm i expo-app-loading`. There are 71 other projects in the npm registry using expo
www.npmjs.com
728x90
728x90
'Programming > React Native' 카테고리의 다른 글
| [React Native] 에뮬레이터 디바이스 자동 회전 기능 켜는 방법 (Expo) (0) | 2025.04.10 |
|---|---|
| [React Native] Dimensions API (0) | 2025.04.10 |
| [React Native] 플랫폼 별로 요소에 그림자 효과 넣기 (Android, iOS, Web) (0) | 2025.04.06 |
| [React Native] 아이콘 사용하기 (@expo/vector-icons) (0) | 2025.04.06 |
| [React Native] SafeAreaView (0) | 2025.04.03 |
| [React Native] Alert API (0) | 2025.04.03 |
| [React Native] npm install vs. expo install (0) | 2025.04.03 |
| [React Native] 환경 변수 파일 사용하기 (react-native-dotenv) (0) | 2025.04.03 |