クロスプラットフォームアプリツールキットFlutterのリーダーであるTim Sneathは、Dartをアンビエントコンピューティングの未来に向けようとしている。

Table of Contents

クロスプラットフォームアプリツールキットFlutterのリーダーであるTim Sneathは、Dartをアンビエントコンピューティングの未来に向けようとしている。

インタビュー: Googleのクロスプラットフォームアプリ開発フレームワークFlutterは、木曜日にFlutter 1.22をリリースし、新たな四半期リリースを迎えました。The Registerは、FlutterのプロダクトリードであるTim Sneath氏に、プロジェクトの現状と今後の展望について話を伺いました。

「iOS 14、Android 11、そしてその他もろもろのサポートを含む、かなり規模の大きいリリースです。既存のDart開発者やFlutter開発者の皆様に喜んでいただけると確信しています」とスニース氏は述べた。「私たちにとって、これはFlutter向けのより幅広いテーマセットに向けた継続的な取り組みに過ぎません。Flutterは、開発者が単一のコードベースからiOSとAndroid向けの開発を効率的に行える、高速で美しいアプリフレームワークを提供しています。そして今後は、開発が成熟するにつれて、Web、Windows、macOS、Linux向けの開発も進めていく予定です。」

このアップデートでは、最新のモバイルオペレーティングシステムリリースのサポートに加え、Androidの状態復元機能のプレビュー、新しいマテリアルボタン、ホットリロードに対応した国際化およびローカリゼーションサポート、改訂されたNavigatorクラスなど、様々な改善が行われます。また、FlutterアプリでネイティブAndroidおよびiOS UIコンポーネントをホストするためのPlatform Viewsの安定版リリースも追加されています。

Flutter は 2018 年 12 月に 1.0 のマイルストーンに到達し、Xamarin、React Native、Ionic、Electron などの汎用ツールや、Uber の RIB などの企業固有のフレームワークを含むクロスプラットフォーム フレームワークに対する開発者の懐疑心にもかかわらず、かなりの人気を獲得しました。

10 年前なら、Adobe Flash がこのリストのトップを占めていたでしょう。しかし、それは当時 Apple の CEO であった Steve Jobs が、セキュリティとパフォーマンスの問題、そして iOS プラットフォームの制御を失いたくないという意向から、iOS デバイスから Flash アプリを禁止したときのことでした。

クロスプラットフォーム開発にはトレードオフが伴います。開発者は複数のオペレーティングシステムで単一のコードベースを維持できるため、開発にかかる労力を大幅に削減できます。しかし同時に、結果として得られるアプリは、ネイティブプラットフォームのコードで作成されたアプリに比べて動作が遅く、設計も劣る傾向があります。また、最近リリースされたネイティブプラットフォームAPIにアクセスできない場合もあります。これは、ネイティブAPIを実装する開発者は、ネイティブAPIが公開されるまで開発に着手できないことが多いためです。

Flutterの場合、この遅延は比較的小さいものでした。Appleは2週間前にiOS 14をリリースし、Googleは3週間前にAndroid 11をリリースしました。しかし、クロスプラットフォームキットをネイティブAPIと同等のものにするためのプロセスは、必ずしも迅速ではありません。

「クロスプラットフォームと言うと、一般的に多くの妥協が必要になります」とスニースは語った。「それは、ご存知の通り、最低限の共通項となるような課題と結びついています。私たちは、あらゆる環境でソースコードを共有しながらも、開発者やデザイナーが求めるあらゆるプラットフォームのニーズに合わせてカスタマイズできるものを作ることを意図的に試みてきました。」

蝶を持つ子供(Shutterstockより)

MicrosoftのOSがmacOSとLinuxに加わりFlutterパーティーに参加。どれが一番パフォーマンスが良いでしょうか?ヒント:Windowsではありません

続きを読む

Flutterには支持者もいれば批判者もいる ― 開発者は意見がはっきりしている ― しかし、おそらくその数字の方がより物語っている。Googleによると、Google Playには10万個のFlutterアプリがあり、毎月1万個ずつ増えている。

このアイデアに完全に賛同していない人々が最も懸念していることの一つは、Googleが自社の製品やサービスへの関心を失い、あっさりと廃止してしまうという評判だ。この点について尋ねられたスニース氏は、それが問題だと認めつつも、Googleが連続プロダクトキラーだと決めつけるのは必ずしも公平ではないと示唆した。

「もしそれが正当な評判だとすれば、悪い評判です」と彼は言った。「しかし、Googleは成功に賭けていると思います。顧客に価値を提供するプロジェクト、成長しているプロジェクトに賭けています。どの企業でもそうですが、取り組んでいるプロジェクトを注意深く観察し、市場の方向性を見極め、顧客のニーズに応える必要があります。そして、その基盤の上に、FlutterとDartは今後何年も存在し続けるでしょう。」

スニース氏によると、Flutterで構築されたアプリの数は過去1年間で4倍から5倍に増加したという。また、同社が開発者にFlutterの使用経験について尋ねたところ、94%が満足していると回答したという。これは、顧客がFlutterから必要な機能を得ていることを示している、と彼は述べた。

Flutter は Dart プログラミング言語に依存しており、共同開発者の Lars Bak はこれを「Web アプリケーションを構築するための、クラスベースのオプション型指定プログラミング言語」と説明しています。

2011年に導入されたDartは、GoogleのGoプログラミング言語ほどの人気を享受していません。少なくとも、20もの異なるチームがDartを使用しているGoogle以外ではなおさらです。しかし、最近では、Dartなどの言語を追跡する様々な指標の中で、Dartのランキングは上昇しています。スニース氏は、GitHubの最近の調査で、Dartの利用率が532%増加しており、これは他のどのプログラミング言語よりも高い伸び率であると報告されていることを指摘しました。

Android がつい最近 Kotlin をサポートしたように、Flutter チームも他のプログラミング言語を第一級言語としてサポートすることを検討しているかどうか尋ねてみたが、Sneath 氏は Dart にかなり夢中になっているようだ。

「実はDartこそが私たちの秘訣なんです」と彼は言った。「Flutterの成功の秘訣は、おそらくDartにあると思います。それは、Dartが他に類を見ない技術力を持っているからです。これほどの性能を提供できる言語は他にないと思います。」

Sneath 氏は、Dart はネイティブと JavaScript、または Web プログラミング ターゲットの両方に対して開発モードとプロダクション モードの両方のコンパイルをサポートできるという点でユニークだと述べました。

Dartは実は私たちの秘密兵器です。Flutterの成功の秘訣は、おそらくDartにあると思います。

「開発時には、ステートフル ホット リロードなどのメリットがあります。つまり、コードを変更して F5 キーを押すと、従来の編集、コンパイル、展開のサイクルを経ることなく、リセットすることなく実行中のアプリでその結果をすぐに確認できます」と氏は説明した。

Flutter がゲーム開発を支援する特定のテクノロジーを支持するかどうかについて尋ねられたが (現時点では Flame などのいくつかの独立したプロジェクトを除いてほとんど存在しない)、Sneath 氏は、それが関心のある分野であることは認めたものの、詳細を明らかにすることは拒否した。

「素晴らしい質問ですね」と彼は言った。「今のところ発表できることはありません。しかし、Flutterはアプリにゲームのようなパフォーマンスをもたらすので、その境界線が少し曖昧になることを期待しています。多くのカジュアルゲームがFlutterで開発されているのを見てきました。そしてもちろん、素晴らしいゲームを作るには、それをサポートするツールやその他のツールのエコシステム全体が必要です。ですから、ゲームそのものへのサポートを宣言するだけでは不十分です。しかし、私たちは他の開発者が行っている実験にも興味を持っています。」

スニース氏はRiveというデザインツールを例に挙げ、Flutterは優れたゲームをサポートできるアーキテクチャを備えているものの、現時点ではFlutterチームの主要な注力分野ではないと述べました。

企業向けアプリショップはクロスプラットフォームソリューションを求めることが多いことから、企業が Flutter をどう受け止めているかと尋ねられた Sneath 氏は、Flutter は特に企業顧客に焦点を当てているわけではないが、企業の間では明らかに魅力的であると述べた。

GoogleのFuchsia OSが姿を現す: 幹部は「新しいコンセプトを試しているだけだ」と主張

続きを読む

「プラットフォーム間で一貫性を保ちたいと考えている企業が増えています」と彼は述べた。「両プラットフォームで自社ブランドを展開したいと考えているのです。プラットフォーム間で同時にリリースしたいと考えているのです。ある(ネイティブプラットフォーム)チームが別の(異なるプラットフォームで作業する)チームとの連携に苦労するリスクを避けたいのです。そのため、多くの企業がFlutterを採用し、魅力的な取り組みを行っているのです。」

Google が現在進めているオペレーティング システムの調査である Fuchsia と Flutter の関係について、さらに言うべきことがあるかどうか尋ねてみたが、Sneath 氏は、Fuchsia デバイスがリリースされれば、Flutter アプリは Fuchsia デバイスでも実行できるはずだということ以外、何も付け加えることはなかった。

しかし、スニース氏は、Flutterをモバイルアプリ開発フレームワークとして捉えるべきではないことを強調した。Flutterは、様々なハードウェア向けのアプリを開発するためのツールとして設計されている。

「Flutter は、個々のデバイスを超えて、Google のアンビエント コンピューティングの将来全体をカバーする非常に普及したプラットフォームになると考えています」と同氏は述べ、スマート ディスプレイ、テレビ、Chromebook などを例に挙げた。®

Discover More