Flutter를 한 번이라도 사용해본 적이 있는 개발자라면, pub.dev 사이트를 알 것이다.
pub.dev란 Flutter에서 사용 가능한 패키지들을 모아 놓은 공식 패키지 저장소이다. 이 저장소에 있는 패키지들 중 엄청 유용하고 편리하게 사용할 수 있는, Flutter 개발자들이 가장 많이 사용하고 선호하는 패키지들을 몇 가지 소개해보려한다.
provider
상속 위젯을 더 쉽게 사용하고 재사용할 수 있도록 만들어진 Wrapper 패키지 이다.
- 리소스의 간단한 할당과 해제
- 지연 로딩 (lazy-loading)
- 클래스 새로 생성할 때의 감소되는 상용구
- devtool 친화적 : Provider를 사용하면 Application State가 Flutter devtool에 표시됨
- 복잡성이 기하급수적으로 증가하는 listening mechanism을 가진 클래스에 대한 확장성 향상 (ex. ChangeNotifier)
https://cording-cossk3.tistory.com/113
https://cording-cossk3.tistory.com/114
shared_preferences
Android 개발자라면 SharedPreferences 클래스를 많이 사용해봤을 것이다. 간단한 설정 값이나 문자열같은 데이터는 DB를 사용하기엔 부담스럽고, 애매한 경우가 있다. 이런 경우에 SharedPreferences를 사용하여 앱 내부에 파일로 저장하고 읽어올 수 있다.
hared_preferences 플러그인은 iOS 및 macOS의 NSUserDefaults 또는 Android의 SharedPreferences를 위한 플랫폼 별 영구 저장소를 래핑할 수 있다. 주의할 점은 디스크에 비동기적으로 유지되고 계속 지속된다는 보장은 없으므로 중요한 데이터를 저장하는데 사용해서는 안된다.
https://cording-cossk3.tistory.com/120
url_launcher
url에 관한 동작들을 쉽게 구현할 수 있도록 도와주는 플러그인이다. 브라우저를 열거나, 메일을 보내거나, 전화를 걸거나 등.. 여러 동작들을 쉽게 수행할 수 있다.
나는 Tmap API를 사용하면서 url_launcher 패키지도 같이 사용했다.
https://cording-cossk3.tistory.com/210
https://cording-cossk3.tistory.com/212
flutter_bolc
BLoC(Business Logic Component) 디자인 패턴을 쉽게 구현할 수 있게 해주는 Flutter 위젯이다. 블록 상태 관리 패키지와 함께 사용하도록 제작이 되어있다.
https://pub.dev/packages/flutter_bloc
flutter_local_notification
각 플랫폼에 맞게 사용자 정의할 수 있는 기능이 있는 Flutter 애플리케이션에 대한 로컬 알림 표시 및 예약하기 위한 플러그인이다. 주로 firebase messaging 기능과 같이 많이 사용하기도 한다.
https://pub.dev/packages/flutter_local_notifications
intl
메세지 번역, 성별, 날짜 및 숫자 서식 지정 및 구문 분석, 양방향 텍스트를 포함한 국제화 및 지역화 기능을 제공해주는 플러그인이다. 대부분의 국제화 매커니즘에 액세스하기 위한 기본 로케일 및 메서드를 사용하여 Intl 클래스를 정의한다.
다른 외부 라이브러리나 API를 사용할 때도 의존성 라이브러리로 많이 사용된다. 주의할 점은 외부 라이브러리나 API를 같이 사용할 때 버전 충돌이 날 수 있으므로 확인하고 사용하도록 하자.
get
개발자들이 가장 많이 선호하는 플러그인이다. Flutter 프로젝트를 개발하다보면 context 사용때문에 불편한 점이 꽤 있었을 것이다.
get 패키지를 사용하면 context 없이 화면/스낵바/대화 상자를 열고 상태를 관리할 수 있다. 또, GetX로 고성능 상태 관리, 지능형 종속성 주입 및 경로 관리를 빠르고 실질적으로 결합할 수 있다.
https://cording-cossk3.tistory.com/117
https://cording-cossk3.tistory.com/118
http
http 요청을 위한 Future 기반 라이브러리이다. HTTP 리소스를 쉽게 사용할 수 있도록 하는 고급 함수 및 클래스 집합이 포함되어 있다.
나도 항상 유용하게 사용하고 있는 라이브러리이다.
https://cording-cossk3.tistory.com/100
image_picker
Android 및 iOS 갤러리에서 이미지를 선택하거나 카메라로 새로운 사진을 찍을 수 있는 플러그인이다.
https://cording-cossk3.tistory.com/107
cached_network_image
네트워크 이미지를 로드하고 캐싱하는 라이브러리이다. 또, placeholder 및 오류 위젯과 함께 사용할 수 있다
https://cording-cossk3.tistory.com/119
flutter_screenutil
내가 가장 좋아하는 라이브러리다. 바로 화면 및 글꼴 크기를 조정하기 위한 라이브러리이다. 다양한 화면 크기에서 UI가 적절한 레이아웃을 표시할 수 있도록 사용하기 쉽게 만들어져 있다.
https://pub.dev/packages/flutter_screenutil
이렇게 총 11가지의 플러터 패키지를 소개해봤다. 이외에도 pub.dev 사이트에는 더 좋은 패키지들도 많으니 사이트에 한 번 들어가서 구경하는 것도 나쁘지 않다.
하지만, 패키지를 사용하기 전에 주의할 점이 있다. 우선 최근까지 유지보수가 잘 되고 있는지와 null safety를 지원하는지 확인해야 한다. 이미 본인 프로젝트는 null safety가 적용되어 있는데 패키지는 지원되지 않는다면 사용할 수 없다. 아님 직접 커스터마이징해서 사용해야한다. 또, flutter는 계속해서 버전이 올라가고 있고 그에 따라 많은 기능이 추가/삭제되고 있다. 이에 따라 같이 잘 유지보수가 되고 있는지도 확인하는게 좋다.
'프로그래밍 > Flutter-Dart' 카테고리의 다른 글
[Flutter] Firebase Cloud Messaging 사용 방법 (5) | 2023.03.03 |
---|---|
[Flutter] 지도 API 비교 및 사용 방법 (16) | 2023.01.08 |
플러터(Flutter)와 리액트(React) 중 어떤 플랫폼이 좋을까? (8) | 2023.01.05 |
[Flutter] Google Map API Release 시 뜨지 않는 이슈 (7) | 2022.12.19 |
[Flutter] CERTIFICATE_VERIFY_FAILED: unable to get local issuer certificate (0) | 2022.10.13 |
댓글