【1日目】Flet入門 ~Pythonでクロスプラットフォームアプリを手軽に作る~

1. Fletとは何か?

概要

Fletは、Flutterのレンダリングエンジンの力を利用しながら、Pythonだけでインタラクティブマルチプラットフォームアプリケーションを開発できるフレームワークです。デスクトップ、Web、モバイルなど、さまざまな環境で同一のコードベースからアプリを展開可能です。

Fletの強み

  • シンプルなAPIPythonのみで宣言的なUI記述が可能
  • リアルタイム更新:WebSocketを利用して即時にUI更新が実現
  • 高い生産性:公式コマンドでのプロジェクト初期化により、開発のスタートが非常に速い

2. Fletの設計思想と特徴

  • Flutter技術の活用
  • Fletは、Flutterの高性能なレンダリングエンジンを内包し、美しいUIを実現します。ただし、直接Flutterを操作する必要はなく、Pythonのコードだけで全ての操作が完結します。

Pythonユーザー向けの抽象化

  • Flutterの複雑な部分は隠蔽され、シンプルで直感的なAPIにより、Pythonに慣れた開発者がすぐに使いこなせるようになっています。

3. 環境構築とプロジェクト初期化

前提条件

  • Python 3.7以上がインストールされていること
  • pipでパッケージ管理が可能であること
  • Fletのインストール
pip install flet

※仮想環境で行いましょう。

kunio-ud-zatta.hatenablog.com

上記のコマンドでFletのライブラリをインストールします。

プロジェクト作成:flet create の利用 Fletでは、プロジェクトの初期化を簡単に行えるように、専用のコマンド flet create を提供しています。このコマンドを使うことで、必要なディレクトリ構造やサンプルコードが自動的に生成され、すぐに開発を始めることができますね。

例えば、以下のように実行します:

flet create 

これにより、プロジェクトのひな形が整います。 生成されたファイルを確認し、コードの構成を理解することで、より効率的なカスタマイズが可能となるかな。

4. 基本的なアプリの構造

エントリーポイントの定義 Fletアプリは、ft.app(target=main) といった形式でエントリーポイントを定義します。main 関数内でUIコンポーネントの配置やイベント処理を設定し、アプリの動作を制御のようです。

サンプルコードの例

import flet as ft

def main(page: ft.Page):
    page.title = "Hello, Flet!"

    greeting = ft.Text("Fletで作る初めてのアプリ", size=20, color="blue")
    page.add(greeting)

    def on_click(event):
        greeting.value = "ボタンがクリックされました!"
        page.update()

    btn = ft.ElevatedButton("クリックしてね", on_click=on_click)
    page.add(btn)

ft.app(target=main)

このコードは、基本的なUIコンポーネントの追加と、イベントハンドラを利用した例です。 page.update() を呼び出すことで、UI上の変更がリアルタイムに反映されます。

実行

flet runで実行です

クリック後

5. 今後の記事への展望とまとめ

次回予告

  • 次回は、Fletを使って「ソリティア」サンプルアプリの実装に挑戦かな。UIの動的更新やイベント処理を通して、より実践的な開発テクニックを学ぼうと思います。
  • Fletは、Pythonだけでクロスプラットフォームなアプリケーションを手軽に開発できる強力なツールな感じがします。