TEXTBOOK SECTION / AI LEARNING

Flutterにhttpパッケージを追加する

Flutterアプリケーション開発概論の「Flutter API連携入門|ポケモン図鑑アプリの作り方」より、Flutterにhttpパッケージを追加するを解説。生成AI、AI活用、DX、業務改善を実践しながら学べるオンライン教材です。

7Flutter API連携入門|ポケモン図鑑アプリの作り方Flutter / iOS / Android / MacOS / Windows / 基礎から学ぶ / 開発 / アプリ開発

OVERVIEW

この節で学べること

概要を表示する
項目内容
教材名Flutterアプリケーション開発概論
Flutter API連携入門|ポケモン図鑑アプリの作り方
Flutterにhttpパッケージを追加する
カテゴリFlutter / iOS / Android / MacOS / Windows / 基礎から学ぶ / 開発 / アプリ開発
学習内容生成AI、AI活用、DX、業務改善を実践しながら理解するための教材です。

TABLE OF CONTENTS

目次

CONTENT

ここから

前の節では、PokeAPIから返ってくるデータの形を確認しました。

ただ、FlutterアプリからAPIへアクセスするには、まだ準備が必要です。

その準備として使うのが、httpパッケージです。

httpパッケージは、FlutterアプリからWeb上のAPIへリクエストを送り、返ってきたデータを受け取るためのパッケージです。公式のFlutterドキュメントでも、インターネットからデータを取得する手順として、まずhttpパッケージを追加する流れが紹介されています。


この節で作ること

この節では、Flutterプロジェクトにhttpパッケージを追加します。

まだ画面には大きな変化はありません。

でも、ここはかなり大事です。

アプリが外の世界と通信できるようになる、最初の一歩です。


httpパッケージとは

httpパッケージは、FlutterやDartでHTTP通信を行うためのライブラリです。

たとえば、次のようなことができます。

できること内容
APIにアクセスするPokeAPIなどにリクエストを送る
JSONを取得するポケモンの名前、画像URL、高さ、重さなどを受け取る
通信結果を判定する成功したか、失敗したかを確認する
アプリ画面にデータを表示するAPIの結果をFlutterのUIに反映する

pub.devでは、httpパッケージは「HTTPリソースを扱いやすくするための、Futureベースのライブラリ」と説明されています。


忙しい方はここだけ見て

Flutterプロジェクトのフォルダで、次のコマンドを実行します。

flutter pub add http

そのあと、Dartファイルで次のように読み込みます。

import 'package:http/http.dart' as http;

これで、FlutterアプリからAPI通信を行う準備ができます。


手順1:Flutterプロジェクトを開く

まず、VS CodeやAndroid Studioで、作成中のFlutterプロジェクトを開きます。

今回の教材では、ポケモン図鑑アプリを作っている前提です。

プロジェクトの中に、次のようなファイルがあることを確認してください。

pubspec.yaml
lib/
  main.dart

pubspec.yaml は、Flutterアプリで使うパッケージや画像、フォントなどを管理するファイルです。

ここにhttpパッケージが追加されます。


手順2:ターミナルを開く

VS Codeの場合は、上のメニューから次のように開きます。

ターミナル → 新しいターミナル

ターミナルを開いたら、今いる場所がFlutterプロジェクトの中になっているか確認します。

ls

次のようなファイルが表示されていれば大丈夫です。

pubspec.yaml
lib
android
ios

pubspec.yaml が見えていれば、正しい場所にいます。


手順3:httpパッケージを追加する

ターミナルで、次のコマンドを実行します。

flutter pub add http

Flutter公式ドキュメントでも、パッケージを追加する方法として flutter pub add パッケージ名 が紹介されています。

実行すると、pubspec.yaml にhttpパッケージが自動で追加されます。

例として、次のような形になります。

dependencies:
  flutter:
    sdk: flutter
  http: ^1.x.x

1.x.x の部分は、その時点で取得されるバージョンによって変わります。

正確な最新版はpub.devのhttpページで確認してください。


手順4:pubspec.yamlを確認する

pubspec.yaml を開いて、dependencies: の中に http が追加されているか確認します。

dependencies:
  flutter:
    sdk: flutter

  http: ^1.x.x

ここで注意したいのは、インデントです。

YAMLファイルでは、空白のズレでエラーになることがあります。

悪い例です。

dependencies:
flutter:
  sdk: flutter
http: ^1.x.x

良い例です。

dependencies:
  flutter:
    sdk: flutter
  http: ^1.x.x

flutter:http: は、dependencies: より少し右にずれている必要があります。


手順5:Dartファイルで読み込む

httpパッケージを追加しただけでは、まだDartファイルの中では使えません。

