Closed5

Go言語向け TUI フレームワーク Bubble Tea を使ってみる

snakasnaka

Tutorial やっていく

README の Tutorial セクションをやっていく

適当にディレクトリを作る

mkdir bubletea-tutorial
cd bubletea-tutorial

go.mod を用意する

go mod init main

コードを書く ( ファイル名は main.go とする )

(README 参照)

bubletea の import 必要なので以下を実行する

go mod tidy

実行する

go run main.go

以下のようなUIが現れ、キー操作できるようになる

ここまで 30 分程度

snakasnaka

メンタルモデルとしては、デスクトップアプリケーションのそれに近い

  • model は状態管理する構造体
    • Init で model の初期状態をセット
    • Update で操作やイベントに対して model の状態を変更
    • View で model の状態を文字列として描画する
snakasnaka

Go 言語特有なのか、選択状態をトグルさせるのに利用する値が struct{}{} という空(?)の struct といのが不思議に感じた

    _, ok := m.selected[m.cursor]
    if ok {
        delete(m.selected, m.cursor)
    } else {
        m.selected[m.cursor] = struct{}{}
    }
このスクラップは2024/12/08にクローズされました