Slide 1

Slide 1 text

Suzuki Shuto / Twitter @s2terminal_tech NiceGUI is Nice 1 1

Slide 2

Slide 2 text

Suzuki Shuto / Twitter @s2terminal_tech NiceGUI を知っていますか? Do you know NiceGUI? 2 2

Slide 3

Slide 3 text

Suzuki Shuto / Twitter @s2terminal_tech NiceGUIとは ● https://github.com/zauberzeug/nicegui/ ● PythonだけでWebアプリをすぐ作れるフレームワーク ● StreamlitやGradioに似ている ● Streamlitの特徴を述べたあと、NiceGUIとの違いを説明します ○ Gradioについては触れないが、下記が詳しい ■ 【Streamlitよりいいかも?】機械学習系のデモアプリ作成に最適!Gradio解説 - 学習する天然ニューラルネット https://aotamasaki.hatenablog.com/entry/gradio-explanation 3 3

Slide 4

Slide 4 text

Suzuki Shuto / Twitter @s2terminal_tech Streamlitの特徴 ● pip installして コードを書いて $ pythonで起動して localhost開けば Webアプリが動く ● 簡単!便利! 4 4

Slide 5

Slide 5 text

Suzuki Shuto / Twitter @s2terminal_tech Streamlit is nice. 5 5

Slide 6

Slide 6 text

Suzuki Shuto / Twitter @s2terminal_tech Streamlitの弱点 ● Streamlitは色々な事を”魔法”のようにやってくれるが 複雑な使い方すると、引っかかる事もある ● たとえば... ○ 初期状態が外部から取得したデータなど常に変化する時 ○ ボタンを押したら入力欄を増やすなど動的に定義したい時 6 6

Slide 7

Slide 7 text

Suzuki Shuto / Twitter @s2terminal_tech NiceGUIの特徴 ● NiceGUIの使い方は Streamlitと似ている ● pip installして コード書いて起動したら Webアプリが動く ● 簡単!便利! 7 7

Slide 8

Slide 8 text

Suzuki Shuto / Twitter @s2terminal_tech 8 画像はGitHub Star Historyより https://star-history.com/#zauberzeug/nicegui&streamlit/streamlit&gradio-app/gradio&Date

Slide 9

Slide 9 text

Suzuki Shuto / Twitter @s2terminal_tech NiceGUIとStreamlitの違い ● NiceGUIは、より”素直に”動く ○ 処理が意図せず実行されるような事が少ない ○ フォームを動的に増減させる等が簡単にできる ○ Vue(Quasar)やTailwind CSSの機能が露出しており Web開発の抽象度が比較的低くなっている 9 9

Slide 10

Slide 10 text

Suzuki Shuto / Twitter @s2terminal_tech NiceGUIとStreamlitの違い ● 意図通り動かないStreamlitのコード 10 10 コードはNiceGUIのGitHub Issuesより引用 https://github.com/zauberzeug/nicegui/issues/1#issuecomment-847413651

Slide 11

Slide 11 text

Suzuki Shuto / Twitter @s2terminal_tech NiceGUIとStreamlitの違い ● NiceGUIとStreamlitの使い方は似ている ○ NiceGUIの公式サイトにも「We like Streamlit」とある ● NiceGUIには、入力のリアルタイム反映などのような Streamlitが持つ"魔法"のような機能は少なくなっている ● NiceGUIはデータサイエンスや機械学習よりも より一般的なアプリケーション開発に向く 11 11

Slide 12

Slide 12 text

Suzuki Shuto / Twitter @s2terminal_tech まとめ Streamlit 入力をもとに自動で処理を実行し反映する →データアプリケーションが得意 Gradio (ここでは触れてない) APIの発行やJupyter(Colab)上での実行ができる →機械学習アプリケーションが得意 NiceGUI 動的なUIフォームの定義が可能 →柔軟なアプリケーション構築が得意 12 12 ● 適切に使い分けることで、より便利に!

Slide 13

Slide 13 text

Suzuki Shuto / Twitter @s2terminal_tech References ● Streamlit ○ https://github.com/streamlit/streamlit ● Gradio ○ https://github.com/gradio-app/gradio ● NiceGUI ○ https://github.com/zauberzeug/nicegui/ 13