flutter desktop macos: システムトレイ?画面上部にアイコン出る系アプリの雛形を作る
概要
docker desktopみたいな取り扱いのアプリをflutterで実装する際にやったことのメモ
- alt + tabの一覧に出さない
- flutterはデフォでウィンドウ閉じるとプロセス閉じるのでそのあたりの変更
- ウィンドウを出したり隠したり
- 画面上部のバーにアプリアイコンを出してウィンドウを出したり隠したり
例によってmacosの対応しかしてない
ソースはこちら
alt + tabの一覧に出さない
これはプラットフォーム側での対応が必要
macosの場合は info.plist
に Application is agent (UIElement) = true
にすればおけ
該当コミット github.com
flutterはデフォでウィンドウ閉じるとプロセス閉じるのでそのあたりの変更
これもプラットフォーム側で対応
macosの場合は AppDelegate.swift
の applicationShouldTerminateAfterLastWindowClosed
の返り値をfalseにすればおけ
このままだとウィンドウ閉じたあとに表示する術がないのでウィンドウの表示/非表示を次に対応
該当コミット github.com
ウィンドウを出したり隠したり
window_managerパッケージを使う。 github.com
このパッケージを使ってウィンドウを隠したり表示したりする。他にもサイズ変更だったり最大化の許可/不許可とか色々設定できる。使い方は↑のexample見ればわかると思う。
該当コミット github.com
画面上部のバーにアプリアイコンを出してウィンドウを出したり隠したり
system_trayパッケージを使う。 pub.dev 使い方は↑のexample見ればわかると思う。
該当コミット github.com