代表的なFlutterパッケージ

代表的なFlutterパッケージ – よく使われるトップ選手を調べてみました!

Flutterアプリ開発でほぼ必ず使う、超定番パッケージを紹介します!

1️⃣ 状態管理

provider一番人気! 中規模アプリ向け
riverpodProviderの進化版、より安全
bloc大規模アプリ、チーム開発向け
get簡単だけど好き嫌いが分かれる

2️⃣ ネットワーク通信(API呼び出し)

http一番シンプル。基本的なGET/POST
diohttpより高機能。インターセプター、キャンセル、進捗管理
// http パッケージ
import 'package:http/http.dart' as http;

final response = await http.get(Uri.parse('https://api.example.com/data'));

// dio パッケージ(より高機能)
import 'package:dio/dio.dart';

final dio = Dio();
final response = await dio.get('https://api.example.com/data');

3️⃣ データ保存(ローカルストレージ)

パッケージ何を保存?使い道
shared_preferences設定、フラグ(bool, String, int)ログイン状態、テーマ設定
sqfliteデータベース(SQLite)ユーザーリスト、入金データ
hive軽量DB(NoSQL)sqfliteより簡単
isar超高速DB大量データ
// shared_preferences - 簡単な設定保存
final prefs = await SharedPreferences.getInstance();
await prefs.setBool('isDarkMode', true);
bool? isDark = prefs.getBool('isDarkMode');

// sqflite - データベース
final db = await openDatabase('my_database.db');
await db.insert('students', {'name': '田中太郎', 'fee': 8000});

4️⃣ UI・デザイン補助

google_fontsGoogleフォント簡単導入
flutter_slidableスライドして削除/編集
flutter_staggered_grid_viewカスタムグリッド表示
shimmerローディング時のキラキラ効果
lottie動くアニメーション(JSON)
// google_fonts
import 'package:google_fonts/google_fonts.dart';

Text(
  '私のアプリ',
  style: GoogleFonts.notoSans(fontSize: 24),
);

// flutter_slidable
Slidable(
  endActionPane: ActionPane(
    children: [
      SlidableAction(
        onPressed: (context) => deleteStudent(),
        backgroundColor: Colors.red,
        icon: Icons.delete,
        label: '削除',
      ),
    ],
  ),
  child: ListTile(title: Text('田中太郎')),
);

5️⃣ 日付・時刻

intl日付フォーマット、多言語対応
table_calendarカレンダー表示
// intl
import 'package:intl/intl.dart';

final now = DateTime.now();
final formatted = DateFormat('yyyy年MM月dd日').format(now);
// 結果: "2026年01月10日"

final money = NumberFormat('#,###円').format(8000);
// 結果: "8,000円"

6️⃣ 画像関連

image_pickerカメラ・ギャラリーから画像選択
cached_network_imageネット画像をキャッシュ表示
photo_view画像の拡大・縮小
// image_picker
import 'package:image_picker/image_picker.dart';

final picker = ImagePicker();
final image = await picker.pickImage(source: ImageSource.gallery);

7️⃣ 便利ツール

url_launcherURLを開く、電話、メール
share_plus他アプリと共有
path_providerファイル保存パス取得
permission_handler権限リクエスト(カメラ、位置情報)
uuidユニークIDを生成
// url_launcher
import 'package:url_launcher/url_launcher.dart';

await launchUrl(Uri.parse('https://example.com'));  // ブラウザで開く
await launchUrl(Uri.parse('tel:0312345678'));      // 電話
await launchUrl(Uri.parse('mailto:test@example.com')); // メール

// share_plus
import 'package:share_plus/share_plus.dart';

Share.share('このアプリすごい便利! https://example.com');

8️⃣ 認証・課金

firebase_authログイン認証
google_sign_inGoogleログイン
in_app_purchaseアプリ内課金

pub.dev の「いいね数」順:!

  1. http – API通信
  2. provider – 状態管理
  3. shared_preferences – 設定保存
  4. path_provider – ファイルパス
  5. sqflite – データベース
  6. url_launcher – URL/電話/メール
  7. image_picker – 画像選択
  8. intl – 日付フォーマット
  9. google_fonts – フォント
  10. dio – 高機能API通信

パッケージを探すには?
pub.dev というサイト:

検索できる
人気順で並べられる
使い方(ドキュメント)が見られる
「いいね」の数で人気が分かる