중급
Packages와 Plugins
pub.dev 패키지와 네이티브 기능을 포함하는 플러그인을 구분합니다.
핵심 개념
Packages와 Plugins 주요 항목
패키지 사용
pubspec.yaml에 의존성을 추가하고 flutter pub get으로 내려받습니다.
언제 쓰나: 패키지는 순수 Dart 코드일 수도 있고 Flutter 위젯을 제공할 수도 있습니다.
Flutter에서: 패키지 선택 시 유지보수 상태, 플랫폼 지원, 라이선스, 예제 품질을 확인합니다.
flutter pub add http
flutter pub get
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: const Color(0xFFDCE6EF)),
borderRadius: BorderRadius.circular(8),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
decoration: BoxDecoration(
color: const Color(0xFFEEF7FB),
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'실행 출력',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('$ flutter pub add http
Resolving dependencies...
Changed pubspec.yaml')
],
)
],
),
)
실행 출력
$ flutter pub add http
Resolving dependencies...
Changed pubspec.yaml
플러그인
플러그인은 카메라, 위치, 결제처럼 네이티브 기능과 연결될 수 있습니다.
언제 쓰나: 플랫폼별 설정이 필요한 경우 AndroidManifest, Info.plist 등을 수정해야 합니다.
Flutter에서: 앱 출시 전 권한 문구와 스토어 정책을 함께 확인합니다.
flutter pub add http
flutter pub get
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: const Color(0xFFDCE6EF)),
borderRadius: BorderRadius.circular(8),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
decoration: BoxDecoration(
color: const Color(0xFFEEF7FB),
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'실행 출력',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('$ flutter pub add http
Resolving dependencies...
Changed pubspec.yaml')
],
)
],
),
)
실행 출력
$ flutter pub add http
Resolving dependencies...
Changed pubspec.yaml
확장 개념
패키지 평가 기준
- pub.dev 점수만 보지 말고 최근 업데이트, 이슈 대응, 플랫폼 지원 범위를 같이 봅니다.
- 플러그인은 네이티브 코드가 포함될 수 있으므로 Android, iOS, Web 지원 여부를 반드시 확인합니다.
- 핵심 기능을 외부 패키지에 맡길수록 라이선스와 유지보수 리스크도 함께 검토해야 합니다.
코드
예제
flutter pub add http
flutter pub get
Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: Colors.white,
border: Border.all(color: const Color(0xFFDCE6EF)),
borderRadius: BorderRadius.circular(8),
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
padding: const EdgeInsets.symmetric(horizontal: 12, vertical: 10),
decoration: BoxDecoration(
color: const Color(0xFFEEF7FB),
borderRadius: BorderRadius.circular(8),
),
child: const Text(
'실행 출력',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.w900),
),
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('$ flutter pub add http
Resolving dependencies...
Changed pubspec.yaml')
],
)
],
),
)
실행 출력
$ flutter pub add http
Resolving dependencies...
Changed pubspec.yaml
다음 단계
실습 체크리스트
pubspec.yaml 추가플랫폼 지원 확인권한 설정 확인
- 출처세부 기준과 최신 변경 사항을 확인할 수 있습니다.
- Flutter API Reference클래스, 메서드, 생성자 세부 정의를 확인합니다.
- Dart languageDart 문법 자체가 궁금할 때 함께 봅니다.