본문 바로가기
프로그래밍/Flutter-Dart

Flutter 필수 패키지 - Flutter에서 가장 많이 사용하는 패키지

by 채연2 2023. 1. 6.

 

 

 

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

 

[Flutter] Provider (1)

1. Provider - 하나의 데이터를 여러 페이지에 공유 가능 - 한 클래스는 하나의 역할만 갖도록 분리 가능 - 코드의 간결함 1-1. Provider 데이터 생산 Provider.value( value: 5, child: MaterialApp( home: SimplePage(), ),

cording-cossk3.tistory.com

https://cording-cossk3.tistory.com/114

 

[Flutter] Provider (2)

3. MultiProvider - Provider가 여러개일수록 관리가 어려워짐. 중첩될 경우에는 앱이 난잡해지기 쉬움 - MultiProvider는 Provider 관리가 상당히 편해짐 - MultiProvider의 providers 속성에 원하는 Provider 적어주면

cording-cossk3.tistory.com

 


shared_preferences

Android 개발자라면 SharedPreferences 클래스를 많이 사용해봤을 것이다. 간단한 설정 값이나 문자열같은 데이터는 DB를 사용하기엔 부담스럽고, 애매한 경우가 있다. 이런 경우에 SharedPreferences를 사용하여 앱 내부에 파일로 저장하고 읽어올 수 있다.

 

hared_preferences 플러그인은 iOS 및 macOS의 NSUserDefaults 또는 Android의 SharedPreferences를 위한 플랫폼 별 영구 저장소를 래핑할 수 있다. 주의할 점은 디스크에 비동기적으로 유지되고 계속 지속된다는 보장은 없으므로 중요한 데이터를 저장하는데 사용해서는 안된다.

 

https://cording-cossk3.tistory.com/120

 

[Flutter] Shared preferences

나는 get과 좀 더 친해지고 싶어서 참고한 블로그 코드에서 get 패턴으로 수정했다.!!!! pubspec.yaml dependencies: flutter: sdk: flutter shared_preferences: get: MaterialApp ▶ GetMaterialApp void main() => runApp(GetMaterialApp(

cording-cossk3.tistory.com

 


320x100

url_launcher

url에 관한 동작들을 쉽게 구현할 수 있도록 도와주는 플러그인이다. 브라우저를 열거나, 메일을 보내거나, 전화를 걸거나 등.. 여러 동작들을 쉽게 수행할 수 있다.

 

나는 Tmap API를 사용하면서 url_launcher 패키지도 같이 사용했다.

 

https://cording-cossk3.tistory.com/210

 

[Flutter] Tmap API 및 Tmap 앱 연동 (1) - Android편

https://openapi.sk.com/ SK open API Recopick 레코픽은 성능과 안정성이 검증된 실시간 개인화 추천엔진과 SK그룹사 데이터를 기반으로 다양한 개인화 서비스를 제공합니다. SK planet openapi.sk.com 위 사이트

cording-cossk3.tistory.com

https://cording-cossk3.tistory.com/212

 

[Flutter] Tmap API 및 Tmap 앱 연동 (2) - iOS편

후... 반나절을 삽펐다. tmap에서 ios sdk를 다운받고 압축 해제를 하면 아래와 같이 내용물이 들어있다. 혹시 sdk를 어떻게 다운받는지 모른다면 ☞여기😆☜를 클릭해서 보면 된다. 또, android 먼저

cording-cossk3.tistory.com

 

 


flutter_bolc

BLoC(Business Logic Component) 디자인 패턴을 쉽게 구현할 수 있게 해주는 Flutter 위젯이다. 블록 상태 관리 패키지와 함께 사용하도록 제작이 되어있다.

 

https://pub.dev/packages/flutter_bloc

 

flutter_bloc | Flutter Package

Flutter Widgets that make it easy to implement the BLoC (Business Logic Component) design pattern. Built to be used with the bloc state management package.

pub.dev

 


flutter_local_notification

각 플랫폼에 맞게 사용자 정의할 수 있는 기능이 있는 Flutter 애플리케이션에 대한 로컬 알림 표시 및 예약하기 위한 플러그인이다. 주로 firebase messaging 기능과 같이 많이 사용하기도 한다.

 

https://pub.dev/packages/flutter_local_notifications

 

flutter_local_notifications | Flutter Package

A cross platform plugin for displaying and scheduling local notifications for Flutter applications with the ability to customise for each platform.

pub.dev

 


intl

메세지 번역, 성별, 날짜 및 숫자 서식 지정 및 구문 분석, 양방향 텍스트를 포함한 국제화 및 지역화 기능을 제공해주는 플러그인이다. 대부분의 국제화 매커니즘에 액세스하기 위한 기본 로케일 및 메서드를 사용하여 Intl 클래스를 정의한다. 

 

다른 외부 라이브러리나 API를 사용할 때도 의존성 라이브러리로 많이 사용된다. 주의할 점은 외부 라이브러리나 API를 같이 사용할 때 버전 충돌이 날 수 있으므로 확인하고 사용하도록 하자.

 

https://pub.dev/packages/intl

 

intl | Dart Package

Contains code to deal with internationalized/localized messages, date and number formatting and parsing, bi-directional text, and other internationalization issues.

pub.dev

 


get

개발자들이 가장 많이 선호하는 플러그인이다. Flutter 프로젝트를 개발하다보면 context 사용때문에 불편한 점이 꽤 있었을 것이다.

get 패키지를 사용하면 context 없이 화면/스낵바/대화 상자를 열고 상태를 관리할 수 있다. 또, GetX로 고성능 상태 관리, 지능형 종속성 주입 및 경로 관리를 빠르고 실질적으로 결합할 수 있다.

 

https://cording-cossk3.tistory.com/117

 

[Flutter] get package (1)

pub.dev에서 어떤 package들을 많이 사용할까 를 찾아보다가 get 이라는 package를 보았다. pubspec.yaml dependencies: get: Counter App 만들기 MaterialApp ▶ GetMaterialApp 변경 void main() => runApp(GetMaterialApp(home: Home()));

cording-cossk3.tistory.com

https://cording-cossk3.tistory.com/118

 

[Flutter] get package (2)

경로 관리 GetMaterialApp( home: MyHome(), ) ▶ MaterialApp 앞에 "Get"을 추가하여 GetMaterialApp으로 변경 Get.to(NextScreen()); ▶ 새 화면으로 이동 Get.toNamed('/details'); ▶ 이름이 있는 새 화면으로 이동 Get.back(); ▶

cording-cossk3.tistory.com

 


http

http 요청을 위한 Future 기반 라이브러리이다. HTTP 리소스를 쉽게 사용할 수 있도록 하는 고급 함수 및 클래스 집합이 포함되어 있다.

나도 항상 유용하게 사용하고 있는 라이브러리이다.

 

https://cording-cossk3.tistory.com/100

 

[Flutter] Flutter http

http 패키지 추가하기 dependencies: flutter: sdk: flutter http: 0.13.0 pub.dev/packages/http/example _MyAppState(); } Future fetchPost() async { final response = await http.get(Uri.https('jsonplaceholder.typicode.com', '/posts/1')); if (response.stat

cording-cossk3.tistory.com

 


image_picker

Android 및 iOS 갤러리에서 이미지를 선택하거나 카메라로 새로운 사진을 찍을 수 있는 플러그인이다.

 

https://cording-cossk3.tistory.com/107

 

[Flutter] Image Picker

pubspec.yaml dependencies: flutter: sdk: flutter cupertino_icons: ^1.0.2 image_picker: Button 만들기 Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ FloatingActionButton( onPressed: getImageFromCam, tooltip: 'Pick Image', child: Icon(

cording-cossk3.tistory.com

 


cached_network_image

네트워크 이미지를 로드하고 캐싱하는 라이브러리이다. 또, placeholder 및 오류 위젯과 함께 사용할 수 있다

 

https://cording-cossk3.tistory.com/119

 

[Flutter] cached_network_image

cached_network_image - 캐시된 이미지 사용하는 방법. offline 상태에서도 이미지를 볼 수 있다고 한다. - 한 번 실행해서 이미지를 다운 받은 후에 인터넷 연결 해제한 후 다시 실행해도 됨 pubspec.yaml depe

cording-cossk3.tistory.com

 


flutter_screenutil

내가 가장 좋아하는 라이브러리다. 바로 화면 및 글꼴 크기를 조정하기 위한 라이브러리이다. 다양한 화면 크기에서 UI가 적절한 레이아웃을 표시할 수 있도록 사용하기 쉽게 만들어져 있다.

 

https://pub.dev/packages/flutter_screenutil

 

flutter_screenutil | Flutter Package

A flutter plugin for adapting screen and font size.Guaranteed to look good on different models

pub.dev

 


 

이렇게 총 11가지의 플러터 패키지를 소개해봤다. 이외에도 pub.dev 사이트에는 더 좋은 패키지들도 많으니 사이트에 한 번 들어가서 구경하는 것도 나쁘지 않다.

 

하지만, 패키지를 사용하기 전에 주의할 점이 있다. 우선 최근까지 유지보수가 잘 되고 있는지와 null safety를 지원하는지 확인해야 한다. 이미 본인 프로젝트는 null safety가 적용되어 있는데 패키지는 지원되지 않는다면 사용할 수 없다. 아님 직접 커스터마이징해서 사용해야한다. 또, flutter는 계속해서 버전이 올라가고 있고 그에 따라 많은 기능이 추가/삭제되고 있다. 이에 따라 같이 잘 유지보수가 되고 있는지도 확인하는게 좋다.

 

 

 

 

 

320x100

댓글