Flutter로 앱을 개발하다 보면 패키지와 플러그인이라는 용어를 자주 접하게 됩니다. 이 둘은 Flutter 개발을 도와주는 도구들이지만, 사용 목적과 역할이 조금씩 다르다고 하는데요.
오늘은 이 패키지와 플러그인에 대해서 알아보겠습니다.
패키지 (Package)
- 정의
Flutter에서 패키지는 Dart 언어로 작성된 코드 묶음입니다. 특정 기능을 쉽게 구현할 수 있도록 미리 작성된 코드나 유틸리티를 제공합니다.
- 특징
- Dart 코드로만 이루어져 있습니다.
- 네이티브 플랫폼(Android, iOS)의 기능을 사용하지 않습니다.
- Flutter의 위젯이나 데이터 처리 로직, 유틸리티 함수 등을 제공하는 경우가 많습니다.
- 예시
- 언제 사용하나요?
앱 개발 중 플랫폼에 독립적인 기능을 구현하고 싶을 때 사용합니다. 예를 들어, API 호출, 데이터 변환, 상태 관리 등이 있습니다.
플러그인 (Plugin)
- 정의
Flutter에서 플러그인은 Dart 코드와 네이티브 플랫폼(Android, iOS)의 코드가 결합된 기능을 제공합니다. 네이티브 플랫폼의 기능을 Flutter 앱에서 사용할 수 있도록 해줍니다. - 특징
- Dart 코드뿐만 아니라 Kotlin/Java(Android), **Swift/Objective-C(iOS)**와 같은 네이티브 코드도 포함되어 있습니다.
- Flutter와 플랫폼 간의 통신(Platform Channels)을 통해 네이티브 기능을 호출합니다.
- 예시
- google_sign_in: Google 로그인 기능을 제공.
- geolocator: GPS 위치 정보를 가져오는 기능 제공.
- 언제 사용하나요?
앱 개발 중 기기와 직접 상호작용하는 기능(예: 카메라, 위치 정보, 푸시 알림)을 구현해야 할 때 사용합니다.
비교
항목 | 패키지(Package) | 플러그인(Plugin) |
코드 구성 | Dart 코드만 포함 | Dart 코드 + 네이티브 코드 포함 |
네이티브 기능 접근 | 불가능 | 가능 |
사용 예시 | 상태 관리, API 호출, 데이터 변환 | 카메라, GPS, 푸시 알림 등 기기 기능 사용 |
복잡도 | 낮음 | 다소 높음 |
어떻게 사용하나요?
Flutter 프로젝트에서 패키지나 플러그인을 사용하려면 pub.dev에서 원하는 것을 찾아 pubspec.yaml 파일에 추가합니다.
dependencies:
# 패키지 예시
provider: ^6.1.3
# 플러그인 예시
google_sign_in: ^6.2.0
그다음, flutter pub get 명령어를 실행해 의존성을 설치한 뒤 코드에서 임포트하여 사용합니다.
결론
- 패키지는 네이티브 코드를 사용하지 않고, Dart로 구현된 기능을 제공합니다.
- 플러그인은 네이티브 기능과 연동하여 플랫폼 의존적인 작업을 처리합니다.
Flutter 앱을 개발할 때, 프로젝트의 요구사항에 따라 패키지와 플러그인을 적절히 선택하여 활용하면 개발 속도를 크게 높일 수 있습니다.
'TIL' 카테고리의 다른 글
클래스 내에서 static 키워드 (0) | 2025.01.10 |
---|---|
Flutter의 빌드 모드에는 무엇이 있는지 알아보자 (0) | 2025.01.10 |
Oauth 2.0 과 OIDC에 대해 설명..! (1) | 2025.01.06 |
LeetCode 643: Maximum Average Subarray I (1) | 2024.12.13 |
LeetCode 문제 1232 (1) | 2024.11.25 |