플러터로 공용 플렛폼으로 개발을 하다보면 글자를 써야하는일은 늘있다.
(그래픽으로만 이루어지지 않는이상은..)
그래서 폰트는 중요한 요소중에 하나이다. 하지만 이것은 Text같은
위젯에서 쓰면은 그냥 잘써지니까 별생각 안하고 배포하게되면
다른플렛폼에서 다른 시스템폰트로 보여져서 글자크기나 자간이
약간씩 틀어짐으로써 완성도를 해친다.
예를들어 Text위젯을 컨테이너 위젯이 감싸고 패딩주더라도
시스템 기본폰트에따라 달라지기 때문에 여백이 달리보인다 라던가
하는 문제점이있다.
그래서 앱을 배포할 생각으로 만들거면 처음부터 아예 폰트를 박고 시작하는것이
훗날을 개발중에 있는 폰트를 가지고 앱을 완성해서 뒷수습하는것 보다 백배낫다.
어쨌든 쓸만한 폰트들은 많은데 별탈없는 무난한 폰트가 2가지정도 있는데
하나가 구글 NotoSans고 나머지가 나눔고딕이다..
물론 폰트어썸같은것을 써가지고 백터그래픽 아이콘을 만들수도 있지만
플러터는 Icons가 잘되어있으니까 거기까지 신경쓰지 않아도 되는게 좋다.
이중 NotoSans를 가지고 세팅을 하는것으로 예시를 한다.
먼저 assets/fonts/ 폴더를 만들어서 폰트파일을 복사하고
pubspec.yaml에서 assets 폴더를 사용하게 바꾸고
assets:
- assets/fonts/
그아래쪽에 폰트관련 내용을 다음처럼 수정 (들여쓰기주의)
fonts:
- family: Noto_Sans_KR
fonts:
- asset: assets/fonts/NotoSansKR-Thin.otf
weight: 200
- asset: assets/fonts/NotoSansKR-Light.otf
weight: 300
- asset: assets/fonts/NotoSansKR-Regular.otf
weight: 400
- asset: assets/fonts/NotoSansKR-Medium.otf
weight: 500
- asset: assets/fonts/NotoSansKR-Bold.otf
weight: 700
- asset: assets/fonts/NotoSansKR-Black.otf
weight: 900
여기서 family에 있는 문구를 MainApp의
builder 메서드의 메테리얼이나 코퍼티노에서 테마데이터 프로퍼티중
fontfamily의 이름을 위에서 기술한 내용으로 다음과 같이 변경한다.
@override
Widget build(BuildContext context) {
return GetMaterialApp(
debugShowCheckedModeBanner: false,
title: 'MyApp',
// 요놈
theme: ThemeData(primarySwatch: Colors.blue, fontFamily: 'Noto_Sans_KR'),
home: MainPage(),
);
}
이렇게 해놓고 TextStyle줄때 굵기처리를 bold나 thin 이렇게 주지말고
pubspec.yaml에 정의 해놓은것 처럼 FontWeight.w200 ~ w900 중에 선택에서
쓰면된다.
이렇게 세팅해놓고 개발하는것이 속편하다. (다른플렛폼에서 다르게 안보임)
물론 테스트 프로그램 만들때까지 이렇게 하는건 아니지만
나처럼 귀찮은거 싫어하는 사람은 조금만 귀찮더라도 아싸리 테스트프로그램
만들때 조차저렇게 설정하는것을 익혀놓아서 그냥 자연스럽게 Hello world
만들어놓고 거기서부터 시작하는것이 익혀놓음직하다
ㅇㅇ
댓글 없음:
댓글 쓰기