使いたいファイルの上の方に、次の1行を追加します。

import 'package:http/http.dart' as http;

たとえば、lib/main.dart で使う場合は、次のようになります。

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

void main() {
  runApp(const MyApp());
}

as http と書くことで、httpパッケージの機能を http.get() のように呼び出せます。

これは後の節で、PokeAPIを呼び出すときに使います。


ここで一度、動作確認する

まだAPI通信はしません。

まずは、エラーが出ないかだけ確認します。

ターミナルで次のコマンドを実行してください。

flutter pub get

そのあと、アプリを起動します。

flutter run

エラーが出なければ、httpパッケージの追加は成功です。


よくあるエラー

1. package:http/http.dart が見つからない

次のようなエラーが出ることがあります。

Target of URI doesn't exist: 'package:http/http.dart'

この場合は、httpパッケージが正しく追加されていない可能性があります。

確認することは3つです。

確認すること対応
flutter pub add http を実行したかまだなら実行する
pubspec.yamlhttp があるかdependencies内を確認する
flutter pub get を実行したか実行して依存関係を取得する

2. pubspec.yamlでエラーが出る

pubspec.yaml のインデントがずれていると、エラーになります。

特に、手で http: を追加した場合に起きやすいです。

不安な場合は、手入力ではなく次のコマンドで追加してください。

flutter pub add http

この方法なら、基本的に正しい位置へ自動で追加されます。


3. VS Code上で赤線が消えない

パッケージを追加したのに、VS Codeで赤線が残ることがあります。

その場合は、次の順番で試してください。

flutter pub get

それでも直らなければ、VS Codeを再起動します。

Flutter拡張機能が読み込み直されることで、解消することがあります。


今回の完成コード

この節では、まだAPI通信の処理は書きません。

まずはhttpパッケージを読み込める状態にします。

import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;

/**
 * アプリの起点になる関数。
 *
 * 入力: なし
 * 出力: MyAppを起動する
 */
void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  /**
   * アプリ全体のUIを構築する関数。
   *
   * 入力: BuildContext
   * 出力: MaterialApp
   */
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'ポケモン図鑑',
      theme: ThemeData(
        colorScheme: ColorScheme.fromSeed(seedColor: Colors.red),
        useMaterial3: true,
      ),
      home: const PokemonHomePage(),
    );
  }
}

class PokemonHomePage extends StatelessWidget {
  const PokemonHomePage({super.key});

  /**
   * ポケモン図鑑のトップ画面を構築する関数。
   *
   * 入力: BuildContext
   * 出力: Scaffold
   */
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('ポケモン図鑑'),
      ),
      body: const Center(
        child: Text('httpパッケージの追加が完了しました'),
      ),
    );
  }
}

この段階では、http を読み込んでいるだけです。

次の節で、実際に http.get() を使ってPokeAPIからデータを取得していきます。


確認問題

問1

Flutterで外部APIと通信するために、今回追加したパッケージは何ですか?

答え。

httpパッケージ

問2

httpパッケージを追加するコマンドはどれですか?

答え。

flutter pub add http

問3

Dartファイルでhttpパッケージを読み込むコードはどれですか?

答え。

import 'package:http/http.dart' as http;

まとめ

この節では、Flutterアプリにhttpパッケージを追加しました。

httpパッケージを使うことで、FlutterアプリからPokeAPIのような外部APIへアクセスできるようになります。

今回やったことは、次の3つです。

作業内容
パッケージ追加flutter pub add http を実行
依存関係確認pubspec.yamlhttp が追加されたか確認
Dartで読み込みimport 'package:http/http.dart' as http; を追加

ここまでできれば、API通信の土台は完成です。

次は、PokeAPIにアクセスして、Flutterアプリから実際にポケモンデータを取得します。

FAQ

よくある質問

Flutterにhttpパッケージを追加するは医療関係者向けだけの内容ですか。
医療分野の例が含まれる場合もありますが、医療関係者だけに限定した内容ではありません。生成AI、AI活用、DX、業務改善、プロトタイプ開発など、一般的なAI学習の事例として読める内容です。
AI初心者でも読めますか。
はい。AIをこれから学ぶ方、数学が苦手な方、仕事でAIを使いたい方にも読み進めやすいように、教材の章と節の流れに沿って整理しています。
サムネイル画像は必ず表示されますか。
はい。教材にcoverUrlが設定されている場合はその画像を表示し、未設定の場合は代替サムネイル画像を表示します。
Flutterアプリケーション開発概論のほかの章も読めますか。
はい。教材トップから章立てを確認でき、前後の節へもページ下部のナビゲーションから移動できます。