ソフトウェア開発者のための OSS、まとめてみました!

ソフトウェア開発を行なっている自分が、個人的に面白いと思ったプログラムの最新技術や、オープンソースソフトウェア(OSS)をまとめています!

MENU

Python 用の TUI(Text User Interface)フレームワークを探しているなら!「Textual」

概要

みなさまは TUI(Text User Interface:テキストユーザーインターフェース)という言葉を聞いたことはありますでしょうか?

TUI とは GUI(Graphical User Interfaceグラフィカルユーザーインターフェース)が考案された後に名付けられた言葉であり、テキストベースのユーザーインターフェースを区別して呼ぶための呼称であります。

TUI は CUI(Character User Interface:キャラクターユーザーインターフェース)とは異なり、また GUI のように画面全体を使いながら出力も一行ずつとは限らず、そして GUI とも異なり一般的なテキスト端末である記号や文字だけで画面を構成されています。

参考:テキストユーザインタフェース - Wikipedia

前置きが長くなりましたが、そんな TUI フレームワークを探している方にとっては今回ご紹介する OSS がとても参考になると思います。

今回ご紹介する OSS は、最新の Web 開発に触発された Python 用の TUI フレームワークTextual」になります。

Textual」はターミナルで実行することができるインタラクティブなアプリを作成するための Python フレームワークになります。

それでは早速詳細についてみていきましょう。

目次

特徴

Textual」は以下の特徴があります。

  • ほとんどの端末にインストールされているターミナルで起動可能
  • マウスサポート操作をサポート
  • なめらかなアニメーションと 1670 万色の綺麗なグラフィックを表現
  • 強力なレイアウトエンジンと再利用可能なコンポーネントによるアプリ開発を実現

など、まだまだたくさんあります。

詳細についてはドキュメントが用意されていますので、さらに特徴を把握されたい場合は、こちらをご覧ください。

textual.textualize.io

利用手順

互換性

Textual」はLinuxmacOSWindows で実行可能です。

ただし、Python 3.7 以降が必要です。

インストール

pip 経由で 「Textual」 をインストールします。

pip install textual

もし「Textual」を開発者としてソースを触りたい場合は、以下の開発版アプリをインストールしてください。

pip install "textual[dev]"

使用感

早速私もこちらの「Textual」をパソコンにインストールして触ってみました。

今回はアプリとしての「Textual」を pip install textual 経由でインストールしました。

起動は以下のコマンドから行います。

python -m textual

起動直後は以下のような画面が表示されます。

起動後はターミナルをマウス操作することもできますし、ターミナル画面でまるで GUI アプリで操作しているような感じになります。

そのほかにも、JSON ファイルを操作することができたり、綺麗なグラフィックの画面が表示・操作することができます!

そのほかにも、Python コードを TUI 上で管理したり操作することもできます。

また、「Textual」ではサンプルもたくさんありますので、リポジトリをクローンしてみてサンプルを触ってみてみると面白いかと思います。

git clone https://github.com/Textualize/textual.git
  • 電卓

  • ストップウォッチ

そのほかにもありますので、ぜひサンプルを見てみるとよいでしょう。

まとめ

今回は、最新の Web 開発に触発された Python 用の TUI フレームワークTextual」をご紹介しました。

ターミナル画面なのにマウス操作を受け付けることができたり、GUI アプリのように操作性がユーザー優先だったりして、とても面白い技術が使用されているなと思いました。

Python 用の開発フレームワークとしてはとても使用してみる価値はあると思いますので、ぜひ今までのソースコード開発アプリに飽きてしまったり新しいフレームワークを探している方などは、ぜひ一度こちらの「Textual」という TUI を利用されてみてはいかがでしょうか?

ライセンス

MIT License

リンク

textual.textualize.io

github.com