์ฌ์ค expo ๊ณต์ ๋ฌธ์์ ๋ค ๋์์๋ค. ๊ทผ๋ฐ ๊ณต์๋ฌธ์ ๋ค์ง๊ธฐ๋ ๊ท์ฐฎ์ผ๋ ์ ๋ฆฌํด ๋๊ธฐ๋ก ํ๋ค.
๊ณต์ ๋ฌธ์ url : https://docs.expo.dev/guides/using-custom-fonts/
1. ์ค์น
@expo-google-fonts/inter ๋ฅผ ๋จผ์ ์ค์นํด ์ค๋ค.
$ expo install expo-font @expo-google-fonts/inter
2. ์ ์ฉํ ํฐํธ ์ฐพ๊ธฐ
https://fonts.google.com/ ์ฌ์ดํธ์ ๋ค์ด๊ฐ์ ์ํ๋ ํฐํธ๋ฅผ ์ฐพ๊ณ ๋ค์ด๋ก๋ํ๋ค. ํน์ ์ด๋ฆ๋ง ์์๋ ๋๋ ๋ชจ์์ด๋ค.
๋๋ ๋์ ๋๊ฒ ๋น๊ตํ๊ธฐ ์ํ ํฐํธ๋ฅผ ์ฐพ์๋ค. "Edu SA Beginner" ๋ผ๋ ๊ธ์จ์ฒด๋ฅผ ์ฐพ์๋ค.
3. App์ component๊ฐ render๋๊ธฐ์ ์ ์ ์ฉํ๊ธฐ
import { useFonts } from 'expo-font ๋ฅผ ํตํด useFont๋ฅผ ๋ถ๋ฌ์จ ๋ค font load๊ฐ ๋๊ธฐ์ ์ statusbar๋ฅผ ๋์์ฃผ๊ณ ,
๋ค ๋ถ๋ฌ์์ก๋ค๋ฉด ์ปดํฌ๋ํธ๋ฅผ render ํ๋ค.
import React from 'react';
import { Text, View } from 'react-native';
import { StatusBar } from 'expo-status-bar';
import { useFonts } from 'expo-font';
import Home from './screens/Home'
export default props => {
let [fontsLoaded] = useFonts({
'Edu-SA-Beginner-regular': require('./assets/fonts/EduSABeginner-Regular.ttf'),
'Edu-SA-Beginner-medium': require('./assets/fonts/EduSABeginner-Medium.ttf'),
'Edu-SA-Beginner-bold': require('./assets/fonts/EduSABeginner-Bold.ttf'),
'Edu-SA-Beginner-semibold': require('./assets/fonts/EduSABeginner-SemiBold.ttf')
});
if (!fontsLoaded) {
return <StatusBar />;
}
return (
<Home/>
);
};
4. component์์ ์จ๋ณด๊ธฐ
์ด๋ ๊ฒ ๋ถ๋ฌ์ค๊ณ ๋๋ฉด ์ ์ญ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
์ฌ์ฉ๋ฒ์ ๊ทธ๋ฅ ๊ธฐ์กด์ฒ๋ผ fontFamily์ ์ฌ์ฉํ๋ฉด๋๋ค.
// Home.js
import { StyleSheet, View, Text } from 'react-native'
import React, { useState } from 'react'
export default function Home() {
return (
<View>
<Text style={{fontFamily: 'Edu-SA-Beginner-semibold'}}>Home</Text>
<Text>Home</Text>
</View>
)
}
์ ์ ์ฉ๋๊ฒ์ ์ ์ ์๋ค. ๐
'๊ฐ๋ฐ ๐พ > React Native' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
screenOptions๋ก ํค๋ ๊พธ๋ฏธ๊ธฐ (0) | 2022.07.30 |
---|---|
React Router (0) | 2022.07.19 |
TextInput ์ ๋ ฅ์ Keyboard ์ฐฝ ๋ซ๊ธฐ (0) | 2022.07.16 |
expo๋ก ์์ํ ๋ ๊ธฐ๋ณธ ์ค์ง ๋ชฉ๋ก ์ ๋ฆฌ (0) | 2022.07.09 |