kumamotone’s blog

iOS/Android アプリエンジニアです https://twitter.com/kumamo_tone

(翻訳) Announcing Flutter 2.8

medium.com

by Tim Sneath 12月9日 読むのに7分

このアップデートは、モバイルやウェブの開発者の皆様の使い勝手を向上させ、デスクトップの安定したサポートに近づけるための新機能や改善点を多数含んでいます。

Flutterは、アプリケーションの作り方を変えることを目的としています。Flutterは、モバイル、ウェブ、デスクトップ、組み込み機器の開発を単一のツールキットに統合します。開発者は、どのプラットフォームをターゲットにするかではなく、まず何を作りたいかに集中し、高性能で生産性の高いフレームワークを提供することで、開発者のインナーループを短縮し、1つのコードベースで複数のプラットフォームやフォームファクタをターゲットにすることができます。

新機能と改良:より速く、より生産的に

今回のリリースでは、モバイルパフォーマンスに重点を置いています。優れたパフォーマンスは無償で提供されるのが理想ですが、実際には、複雑なアプリケーションであっても、基盤となるハードウェアやライブラリをうまく利用するための最適化が必要です。これには、ネットワークの帯域幅やその他の初期化コストによって制約を受ける起動時のパフォーマンス、特にメモリに制約のあるデバイスでのメモリ使用量、グラフィックスレンダリングなどが含まれます。私たちは、Google Payなどの大規模なGoogleアプリでの経験を活かして、Flutter自体のパフォーマンスを向上させるとともに、お客様のアプリのプロファイリングや最適化を支援するツールを充実させています。Flutter 2.8にアップグレードするだけで、アプリの起動が速くなり、メモリ使用量も少なくなります。

最新のアップデートでは、FirebaseやGoogle Cloudなどのバックエンドサービスにアプリを接続することがこれまで以上に容易になりました。また、Google Adsの本番環境への対応や、カメラおよび埋め込みWebプラグインの大幅なアップグレードも行われています。また、Dart 2.15も含まれており、並行処理の大幅な改善、コンストラクタのティアオフや列挙の強化などの言語機能の追加、メモリ使用量を10%削減する最適化などが行われています。

今回のリリースのもう一つの大きなテーマは、開発者の生産性をさらに向上させることです。ステートフルホットリロードなどの機能により、私たちは常に開発者のためにタイトなインナーループを作ることに注力してきました。今回のリリースでは、開発者がより迅速に作業を進めることができるよう、より高度な抽象化を目指しています。例えば、今回のリリースでは、Firebaseを使って認証を処理するサインイン・ウィジェットを追加しています。このウィジェットがあれば、二要素認証やパスワードリセットなどのサインインのエッジケースや、認証プロバイダとしてのGoogleAppleTwitterFacebookのサポートの複雑さを気にする必要はありません。このような機能は、Flutterの中核的な基盤の上に構築されており、ローコードソリューションの開発スピードと完全なUIフレームワークの柔軟性とパワーを組み合わせることで、開発者のアプリケーション構築方法を変える可能性を秘めています。

Dart 2.15は現在公開されており、新しい機能強化についての詳細を記したテクニカル・ブログ・ポストを用意しておりますので、ぜひご覧ください。Flutter 2.8の公開プロセスを開始したところですが、2時間以内には公開され、詳細なブログ記事が掲載される予定です。公開され次第、ここにあるリンクを更新します。

Flameによるカジュアルゲーム開発

ほとんどの開発者にとって、Flutterはアプリのフレームワークです。しかし、Flutterが提供するハードウェアアクセラレーションによるグラフィックスサポートを利用した、カジュアルゲーム開発のエコシステムも成長しています。

本日、Flutterの上に構築されたモジュール式の2DゲームエンジンであるFlameの1.0リリースを記念して、私たちは興奮しています。Flameは、ゲームループだけでなく、コンポーネントシステム、アニメーション化されたスプライトやイメージ、衝突検知、ワールドカメラ、エフェクトシステム、ジェスチャーや入力のサポートなど、ゲームを素早く構築するために必要なものを備えています。

例えば、Rive(アニメーション)、audioplayers(音楽とサウンドエフェクト)、Forge2D(Box2Dスタイルの物理エンジン)、Tiled(タイルマップエディタ)、Fire Atlas(スプライトシートとアニメーションエディタ)などがあり、Flameはモジュール式で、他のライブラリとの統合を提供するパッケージで拡張できます。Flameと幅広いエコシステムは、カジュアルゲームや2Dゲームの開発者に強力なサービスを提供しています。

Flameは、FlutterやDartオープンソースパッケージやプラグインの作成に注力しているコントリビューターのグループ、Blue Fireによって作成されています。ゲーム開発に興味のある方は、ぜひFlameをチェックしてみてください。

