resources
Last updated
Last updated
presentation ๋ ์ด์ด์์ ์ฌ์ฉ๋๋ ๋ชจ๋ ์์์ ๋ํด์ ์์์ ์ฑ๊ฒฉ๋ณ๋ก ๋๋ ์ ์ด๋ฅผ ๊ด๋ฆฌํ๋ ์ฑ ์ ์ํํ๋ -manager ๋ค์ด๋ค.
import 'package:fitsquad_app/application/types/emoji_type.dart';
class AssetManager {
static const String splashMain1 = 'assets/images/splash_main_1.jpg';
static const String splashMain2 = 'assets/images/splash_main_2.jpg';
static const String splashMain3 = 'assets/images/splash_main_3.jpg';
static const String signIn1 = 'assets/images/sign_in_1.jpg';
static const String signIn2 = 'assets/images/sign_in_2.jpg';
static const String signIn3 = 'assets/images/sign_in_3.jpg';
static const String appleLogo = 'assets/images/apple_logo.png';
static const String facebookLogo = 'assets/images/facebook_logo.png';
static const String googleLogo = 'assets/images/google_logo.png';
static const String kakaoLogo = 'assets/images/kakao_logo.png';
static const String bottomMenuIconHome =
'assets/images/bottom_menu_icon_home.png';
static const String bottomMenuIconGroup =
'assets/images/bottom_menu_icon_group.png';
static const String bottomMenuIconLounge =
'assets/images/bottom_menu_icon_lounge.png';
static const String bottomMenuIconMy =
'assets/images/bottom_menu_icon_my.png';
static const String addRounded = 'assets/images/add_rounded.png';
static const String calendar = 'assets/images/calendar.png';
static const String forkAndKnife = 'assets/images/fork_and_knife.png';
static const String emojiCountSmile = 'assets/images/emoji_count_smile.png';
static const String commentCountChatBubble =
'assets/images/comment_count_chat_bubble.png';
static const String heart = 'assets/images/heart.png';
static const String search = 'assets/images/search.png';
static const String viewCountEyes = 'assets/images/view_count_eyes.png';
static const String emojiSmile = 'assets/images/emoji_smile.png';
static const String emojiSad = 'assets/images/emoji_sad.png';
static const String emojiEmbarrassed = 'assets/images/emoji_embarrassed.png';
static const String emojiOutrageous = 'assets/images/emoji_outrageous.png';
static const String emojiPanicked = 'assets/images/emoji_panicked.png';
static const String emojiPray = 'assets/images/emoji_pray.png';
// lottie
static const String loadingSpinner = 'assets/lotties/loading-utensils.json';
static String getEmojiPath(EmojiType emojiType) {
if (emojiType == EmojiType.smile) {
return emojiSmile;
}
if (emojiType == EmojiType.sad) {
return emojiSad;
}
if (emojiType == EmojiType.embarrassed) {
return emojiEmbarrassed;
}
if (emojiType == EmojiType.outrageous) {
return emojiOutrageous;
}
if (emojiType == EmojiType.panicked) {
return emojiPanicked;
}
return '';
}
}
asset ์ path ๋ฅผ ์์ํํด์ ์ฌ์ฉํ๋ค.
import 'dart:ui';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import '../../../barrel.dart';
class ColorManager {
static Color primary = "#20C997".convertToColorFromHex(); // Teal-500
static Color accentGreen = "#087F5B".convertToColorFromHex(); // Teal-500
static Color teal100 = "#C3FAE8".convertToColorFromHex();
static Color teal700 = "#0CA678".convertToColorFromHex();
static Color teal800 = "#099268".convertToColorFromHex();
static Color teal900 = "#087F5B".convertToColorFromHex();
static Color blueGrey900 = "263238".convertToColorFromHex();
static Color blueGrey600 = "546E7A".convertToColorFromHex();
static Color blueGrey500 = "607D8B".convertToColorFromHex();
static Color blueGrey400 = "78909C".convertToColorFromHex();
static Color blueGrey300 = "90A4AE".convertToColorFromHex();
static Color blueGrey200 = "B0BEC5".convertToColorFromHex();
static Color blueGrey100 = "CFD8DC".convertToColorFromHex();
static Color blueGrey50 = "ECEFF1".convertToColorFromHex();
static Color subCommentBackground = "F4F4F4".convertToColorFromHex();
static Color white = Colors.white;
static Color kakaoMainColor = "FEE500".convertToColorFromHex();
static Color facebookMainColor = "4267B2".convertToColorFromHex();
static Color googleMainColor = "EA4335".convertToColorFromHex();
static Color appleMainColor = "000000".convertToColorFromHex();
static Color heartColor = "FF0000".convertToColorFromHex();
}
figma ๋ฑ ๋์์ธ ํด์์ ์ ํด์ง ๋ช ์นญ๊ณผ ๋งค์นญ์์ผ์ ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์ฒ๋ฆฌํ๋ค.
import 'package:flutter/material.dart';
class FontConstants {
static const String ManropeFontFamily = "Manrope";
static const String NotoSansKrFontFamily = "NotoSansKR";
}
class FontWeights {
static const FontWeight light = FontWeight.w300;
static const FontWeight regular = FontWeight.w400;
static const FontWeight medium = FontWeight.w500;
static const FontWeight semiBold = FontWeight.w600;
static const FontWeight bold = FontWeight.w700;
}
import 'package:flutter/material.dart';
import '../../barrel.dart';
class ThemeManager {
static ThemeData getThemeData({
required Locale locale,
required bool isDarkMode,
}) {
final String defaultFontFamily = locale == LocaleManager.koLocale
? FontConstants.NotoSansKrFontFamily
: FontConstants.ManropeFontFamily;
ThemeData lightTheme = ThemeData(
scaffoldBackgroundColor: ColorManager.white,
primaryColor: ColorManager.primary,
disabledColor: ColorManager.blueGrey50,
textTheme: TextTheme(
titleLarge: getDefaultTextStyle(defaultFontFamily, ValueManager.s34),
titleMedium: getDefaultTextStyle(defaultFontFamily, ValueManager.s30),
titleSmall: getDefaultTextStyle(defaultFontFamily, ValueManager.s26),
bodyLarge: getDefaultTextStyle(defaultFontFamily, ValueManager.s22),
bodyMedium: getDefaultTextStyle(defaultFontFamily, ValueManager.s18),
bodySmall: getDefaultTextStyle(defaultFontFamily, ValueManager.s12),
),
);
ThemeData darkTheme = ThemeData();
return isDarkMode ? darkTheme : lightTheme;
}
static TextStyle getDefaultTextStyle(
String defaultFontFamily,
double fontSize,
) {
return TextStyle(
fontSize: fontSize,
fontFamily: defaultFontFamily,
);
}
}
@override
Widget build(BuildContext context) {
return MultiBlocProvider(
providers: [
BlocProvider(create: (context) => Injector.loadingSpinnerBloc),
],
child: MediaQuery(
data: MediaQuery.of(context).copyWith(textScaleFactor: 1.0),
child: MaterialApp.router(
theme: ThemeManager.getThemeData(
locale: context.fallbackLocale!,
isDarkMode: false,
),
localizationsDelegates: context.localizationDelegates,
supportedLocales: context.supportedLocales,
locale: context.locale,
debugShowCheckedModeBanner: false,
routerConfig: RouterConfiguration.router,
),
),
);
}
class ValueManager {
static const double half = 0.5;
static const double s1 = 1.0;
static const double s2 = 2.0;
static const double s3 = 3.0;
์์น๋ฅผ ์์์ฒ๋ฆฌ ํ ๊ฒ์ธ๋ฐ ์ฌ์ค ์ด๋ฌ๋ฉด ์๋๋ค. xxs, xs ๋ฑ์ผ๋ก ๋๋ ์ ์จ์ผํ๋๋ฐ ๋์์ธ ์๊ตฌ์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ ค๋ค ๋ณด๋ฉด ๊ฒฐ๊ตญ 1์ 1๋ก ์์ํํด์ ์ฐ๋ ์ด์ฒ๊ตฌ๋ ์๋ ์ฝ๋๊ฐ ๋์จ๋ค. ๋์์ธ ์๊ตฌ์กฐ๊ฑด ๋ถํฐ ํฌ๊ธฐ๊ฐ์ ๊ฒ์ ํน์ ์์น๋ก ๋ค์ํ ํ์ง ์๊ณ ์๋ฏธ์ ์ผ๋ก ์ข ๋ฌถ์ด์ ๋์์ผํ๋ค.
๋ค๊ตญ์ด ์ฒ๋ฆฌ์ ์ฌ์ฉ๋ ํค๊ฐ์ ์์ํ ํด์ ๊ฐ์ง๊ณ ์๋ ๊ฐ์ฒด์ด๋ค.