Windowsアプリ風UIが簡単に作れるFlutterのパッケージ「fluent_ui」

Flutterはクロスプラットフォームに対応したフレームワークですが、WindowsらしいUIを作るのは意外と大変です。
そんなときに役立つのが fluent_ui パッケージです。
Windowsの「Fluent Design System」に準拠したUIを構築できます。


1. fluent_uiとは?

fluent_ui は、MicrosoftのFluent Design SystemをFlutterで再現するためのUIパッケージです。
Windowsアプリに近い見た目・操作感をFlutterで実現できます。


2. インストール方法

pubspec.yaml に以下を追加します。

dependencies:
  fluent_ui: ^4.8.7

インストール後に以下を実行:

flutter pub get

3. 基本的な使い方

import 'package:fluent_ui/fluent_ui.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return FluentApp(
      title: 'Fluent UI App',
      theme: FluentThemeData(
        brightness: Brightness.light,
        accentColor: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return NavigationView(
      content: ScaffoldPage(
        header: PageHeader(title: Text('ホーム')),
        content: Center(
          child: Button(
            child: Text('クリック'),
            onPressed: () {
              showDialog(
                context: context,
                builder: (_) => ContentDialog(
                  title: Text('通知'),
                  content: Text('ボタンが押されました'),
                  actions: [
                    Button(child: Text('OK'), onPressed: () => Navigator.pop(context)),
                  ],
                ),
              );
            },
          ),
        ),
      ),
    );
  }
}

4. 主なウィジェット一覧

ウィジェット名説明
FluentAppMaterialAppの代わりに使用
NavigationViewWindowsアプリ風のサイドナビを表示
Buttonシンプルなボタンウィジェット
ContentDialogダイアログ表示用
TextBox入力欄(TextFieldに相当)
ToggleSwitchトグル式のON/OFFスイッチ

5. サイドバー付きアプリの例

NavigationView(
  pane: NavigationPane(
    selected: 0,
    onChanged: (index) {},
    items: [
      PaneItem(icon: Icon(FluentIcons.home), title: Text('ホーム')),
      PaneItem(icon: Icon(FluentIcons.settings), title: Text('設定')),
    ],
  ),
  content: ScaffoldPage(
    content: Center(child: Text('コンテンツ表示')),
  ),
);

6. 注意点

  • 主に Windows向けデザイン に最適化されています(macOSやモバイルではやや不自然)
  • Webでは一部ウィジェットが完全に対応していない場合があります
  • MaterialCupertino と併用は非推奨です(UIスタイルが混ざる)

まとめ

特徴内容
Windows風のUIを簡単に実装Fluent Design Systemに準拠したUIコンポーネント
豊富な標準ウィジェットナビゲーション、ボタン、ダイアログなど対応済
クロスプラットフォームただし、Windows以外では見た目に差が出る可能性

おわりに

FlutterでWindowsネイティブに近いUIを実現したい場合は、fluent_ui が最適です。
特にWindowsデスクトップ向けのアプリを開発している方には強くおすすめできるパッケージです。


参考リンク

タイトルとURLをコピーしました