2025-10-14
Flutter ํ ๋ง ์ ์ฉํ๊ธฐ
ํ ๋ง๋?
์ค๋์ Flutter์์ ์ ์ญ ํ
๋ง๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํ๋ค.
๊ฐ ์์ ฏ๋ง๋ค ์์ฑ์ ์ง์ ํด์ ์คํ์ผ์ ์ ์ฉํ ์ ์์ง๋ง, ์ฑ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ์์ ฏ๋ง๋ค ์คํ์ผ์ ์ผ์ผ์ด ์ฃผ๋ ๋ฐฉ์์ ๋นํจ์จ์ ์ด๋ค.
ํนํ ๋ผ์ดํธ/๋คํฌ ๋ชจ๋๋ฅผ ์ง์ํด์ผ ํ๋ ๊ฒฝ์ฐ ์ด๋ฐ ๋ฐฉ์์ผ๋ก๋ ๊ด๋ฆฌ๊ฐ ์ด๋ ต๋ค.
์ด๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ฐ๋ก ThemeData ํด๋์ค๋ค.
์ ์ฉ ๋ฐฉ๋ฒ
MaterialApp์ theme์ darkTheme ์์ฑ์ ThemeData ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ์ฌ ์ฑ ์ ์ฒด์ ์๊ฐ์ ์์๋ฅผ ํต์ผํ ์ ์๋ค.
ThemeData๋ฅผ ํตํด ์์, ํฐํธ, ์์ ฏ ์คํ์ผ ๋ฑ์ ํ ๋ฒ์ ์ ์ํ ์ ์๋ค.
ThemeData ๊ตฌ์ฑ ์์
useMaterial3: Material 3 ๋์์ธ ์ ์ฉ ์ฌ๋ถ ์ค์ colorScheme: ColorScheme.fromSeed๋ฅผ ์ฌ์ฉํด seedColor๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ฒด ์์ ํ๋ ํธ๋ฅผ ์๋ ์์ฑbrightness: ๋ผ์ดํธ/๋คํฌ ํ ๋ง ์ฌ๋ถ ์ง์ textTheme: TextStyle์ ํต์ผํ์ฌ ์ฑ ์ ์ญ์ ์ ์ฉ ๊ฐ๋ฅ- ElevatedButtonTheme, AppBarTheme, TextButtonTheme ๋ฑ Flutter ๊ธฐ๋ณธ ์์ ฏ์ ํ ๋ง๋ ์ง์ ๊ฐ๋ฅ
์์
ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(
seedColor: Colors.purple,
brightness: Brightness.dark,
),
textTheme: TextTheme(
displayLarge: TextStyle(
fontSize: 72,
fontWeight: FontWeight.bold,
),
titleLarge: GoogleFonts.oswald(
fontSize: 30,
fontStyle: FontStyle.italic,
),
bodyMedium: GoogleFonts.merriweather(),
displaySmall: GoogleFonts.pacifico(),
),
)
์ ์ฉ
์ ์ํ ThemeData๋ฅผ MaterialApp์ ์ ์ฉํ๋ค.
MaterialApp(
theme: lightThemeData,
darkTheme: darkThemeData,
home: MyHomePage(),
);
โ
ํ๊ณ
ย ์์ผ๋ก ํ๋ก์ ํธ๋ฅผ ์์ํ ๋ ๊ธฐ๋ณธ ํ ๋ง๋ฅผ ๋จผ์ ์ก๊ณ ๊ฐ๋ ์ต๊ด์ ๋ค์ด๋ ๊ฒ ์ข๊ฒ ๋ค.