勢いのあるFlutter

Flutterは、コアフレームワークの上に構築されたアプリケーションやツールのエコシステムを繁栄させながら、急速に成長し続けていることに驚かされています。今年のGoogle I/Oイベントでは、Flutterで構築されたアプリがPlay Storeですでに20万本以上提供されていることを紹介しました。そのイベントからわずか半年余りで、Flutterアプリの数はほぼ倍増し、現在Playストアには375,000本以上のFlutterアプリが登録されています。

(Flutterは、AndroidiOS、iPadOS、Web、WindowsmacOSLinuxをサポートしているので、異なるデバイスフォームファクタをターゲットにするためにアプリを書き直す必要はありません。)

もちろん、Flutterが使われているのはAndroidだけではありません。独立系モバイルアナリスト企業のAppAnnieによると、iOSでFlutterを使用しているアプリには、BMW、eBay、WeChat、SHEIN、Philips Hue、Norton、trip.com、Greggsなどのトップブランドやアプリが含まれています。ウェブ上では、Flutterはアプリのエクスペリエンスに適しており、FlutterFlowやRiveなどのデザインツールの恩恵を受けています。デスクトップでは、Ubuntuのエンジニアリングチームが、新しいインストーラーやファームウェアアップデータなど、Flutterを使ったさまざまな新しい体験を構築し続けています。PUBGのようなゲームでも、FlutterがUI画面に最適であることがわかってきました。

エコシステムの構築には長い時間がかかりますが、Statista、JetBrains、SlashData、Stack Overflowが独自に測定した結果、Flutterは今や最も人気のあるマルチプラットフォームのツールキットとなっています。私たちはそれを当然のことだとは思っていませんが、Flutterの人気の高まりは、それをサポートするパッケージやツールのエコシステムがますます広がっていくことにつながります。

2021年を振り返って、2022年に向けて

この困難な昨年の間に、私たちのエンジニアリングチームは多忙を極めました。Flutter 2.8の機能だけでなく、開発者向けツールの書き換え、null safetyとWebサポートのリリース、ネイティブコード統合のためのFFIの完成、Material Youの初期サポートの追加、そしてパフォーマンスと品質の向上のために懸命に取り組んできました。合計で約2万件の問題を解決しました。Flutterをよりよく紹介するために、スマートな新しいウェブサイトを作成しました。また、エンジニアの生産性を向上させ、テストを拡大するために、この数ヶ月間、エンジニアリングインフラの見直しにかなりの労力を費やしてきました。

2022年に向けて、私たちは何人かの方と直接お会いできることを願っています。私たちは、言語の強化、ドキュメントの更新、Flutterで洗練されたアプリケーションを簡単に構築するための高レベルの抽象化など、開発者の体験の中核となる部分にさらなる投資を行う予定です。安定したデスクトップのサポートを完成させ、ウェブでの作業をさらに拡大する予定です。また、他のプラットフォームとの相互運用性や、新しいターゲットへの移植性を高めることも計画しています。私たちはまだ始まったばかりなのです!

このFlutter 2.8のリリースを、ちょうど一週間前に亡くなったVery Good Venturesの開発者、Kevin Grayに捧げたいと思います。Kevinは初期の頃からFlutterの成功に重要な貢献をしてきました。彼は初期のFlutterのデモの多くの開発者であり、その中には注目を集めた最初のお客様の獲得、デスクトップでの初めてのFlutterのデモ、そしてGoogle I/Oの基調講演で取り上げられた最初のFlutterのデモなどが含まれます。彼は、才能があり、思いやりがあり、面白くて、親切な人でした。彼を知る人は、彼がぽっかりと穴を開けてしまったことにすぐに同意するでしょう。悲しみに暮れながらも、彼の人生を祝福し、彼の影響力をすべての人に知ってもらうために、公に彼を偲びます。彼がいなければ、今のFlutterはありません。

ケビン、あなたがいなくて寂しいです。Flutterのためにしてくれたこと、そして友情に感謝します。ケビンの家族と友人には、私たちの愛を送ります。

また、Flutterの開発者と支援者の幅広いコミュニティにも、私たちはあなたに感謝しています。私たちは、Flutter 2.8が皆さんにたくさんの探求心を与えてくれることを願っています。まだFlutterを学んだことがない方は、1月初旬まで誰でも無料で入手できるFlutter Apprenticeの本を読んでいる約4万人の開発者の仲間入りをしてください。皆様が楽しく安全なホリデーシーズンを過ごされることをお祈りいたします。

Michael Thomsen氏に感謝します。

(CC BY 4.0)