Downloadable and Preloaded Fonts on Android
Downloadable and Preloaded Fonts on Android
์ฑ์ ๋ ํนํ๊ฒ ๋ณด์ด๊ณ ๋๋ผ๊ฒ ๋ง๋๋ ์ค์ํ ๋ถ๋ถ ์ค ํ๋๋ ํ๋ฅญํ ํฐํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๋๋ค.
์๋๋ก์ด๋ ๊ธฐ๋ณธ ํฐํธ๋ Roboto์ธ๋ฐ, ์ฌ์ฉ์์ ํฐํธ๊ฐ ์๋ Roboto๋ฅผ ๋ณด๊ฒ ํ๊ณ ์ถ์ ๊ฐ๋ฐ์๋ค์ ์ํด
Google์ Google Fonts ์ ์ฅ์๋ฅผ ๋ง๋ค์ด ํฐํธ๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ํ์ฉํ์ต๋๋ค.
์ด๋ ๊ฐ๋ฐ์๋ค์ด ํฐํธ๋ฅผ ํจ์ฌ ์ฝ๊ฒ ์ ์ฉํ ์ ์๋๋ก ํด์ฃผ์๊ณ , ์ด๋ฅผ Downloadable Fonts๋ผ๊ณ ํฉ๋๋ค.
์ถํ Google์ Preloaded Fonts๋ฅผ ์๊ฐํ์ฌ ์ฑ์ด ์คํ๋ ๋๊ฐ ์๋ ์ค์น๋ ๋ ํฐํธ๊ฐ ๋ค์ด๋ก๋๋ ์ ์๋๋ก ํ์ต๋๋ค.
Downloadable Fonts๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ ๊ฐ์ง๊ฐ ์๊ณ , ํฐํธ๋ฅผ Preload ํ๋ ค๋ฉด ํ ๋จ๊ณ๋ฅผ ๋ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
Downloadable Fonts ์ถ๊ฐํ๋ ๋ฒ
(New UI ๊ธฐ์ค)
์ข์ธก ํด๋ฐ์ ํด๋ ์์ด์ฝ ๋ฐ Resource Manager๋ฅผ ํด๋ฆญ → ์ฐ์ธก ๋ ์ 3๊ฐ๋ฅผ ๋๋ฌ ๋๋ณด๊ธฐ → Font ์ ํ
ํ๋ฌ์ค ์์ด์ฝ์ ํด๋ฆญ → More Fonts...๋ฅผ ์ ํ
Downloadable Fonts๊ฐ ๋์ต๋๋ค.!
๋ง์์ ๋๋ ํฐํธ๋ฅผ ์ฐพ์์ OK๋ฅผ ๋๋ฅด๋ฉด,,,,,,,
font ๋๋ ํ ๋ฆฌ์๋ ํฐํธ ํ์ผ์ด ์์ฑ๋๊ณ ,
values์๋ font_certs.xml๊ณผ preloaded_fonts.xml์ด ์์ฑ๋ฉ๋๋ค.!
font_certs.xml์ ํฐํธ ๋ค์ด๋ก๋์ ํ์ํ ์ธ์ฆ์๋ฅผ ์ ๊ณตํ๊ณ , preloaded_fonts.xml์ ๋ค์ ์น์ ์์ ๋ค๋ฃฐ ๊ฒ์ ๋๋ค.
Downloadable Fonts๋ฅผ Preloadํ๊ธฐ
value ๋๋ ํฐ๋ฆฌ์ "preloaded_fonts.xml" ํ์ผ์ ํฐํธ๋ฅผ ์ฌ์ ๋ก๋ํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํต์ฌ์ ๋๋ค.
์ด ํ์ผ์ Google Play์์ ์ฑ์ด ์ค์น๋ ๋ ์๋๋ก์ด๋๊ฐ ์ฌ์ ๋ก๋ํ ํฐํธ ๋ฆฌ์์ค ๋ชฉ๋ก์ ์ ์ํฉ๋๋ค.
๋ํ ์์คํ ์ ์ด๋ฏธ ์์คํ ์ ์๋ ํฐํธ๋ง ๋ค์ด๋ก๋ํ์ฌ ์ด ํ๋ก์ธ์ค๋ฅผ ์ต์ ํํฉ๋๋ค.
์ฆ, ํฐํธ๊ฐ ์ด๋ฏธ ์์คํ ์ ์๋ ๊ฒฝ์ฐ ์ฑ์ ํฌ๊ธฐ๊ฐ ๋ ์์์ง๋๋ค.
์ด๋ ํฐํธ๊ฐ ์ฑ๊ณผ ํจ๊ป ๋ฒ๋ค๋ก ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค ์ฌ์ฉ์ ๊ฒฝํ์ด ํฅ์๋ฉ๋๋ค.
์ฒซ ๋ก๋์์ ํฐํธ๊ฐ ๋ก๋๋๋ ๋์ ๊นจ์ง ํฐํธ ๋ ๋๋ง์ด ์์ผ๋ฉฐ ์ฌ์ฉ์์๊ฒ๋ ๋ ์์ ์ฑ ํฌ๊ธฐ๊ฐ ์ ๊ณต๋ฉ๋๋ค!
Jetpack Compose์์ Downloadable Fonts ์ถ๊ฐํ๊ธฐ
Jetpack Compose์์๋ androidx.compose.ui.text ํจํค์ง์ GoogleFont ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ด๋ก๋ ๊ฐ๋ฅํ ํฐํธ๋ฅผ ์์ฒญํ๋ ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ์ด๋ฅผ ํตํด Jetpack Compose์์ ๋ณด๋ค ํธ๋ฆฌํ ํฐํธ ๋ก๋ ํ๋ฆ์ ๊ตฌํํ ์ ์์ต๋๋ค.
๋จผ์ "build.gradle" ํ์ผ์ androidx.compose.ui:ui-text-google-fonts ํจํค์ง๋ฅผ ์ถ๊ฐํ์ฌ Google ํฐํธ ํด๋์ค๋ฅผ ์ถ๊ฐํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ Google ํฐํธ ์ ๊ณต์๋ฅผ ์์ฑํ์ฌ ๊ถํ, ํจํค์ง ๋ฐ ์ธ์ฆ์๋ฅผ ์ค์ ํฉ๋๋ค. "font_certs.xml" ํ์ผ์ Resource Manager๋ฅผ ์ฌ์ฉํ์ฌ ํฐํธ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ด๋ Android ์ค๋ช ์์์ ๋งํฌ๋ ํ์ผ์ ์ฐพ์ ์ ์์ต๋๋ค. ๋ค์์ผ๋ก GoogleFont ํด๋์ค๋ฅผ ์ฌ์ฉํ์ฌ ํฐํธ๋ฅผ ์ ์ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก FontFamily๋ฅผ ์ ์ํ๊ณ ์ด์ ๋จ๊ณ์์ ์์ฑ๋ ๊ฐ๋ค์ ์ ๋ฌํฉ๋๋ค. ์ด๊ฒ์ด ์ฝ๋์์ ๋ชจ๋ ์ด๋ป๊ฒ ๋ณด์ด๋์ง ํ์ธํด ๋ณด์ธ์.
val provider = GoogleFont.Provider(
providerAuthority = "com.google.android.gms.fonts",
proiderPackage = "com.google.android.gms",
certificates = R.array.com_google_android_gms_fonts_certs,
)
val roboto = GoogleFont("Roboto")
val robotoFontFamily = FontFamily(
Font(
googleFont = roboto,
fontProvider = provider,
),
)
val robotoTextStyle = TextStyle(
fontFamily = robotoFontFamily,
)
๊ทธ๋ฌ๋ ์ด ๋ฐฉ๋ฒ์ ์ฝ๋๋ก ๋ชจ๋ ์์ ์ ์ํํ๊ธฐ ๋๋ฌธ์ ํฐํธ๋ฅผ Preload ํ ์ ์์ต๋๋ค..
๋ฐ๋ผ์ ํฐํธ๋ฅผ Preload ํด์ผ ํ๋ ๊ฒฝ์ฐ Resource Manager๋ฅผ ์ฌ์ฉํ์ฌ ํฐํธ๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ด ํ์ํ๊ฑฐ๋,
ํฐํธ XML ๋ฐ "preloaded_fonts.xml" ํ์ผ์ ์๋์ผ๋ก ์ถ๊ฐํด์ผ ํฉ๋๋ค.
๊ฒฐ๋ก
Downloadable Fonts์ Preloaded Fonts๋ ๋ฒ๋ค๋ ํฐํธ๋ณด๋ค ๋ ๋์ ๊ฒฝํ์ ์ ๊ณตํ๋ฉด์ ์ฌ์ฉ์์๊ฒ ์ผ๊ด๋ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
Google Fonts๋ฅผ ํตํด ์ฌ์ฉํ ์ ์๋ ํฐํธ๊ฐ ํ์ํ๊ณ ๋ฒ๋ค๋ก ์ ๊ณตํด์ผ ํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ๋
Downloadable Fonts์ Preloaded Fonts๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ ์ข์ ๋ฐฉ๋ฒ ์ค ํ๋๊ฐ ๋ ๊ฒ ๊ฐ์ต๋๋ค!๐
Reference
https://dladukedev.com/articles/031_preload_typeface_compose/