์๋ ํ์ธ์ Foma ์ ๋๋ค!
์ค๋์ React Native์์ Custom Font๋ฅผ ๋ค์ด ๋ฐ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ์์ ๋ณด๊ฒ ์ต๋๋ค.
๋ฐ๋ก ์์ํ ๊ฒ์~
์ธ์ด๋ TypeScript, ํ๊ฒฝ์ Expo๋ก ์งํ ํ๊ฒ ์ต๋๋ค!
Download Font
์๋ Google Font๋ก ์ด๋ํด ์ค๋๋ค.
์ํ๋ ํฐํธ๋ฅผ ๊ณ ๋ฅธ ๋ค
Download family ๋ฒํผ์ ๋๋ฌ ๋ง์ ๋๋ ํฐํธ๋ฅผ ๋ค์ด๋ก๋ ๋ฐ์ ์ค๋๋ค.
.zipํ์ผ์ ์์ถ ํด์ ํ ๋ค assets์ fonts ํด๋๋ฅผ ๋ง๋ค์ด ์ฃผ๊ณ ํด๋น .ttf ํ์ผ์ ๋ฃ์ด์ค๋๋ค.
Use Cached Resources
useCachedResources.ts
ํฐํธ๋ฅผ ์ฌ๋ฌ๋ฒ ๋ถ๋ฌ์ค๋ ๊ฒ์ ๋ง๊ธฐ ์ํด useState์ useEffect๋ฅผ ์ฌ์ฉํด ๋ฑ ํ๋ฒ๋ง ๋ถ๋ฌ์ค๋๋ก ํฉ๋๋ค.
useEffect ์์ ๋น๋๊ธฐ์ ์ผ๋ก ์์์ ๋ค์ด ๋ฐ์ ํฐํธ๋ฅผ ๋ถ๋ฌ์ฌ ์ ์๋๋ก loadResourceAndDataAsync ๋ฉ์๋๋ฅผ ์์ฑํด ์ค๋๋ค.
ํฐํธ๋ฅผ ๋ค ๋ถ๋ฌ ์๋ค๋ฉด setIsLoadingComplete๋ฅผ true๋ก ํด์ค isLoadingComplete๊ฐ true๋ก ๋ฐํ๋ ์ ์๋๋ก ํฉ๋๋ค.
import { useEffect, useState } from "react";
import * as Font from "expo-font";
export default function useCachedResources() {
const [isLoadingComplete, setIsLoadingComplete] = useState(false);
useEffect(() => {
async function loadResourcesAndDataAsync() {
try {
await Font.loadAsync({
"fascinate-regular": require("../assets/fonts/Fascinate-Regular.ttf"),
});
} catch (e) {
console.warn(e);
} finally {
setIsLoadingComplete(true);
}
}
loadResourcesAndDataAsync();
}, [isLoadingComplete]);
return isLoadingComplete;
}
Adjust Font
์์์ ๋ง๋ useCachedResources๋ฅผ ํตํด ํฐํธ๊ฐ ๋ถ๋ ค์ก๋ค๋ฉด View๋ฅผ returnํ๊ณ ๊ทธ๋ ์ง ์๋ค๋ฉด null์ ๋ฐํํ๋๋ก ํฉ๋๋ค.
App.tsx
import { StyleSheet, Text, View } from "react-native";
import useCachedResources from "./hooks/useCachedResources";
export default function App() {
const isLoaded = useCachedResources();
if (isLoaded) {
return (
<View style={styles.container}>
<Text style={styles.text}>Hello, I'm Fomagran</Text>
</View>
);
} else {
return null;
}
}
๊ทธ ๋ค์ styles์ fontFamily๋ฅผ ํด๋น ํฐํธ ์ด๋ฆ์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค.
const styles = StyleSheet.create({
container: {
padding: 20,
flex: 1,
backgroundColor: "rgba(50,50,50,1)",
},
text: {
fontSize: 20,
marginBottom: 20,
fontWeight: "bold",
color: "white",
fontFamily: "fascinate-regular",
},
});
์คํ ๊ฒฐ๊ณผ
์๋์ ๊ฐ์ด ํฐํธ๊ฐ ์ ์ ์ฉ๋๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค.
(์ผ์ชฝ์ด ์ ์ฉํ๊ธฐ ์ ์ด๊ณ ์ค๋ฅธ์ชฝ์ด ํฐํธ๋ฅผ ์ ์ฉํ ํ์ ๋ชจ์ต์ ๋๋ค.)
๋๊ธ