私はスーパー・エンジニアに憧れる非エンジニア。
エンジニアで無いため、プログラミング言語の習得に時間が余り割けない。
そんな中fletなるGUIフレームワークを見つけた。
fletはflutterのGUIフレームワークのPython wrapper、応用用途が幅広い。
| Android | ios | linux | macos | windows | web(server side) | web(client side) | MEMO | |
|---|---|---|---|---|---|---|---|---|
| flet | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | ◯ | - |
| kivy | ◯ | ◯ | ◯ | ◯ | ◯ | × | × | |
| pygame | △ | △ | ◯ | ◯ | ◯ | ◯? | ◯ | ゲーム用なので非ゲーム用途に向いてない |
応用用途は上記の通り。Webclientも開発できるのが面白い。まだ、pyodideなどと共闘できてないが、期待は大きい。
(pyscript, Brythonなどweb frontend開発できるライブラリが現れ、frontendとbackgroundを1ソース・ファイルで開発できるstreamlit, fluxx, reflexなどライブラリが現れ、そこにfletが新たに追加されたイメージ)
※ Client SideはPyodideを使用するため、当然、pyodideの非対応機能を利用する事はできないようです。ただ、fletギャラリーを見ると簡単なGUIアプリは実現できている様子。
fletとその他GUIの比較
| kv lang | home widget開発 | Native Code化(コード読まれにくい) | |
|---|---|---|---|
| flet | × | △(https://pub.dev/packages/home_widget/example) | ? |
| kivy | ◯ | ×? | iosを除いてcythonでNativeCode化されていると思う |
fletの問題
fletは、関数ベースでGUI部作らないといけず、クラスのトリックを使えないのを効率?が悪く感じる。
また、C#らに比べ、native buildにandroid studioのインストールが必要など、不便もあります。
kivyとの比較
kivyもとても良いGUIフレームワークと思ってます。Designerがあったり、GUIレイアウトを構築できるkivy launguageはとてもよい。 だが、web開発に対応してないのがとても残念です。