-
Package에서 Custom Asset 사용하기플러터 2024. 3. 24. 15:51
회사에서 프로젝트를 모노레포를 관리하는데,
공용 Package에서 사용하는 Asset의 경우 관리 방법이 조금 달라서 정리를 한다.저자의 프로젝트 구조를 보면 아래와 같다.
패키지 설명을 하자면
- melos_project : 모노레포로 관리하기 위해 사용
- myproject : common, widgets에서 만든 위젯, 스타일, 칼라 등등을 사용하는 어플리케이션
- common : 고용 Color, TextStyle 등 관리
- widgets : 공용 widget을 만들어서 관리
- widgetbook : widgets 패키지에서 만든 widget을 테스트 하기 위한 프로젝트
일반적인 방법으로 common, widgets 프로젝트에서 Asset을 사용하다 보면 상위 프로젝트에서 문제가 발생
상위 프로젝트에서 Asset의 path를 잡는데 문제가 생기는듯하다.
Package 에서 Custom Asset을 사용하기 위한 설정
1. asset은 /lib 안에 넣는다.
2. pubspec.yaml 에 아래와 같은 식으로 작성
// image assets: - lib/assets/icon/ // font fonts: - family: Pretendard fonts: - asset: packages/widgets/assets/fonts/pretendard-regular.otf weight: 400 - asset: packages/widgets/assets/fonts/pretendard-bold.otf weight: 700 - family: Decimal fonts: - asset: packages/widgets/assets/fonts/decimal-book.otf weight: 400 - asset: packages/widgets/assets/fonts/decimal-bold.otf weight: 700
3. image, TextStyle 관련 위젯 사용시 package 이름 넣는다.
SvgPicture.asset( 'lib/assets/icon/user.svg', package: "widgets", width: 30, height: 30, ); // svg TextStyle(fontWeight: FontWeight.w400, fontFamily: "Pretendard", fontSize: 20, package: "widgets"); // TextStyle
4. 어플리케이션 pubspec.yaml에 Package 포함
dependencies: common: path : ../../packages/common widgets: path : ../../packages/widgets
이렇게 하면 Package에서 Custom Asset 사용이 가능하다.
'플러터' 카테고리의 다른 글
[Flutter] BuildContext (0) 2024.04.15 [Flutter] Custom Button 만들기 (0) 2024.04.07 [Flutter] Github Action + Firebase distribution 안드로이드 배포 (1) 2024.04.06 Flutter Google sign in(Android) (0) 2024.03.31 Sendbird 메시지 분류 (customType을 사용한 분류) (0) 2024.03.06