Flutter 3が正式リリース
2022年5月11日、GoogleはFlutter 3を正式リリースしました。Flutter for Windows 2.10に続いての安定版となり、macOSとLinuxアプリでも安定版が提供されます。発表はGoogle I/O 2022を通じて行われ、紹介動画も公開されています。 【参考】:Flutter What’s new 【参考】:Flutter May 11, 2022, Google I/O Edition: Flutter 3 release 【参考】:Flutter at Google I/O 2022
Flutterの概要
Flutterは、Googleが開発したユーザーインターフェース用SDKです。単一のコードをベースに、マルチプラットフォームのアプリケーション開発が可能なオープンソースソフトウェアとなります。今回のリリースは、macOSとLinuxのアプリにおいても安定版となりますので利用拡大が期待されます。 【参考】:Flutter 【参考】:Introducing Flutter 3
日本でも、Flutterアプリ開発者コミュニティの「Flutter Japan User Group」や、Flutterエンジニアに特化した学習コミュニティ「Flutter大学」など、Flutterに関するコミュニティが存在しています。
Flutterの実績と特長
Flutterを用いたアプリはすでに50万以上リリースされています。データ分析やファイナンス、Eコマースなど多岐に活用されています。デベロッパーには以下の特長が受け入れられていると考えられます。 【参考】:Introducing Flutter 3
開発効率が高い
Flutterを用いることで、ビルドから公開まで短期間に実装することができます。高い生産性はホットリロード機能によりもたらされます。コード更新で状態がキープされ、ほぼ瞬時に変更が反映されます。構築期間短縮や反復作業の高速化が可能となります。
見栄えが良い
FlutterはIntelやARMのマシンコードや、JavaScriptにコンパイルすることで高速実行されます。主要デバイスでハイパフォーマンスに画面表示できるほか、ピクセル全体を制御することでどの画面でも滑らかで見栄えのするカスタムデザインを作成できます。
デバイスを選ばない
Flutterでは、Android・iOSに加えて、Windows・MacOS・Linux・ウェブアプリケーションのクロスプラットフォームで実行可能です。そのためコード管理の一貫性を保ちながらメンテナンスできます。
Flutter 3の新機能
2022年2月4日、Flutter for Windows 2.10がリリースされました。Flutter 3はFlutter 2.10に続いてのリリースとなります。ここではFlutter 2.10以降の追加機能と提供サービスについて紹介していきます。 【参考】:What’s new in Flutter 3
実装に関する情報は、Release Notesに記載されています。詳細は以下リンクをご確認ください。 【参考】:Flutter 3.0.0 release notes
macOSとLinuxアプリの安定版対応
今回のリリースでは、macOSとLinuxアプリが安定版としてサポートされます。これまでのiOS・Android、そしてWindowsに加えてサポートOSが拡大しました。OSの機能を最大限利用し、共通のユーザーインターフェースとアプリケーションロジックで開発生産性向上と用途拡大が図られます。
マテリアルデザイン 3のサポート
Googleが発表した、最新のデザインガイドラインであるマテリアルデザイン 3(Material Design 3)に対応します。ダイナミックカラーやカラースキームの統一を実現します。Android 12で導入された、タッチリップルデザインやストレッチオーバースクロール効果など新しい視覚効果が得られます。 【参考】:Meet Material Design 3
macOSの機能追加
macOSでは、以下の改善が図られています。
・メニューサポート macOSのカスケードメニューと システムメニューバーをサポートします。PlatformMenuBarウィジェットにより、macOSでプラットフォーム・レンダリングされたメニューバーを作成できます。プラットフォーム専用メニューや、アプリケーションメニューに表示される内容の制御ができます。
・ユニバーサルバイナリサポート 今回のリリースからmacOSデスクトップアプリは、ユニバーサルバイナリとしてビルドされます。既存のIntelベースのMacとAppleの最新のApple Siliconデバイスの両方をネイティブにサポートします。
デスクトッププラットフォームでの多言語サポート
Windows、macOS、Linuxのデスクトッププラットフォームでは、テキスト入力に多言語入力をサポートします。IMEやサードパーティ入力メソッドに対応します。日本語入力についても、問題なく対応します。
モバイルプラットフォームのサポート追加
折りたたみ式モバイルフォンやデュアルディスプレイ型デバイスがサポートされます。iOSでは可変リフレッシュレートがサポートされ、高速アニメーション表示がよりスムーズになります。またiOSでは、リリースを簡素化するためにビルドオプションが追加されています。
ウェブアプリのアップデート
ImageDecoder APIのサポート有無を自動検出し、画像のデコード機能が使用できるようになります。非同期で画像をデコードできるため、画像のデコード処理がおよそ2倍高速化されます。lifecycle APIでは、ブートストラッププロセスを制御し、パフォーマンス分析に役立てることができます。
パフォーマンスの改善
Androidデバイスでは、部分的な再描画によりラスタライズ時間が短縮され、アニメーションパフォーマンスが向上します。OpacityアニメーションについてもsaveLayerメソッドを省略可能にし、ラスタライズ時間を短縮します。
ドキュメントサイトの充実化
Flutter 2.10以降、次のようなサイトが提供されています。今回のリリースに合わせて、活用するのが良いでしょう。
・Casual Games Toolkit Flutterで簡単にゲームを作るためのCasual Games Toolkitが提供されます。ゲームで必要なメニューや音楽・広告・アプリ内課金の仕組みがテンプレート化されており、サンプルコードも公開されています。 【参考】:Flutter Casual Games Toolkit 【参考】:Flutter Docs Casual Games Toolkit
・Happy paths project Flutter開発者としてレベルアップするためのプロジェクトとして、Happy paths projectを立ち上げています。Happy pathsの推奨パッケージにより目標をガイドし、デベロッパーがより高度で大規模なアプリを作るためのガイダンスが提供されます。パッケージは、用途別に分類付けされ提供されます。【参考】:Flutter Happy paths project
サポートの終了
バージョンアップに伴い、以下の開発環境とターゲット環境のサポートが終了となります。
・開発用Windows7および8 マイクロソフト社のサポート終了に伴い、開発用Windowsはバージョンが引き上げられ、10以降が対応します。実行するFlutterアプリ自体のサポートは継続されます。
・iOS Flutterの32ビット版iOSデバイスと、iOSバージョン9および10のサポートが終了となります。iPhone 4SやiPhone 5、iPadの第2世代・第3世代・第4世代のサポートは今回のリリースが最後の安定版となります。
Flutterの使い方
Flutterは、Googleの開発したDartが中心的な言語ですので、Dartを理解しておくのが良いでしょう。C言語に近い構文のため、書きやすいという声があります。Dart公式サイトでは、ブラウザベースのコード実行環境が用意されていますのでインストールせずに簡単な確認をすることもできます。 【参考】:Dart
Flutterのインストール
Flutterは、Windows・macOS・Linux・Chrome OSにインストールすることができます。最新版は3.0.1です。各OSのインストール要件も掲載されていますので、事前にご確認ください。 【参考】:Flutter Install
インストールにより、Dartプラットフォーム・Flutterエンジン・基本ライブラリ・iOSとAndroid向けウィジェット・開発ツールが構成されます。
ドキュメントの活用
Docsには、概要から開発まで多くの情報が掲載されています。用途に応じて確認するのが良いでしょう。主な用途は以下の通りです。
・Get started 最初に確認する情報です。インストールやセットアップ、その後に最初のコード開発についてまとめてあります。 【参考】:Flutter Get started
・Sample & tutorials FlutterのサンプルギャラリーやCookbook、Tutrialsが掲載されています。利用できそうなコンテンツがあるか確認してみましょう。 【参考】:Flutter Tutrials
・Development ウィジェット概要やレイアウト設計やアニメーション等の、ユーザーインターフェイス開発手法が掲載されています。データ処理や国際化、パッケージ管理など全般がカバーされています。 【参考】:Flutter Development Widgets
上記の他、「Test & debugging」「Performance & optimmization」「Deployment」等の工程についても整理されています。
パッケージマネージャの利用
PubはDartプログラミング用パッケージマネージャで、Pub.devはGoogleがサポートしている公式リポジトリです。サイトには、Flutter用ライブラリやパッケージが登録されています。登録されているパッケージを利用することもできますし、自身の開発したパッケージを公開することもできます。ホームページ用パッケージやCounter等、多数のライブラリやパッケージが登録されています。 【参考】:pub.dev
ユーザーインターフェイスの開発生産性を高めましょう
Flutterは、単一のコードをベースに、マルチプラットフォームのユーザーインターフェイス開発が可能です。モバイルデバイスは多様化・多機能化が進んでおり、デスクトップ環境とともにアプリケーションの幅も広がっています。ユーザーインターフェイスの開発生産性を高めるためにも、開発フレームワークの利用は今後も重要になっていくでしょう。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから