UbuntuがFlutterの積極的なサポートへ
「Ubuntu(Canonical)」が「Flutter」の積極的なサポートを表明しました。Flutter
「Flutter」は「Google」よって開発されたUIツールキットです。言い換えればGUIアプリを開発するためのフレームワーク(SDK)です。
現在は「Google」及びコミュニティーによって開発されています。
「Ubuntu」で著名なUIツールキットと言えば「GTK」や「Qt」ですね。
GUIアプリの開発者から見れば、これらのUIツールキットが競合するUIツールキットになるでしょう。
クロスプラットフォーム
「Flutter」はクロスプラットフォームに対応したフレームワークであり、単一のコードベースから様々なプラットフォーム上で動作するアプリを開発できます。Webアプリケーションやモバイル向けOS(Android/iOS)だけでなく、デスクトップ向けOS(Linux/macOS/Windows)上で動作するGUIアプリも開発できます。
CanonicalとFlutterの連携
「Google」が「Flutter」でデスクトップアプリのサポートをアナウンスした際、「Canonical」はLinuxデスクトップアプリをサポートし、アプリの開発者が「Flutter」上で動作するアプリを開発できるよう「Google」と連携して取り組んできました。この結果アプリの開発者は「Flutter」を利用してアプリを開発し、「Snap Store」を通じてSnapアプリを配布できるようになりました。
アプリの開発者に新たな選択肢を
GUIアプリの開発者は「GTK」や「Qt」など著名なUIツールキットを選択する機会が多いかと思います。そこに新たに「Flutter」が選択肢として追加されました。
Canonicalが継続的にサポートしていく
新しい仕組みや十分に普及していない仕組みは、持続可能性や将来性含め選択する側からはリスクを感じるかとおもいます。しかし今後も「Canonical」は継続的に「Google」と連携し、Linuxデスクトップアプリの開発に不足している機能や機能の改善など、「Flutter」のサポートを改善する取り組みを行っていきます。
UIツールキットが異なるとアプリが動作する環境と統一感のないUIが表示されるケースがありますが、この取り組みには「Ubuntu」のデフォルトのアイコンテーマである「Yaru」のサポートなど、アプリが動作する環境と適合するUXを提供するための取り組みも含まれています。
アプリ開発の第一候補に
「Canonical」が開発するモバイル及びデスクトップ向けアプリでは、「Flutter」が第一候補になります。実際現在開発中の新しいUbuntu Desktopインストーラーでは、「Flutter」が採用されています。
Flutterで作られたアプリ
すでにLinux上で動作する「Flutter」で作られたアプリが紹介されています。Flokk Contacts
「Flokk Contacts」は「Google Contacts」と連携して連絡先を管理するクライアントアプリです。実際に「Flokk Contacts」が「Ubuntu」上で動作する様子は、以下の動画を参照してください。
Photo Search app
「Photo Search app」はオンラインで写真を検索するシンプルなアプリです。以下でソースコードを参照できます。
Flutter Gallery
「Flutter Gallery」は「Flutter」で作られたアプリの振る舞いやウィジェットのデザインを紹介するデモンストレーションアプリです。batufo
「batufo」は2Dのスペースバトルゲームです。Flutterを利用してアプリを開発するには
「Flutter」を利用してGUIアプリを開発し「Snap Store」で配布する方法は、以下のリンク先を参照してください。Easy install of Flutter on Linux
この項目では「Flutter SDK」とIDEの「Visual Studio Code」をインストール方法が紹介されています。snap install --classic flutter
snap install --classic code
code --install-extension dart-code.flutter
snap install --classic code
code --install-extension dart-code.flutter
いわゆる事前準備ですね。
Flutter for Linux desktop
この項目では「Flutter」でLinuxデスクトップのサポートを有効にする方法が紹介されています。flutter channel dev
flutter upgrade
flutter config --enable-linux-desktop
flutter upgrade
flutter config --enable-linux-desktop
また「Flutter」で新規にプロジェクトを作成し、実行する方法が紹介されています。
flutter create counter
cd counter
flutter run -d linux
cd counter
flutter run -d linux
Accessing native code in Linux from Flutter
この項目では「Flutter(Dart)」からLinuxのネイティブコードにアクセスする方法が紹介されています。また「Dart」及び「Flutter」のパッケージ管理サイトから、再利用可能なコードを探し出すことも可能です。
「pub.dev」に登録されているパッケージのほとんどは「Dart」のみで実装されており、その多くはそのままLinuxアプリから利用できます。
プラグインと呼ばれる一部のパッケージは特定のプラットフォーム固有のネイティブコードを含んでいます。
「Canonical」はLinuxネイティブの機能を提供する以下の3種類のプラグインを公開しています。
- url_launcher(指定されたURLをデフォルトのブラウザーで開く)
- shared_preferences(アプリセッション間でユーザー設定を共有する)
- path_provider(ダウンロードやピクチャなど特別なフォルダーのパス情報)
Deploying to the Snap Store
この項目では「Snap Store」にアプリを登録・公開する方法が紹介されています。アプリはSnapパッケージで登録します。