コンソールアプリケーションは、キャラクタユーザインタフェース(CUI)または
テキストユーザインタフェース(TUI)とも呼ばれ、テキスト
コンソールを介してのみ入出力を扱う
アプリケーションソフトウェアです。
グラフィカルユーザインタフェース(GUI)を必要としない点が特徴で、「
コンソールアプリ」とも呼ばれます。
概要
GUIアプリケーションがウィンドウシステムなどの環境を必要とするのに対し、
コンソールアプリケーションは
標準ストリームなど、より基本的な環境で動作できます。これにより、異なるプラットフォーム間での移植が容易になり、システムリソースの消費も抑えられます。GUI環境下では、端末エミュレータやWindowsのWin32
コンソール(cmd.exeなど)といったフレームワークを通じて動作させることができます。
コンソールアプリケーションは、通常、コマンドライン引数を受け取り、実行結果として終了コード(終了ステータスコード)を返します。この終了コードを利用して、シェルスクリプトでアプリケーションを連続実行したり、実行結果に基づいて処理を分岐させることが可能です。また、あるアプリケーションの出力を別のアプリケーションの入力として利用することも容易なため、定型処理の自動化、つまり
バッチ処理に適しています。
数値や文字列といった、装飾を必要としない単純なデータを扱う場合、
コンソールアプリケーションの標準出力は処理結果を
コンソール上で即座に確認できるため、非常に便利です。そのため、標準入出力をサポートする汎用
プログラミング言語の基礎学習や、プログラム部品の単体テスト、パフォーマンス(性能)テストなどにも広く利用されています。
プログラミング言語の処理系(
コンパイラやリンカなど)、
バージョン管理システムといった開発ツールは、
バッチ処理を可能にするために、
コンソールアプリケーション(コマンドラインツール)として実装されることが一般的です。ただし、ユーザーがより直感的に操作できるように、GUIフロントエンドでラップされることもあります。
Visual StudioやRAD Studioのような
統合開発環境には、
コンソールアプリケーションを作成するためのプロジェクトテンプレートが用意されています。macOS向けの
統合開発環境であるXcodeでは、「Command Line Tool」という名称のプロジェクトテンプレートが提供されています。
一方で、AndroidやiOSといった、
コンソールがエンドユーザーに開放されていない
モバイルオペレーティングシステムでは、
コンソールアプリケーションを直接利用したり、サードパーティが自由に開発したりすることはできません。このような環境では、
コンソールアプリケーションの代替として、他の形式のアプリケーションやツールが用いられます。
例
ImageMagickのような画像処理ツールは、コマンドラインから操作できる
コンソールアプリケーションの代表例です。これらのツールを使用することで、画像の変換や編集などをスクリプトによって自動化できます。
関連項目
*
バッチ処理