• Flutter

はじめに知っておきたい、Flutterのデバッグ方法

はじめに知っておきたい、Flutterのデバッグ方法

最近、Flutterで開発されたアプリの修正や機能追加をする機会が増えたのですが、 Webエンジニア出身のためデバッグ方法すら分からない状態で困りました。
そんなときに役に立った2種類のデバッグ方法についてご紹介します。

基礎からFlutterを学習した方には常識だとは思いますが、私と同じように途中から引き継いだ場合などに参考になればと思います。

1. DevToolsのインスペクターを使ったレイアウト確認

WebエンジニアとしてはChromeのデベロッパーツールのようなものがあれば捗るのですが、FlutterにもDevToolsという同様のツールが用意されていました。
以下にDevToolsの起動方法と、レイアウト確認方法について簡単にご紹介します。

なお、使っているエディターによって異なるかと思いますが、以下はターミナルからコマンドで起動した際の手順になります。

1. デバッグモードでアプリを起動する

ターミナルで「flutter run」を実行

2. ターミナルからDevToolsを起動する

アプリの起動が完了したら(↓の画像の状態)、ターミナルで「v」キーを押す

3. 起動したDevToolsを確認する

ターミナルに「Launching Flutter DevTools for iPhone 13〜」のように表示された後、ブラウザでDevToolsが開きます

4. インスペクターを確認する

デフォルトで開いている「Flutter Inspector」がインスペクター画面です。
左のツリーからウィジェットを辿るか、左上の「Select Widget Mode」をクリック後に、アプリ画面をクリックすると、クリックしたウィジェットがインスペクター画面に表示されます。

「Select Widget Mode」をクリックした後、エミュレーター上の要素をクリックすると次のように表示されます。

2. 変数のログ出力

ソースを読んでいるうちに、ある変数にどのような値が入っているか確認したいことがあると思いますが、「print()」だと省略されてしまったり、ログが流れてしまったりして確認しづらいことがありました。
より詳細に、便利にデバッグするため、「dart:developer」ライブラリを使ったログ出力方法についてご紹介します。

1. ライブラリの読み込み

ソースの上部で次のように「dart:developer」ライブラリを読み込みます。

import 'dart:developer';

2. ログ出力

任意の箇所で出力したい文字や変数などを次のように出力します。

log(shopList.toString());

3. DevToolsの「Logging」タブで確認する

上でDevToolsについて紹介しましたが、そのDevToolsの「Logging」タブに、先の手順で出力した内容が表示されます。

まとめ

2種類のFlutterのデバッグ方法についてご紹介しました。
画面レイアウトの確認と変数の確認方法を押さえることで、ソースがどのように画面や機能に反映されているか確認でき、デバッグしやすくなると思います。

また、DevToolsには今回紹介した「Flutter Inspector」や「Logging」の他にもタブがあり、デバッグに有用な機能がたくさんあるので、機会があればご紹介したいと思います。

  • Flutter
宮野 比伊呂

MIYANO HIIRO Chief Technology Officer / 宮野 比伊呂

記事をもっと見る

Our Signature Products, Born from Insight.

提案から生まれた、
MARBLEの代表プロダクト

お客様の課題を起点に、MARBLEが自ら構想し、
仕組みからデザイン、開発、運用まで一貫してつくり上げたプロダクト群です。
業務改善、運営効率化、新たな顧客体験の創出など、
企業の事業成長に直結する“実装された解決策”を形にしています。

  1. 01 入退場システム

    Entry System

    入退場システムのイメージ

    全国15店舗、会員数50万人以上のこども向けパークで稼働する入退場・決済・顧客管理システム。
    受付の効率化と回転率の向上を実現し、運営データの一元管理を可能にしています。

  2. 02 自動配送システム

    Delivery Routing

    50台のトラック、年間350日の配送を最適化する自動ルート生成システム。
    紙のFAXで届く約500件の配送情報をデジタル化し、最適ルートを自動で算出することで、大幅な業務効率化を実現しました。

  3. 03 会話型コマース連携

    Auto Routing

    ライブチャットでの接客からEC購入までを一つの導線でつなぐ会話型コマースシステム。
    リアルタイムの対話で顧客の購買意欲を高め、高いコンバージョン率につながる仕組みを構築しています。