気の利いたソフトにしよう




[トップページ] / [ソフトウェア工房]


【はじめに】

私はフリーソフトを使用する機会が多いのですが、細かい点で気になることがよくあります。ちょっとした配慮が足りないと思うのです。しかしそれは私の主観かもしれませんし、フリーソフトに文句を言うつもりもありません。意見を求めている作者もたくさんいますが、私が試用するソフトの数が半端ではないので、とてもすべての作者のかたに意見を言う余裕はありません。ですので、今までに感じたことをここで述べることにしました。また、そういった不満に思ったことは、自分がソフトを作るときの参考にもしています。

何も特別なことを要求しているのではありません。どれも簡単に実行できるものばかりです。公開すると決めたソフトなら、なるべく多くの人に愛用されるソフトにしたいものです。そんな思いを込めて書きました。このことはフリーソフトだけでなく、オンラインソフト全体や、市販のソフトにも言えます。操作性に気を配ったり、気の利いた動作をしてくれれば、ずいぶん使いやすくなるのに、と思うことはよくあります。

なお、ここに書いたことは、作る側と使う側の両方の立場から、私が感じたことをまとめただけです。ソフトを作る際に、少し気に留めていただく、という程度に考えてください。必ずしも正しいことを言っているとは限りません。


【インストール】

Windows用のオンラインソフトは、大きく分けて以下のようなファイルで配布されています。

(1) LZHやZIPファイル
(2) 実行すると展開先のフォルダを聞いてくるEXEファイル
(3) 実行すると展開先を聞かずにインストールされるEXEファイル
(4) DOSで実行するEXEファイル

標準的なのが、(1)のタイプです。フリーソフトを使いたいならば、アーカイブファイルを取り扱うのは必然であるというのが私の考えなので、私としては、この形態が一番好きです。

初心者には、EXEファイルを実行するだけの(2)や(3)が楽だという考えもあるでしょう。しかし、私にとっては少々不便です。中のドキュメントだけ読みたいときでも、いちいち展開しなければならないからです。LZHファイル、ZIPファイルであれば、それらを扱うツールで、該当するファイルだけ選択して、ちょっと見るということができます。

(3)は、何やらメッセージが出て、OKを押すとインストールされるタイプです。あるいは、メッセージすら出ないこともあります。システムに深く関わっているソフトでは、インストール先が固定なために、展開先を聞いてこないことが多いのです。やむを得ないのかもしれませんが、知らない場所にファイルができるというのは気持ち悪いものです。せめて、どこにどんなファイルが追加されたのかを知らせてほしいものです。

(4)も特殊な事情があってDOSで実行するのだとは思いますが、Windows上で実行すると、PIFファイルができたり、MS-DOSプロンプトが勝手に出たりして迷惑です。説明を書いたテキストファイルを同梱したアーカイブファイルにすべきでしょう。

(2)では、その後にSETUP.EXEを実行して、さらにインストール先のフォルダを指定するというソフトもあります。わりと大規模なソフトで見られます。まぁ、しかたないかなと思いますが、大した規模でないソフトでもこういう形態のものがあり、それはさすがに仰々しい気がします。インストーラをつけるくらいなら、もっとサイズを小さくしてもらったほうが、個人的にはありがたいです。あえて言いますが、本格的なインストーラがついているわりには、内容が伴っていないのではないかと思うソフトもあります。


【ヘルプファイル】

ほとんどのソフトには、ドキュメントとしてテキストファイルかヘルプファイル、あるいはその両方が含まれています。ヘルプファイルがないソフトもありますが、テキストファイルが用意されていれば、私は気にしません。むしろ、ヘルプファイルしかないソフトは、どうかと思います。導入のしかたなどの重要なことは、テキストファイルに書いておくべきでしょう。

テキストファイルが入っているのはよいのですが、マニュアルとして使うようなテキストファイルに、README.TXTというファイル名は好ましくないと思います。そのソフトのファイル名に、拡張子をTXTにしたものがベストでしょう。なぜなら、同じフォルダに複数のソフトを入れた場合、どのソフトのドキュメントもREADME.TXTでは困ってしまうからです。ファイル名を同じにしておけば、標準で名前順に表示するエクスプローラで、うまくまとまって表示されるという利点もあります。

Windowsのソフトにはヘルプをつけろというガイドラインがあるにしても、実際問題、ヘルプファイルがあるかどうかより、知りたいことがすぐにわかるかどうかのほうが重要だと思います。市販のソフトによく見られるのですが、「私はそんな説明が聞きたいのではない」という、役に立たないヘルプファイルが多くて困ります。

そもそも作者側にとって、ヘルプファイルを作るのが大変だという問題があります。そこで、HTMLでヘルプを書くという方法もあります。しかし、読むためにWWWブラウザが必要であったり、その起動時間がうっとうしかったり、ファイル数が多くなるという問題があります。利点は、作りやすいということくらいでしょうか。HTMLファイルがあると、その書き方が、私にはまた気になる要素になるわけですが。

ヘルプファイルの作成に困っていたら、リンクのページで紹介している「HelpDesigner」をおすすめします。私は、このソフトでヘルプを作成しています。


【設定値の保存】

ウィンドウの位置や、各種設定値をどう保存するかは、ソフトによってさまざまです。どうするのが最善であるかは決めかねますが、ソフトを使う上で、非常に気になる点です。特に、レジストリを使用するかどうかは、最大の関心事になります。

・レジストリ
レジストリを使うことに関して反対するつもりはありません。むしろ、推奨されるやり方です。ただ、どの項目を追加するのかを明記していただきたいと思います。そのソフトを使用したことによって、レジストリがどう変化するかが書いてあれば、手作業で削除できるからです。または、ソフト側で完全に削除する機能がついていてほしいものです。

・INIファイル
INIファイルを作成するソフトもあります。しかし、Windowsフォルダに作成するのは、できればやめていただきたいです。ただでさえファイル数の多いフォルダに勝手に書き込まれると、消すときに大変だからです。そのソフトと同じフォルダに作成していただきたいものです。実行されたファイルのパスを利用すれば済むことなので、そのように作成するのは決して難しいことではありません。

INIファイルは、複数ユーザーで使用するときに問題が起こることがあります。INIファイルを作成する場所(あるいはファイル名)がいつも同じでは、ユーザーごとに個別の設定ができなくなります。そういう用途に使われる可能性があるのなら、ユーザー固有のフォルダに保存するか、ユーザー名を含めたファイル名にするか、あるいはレジストリを利用したほうが賢明です。

【バージョンアップ】

市販のソフトに比べて、フリーソフトはバージョンアップの頻度が高いです。ですので、バージョンアップの作業は何度も行うことになります。最も楽なのは、展開先に、今まで入れていたフォルダを指定して上書きするだけのものです。今まで使っていたオプションなどの設定値が、そのまま受け継がれればベストです。

インストール前に、旧バージョンを削除する必要があるソフトもあります。この場合、各種の設定が初期設定値に戻ってしまったり、削除せずに上書きすると、アプリケーションの追加と削除で、同じソフトが2つ表示されて困ることがあります。なので、あまり好きではありません。

中には、かなり頻繁にバージョンアップするソフトもあります。変更したら、すぐに新しいバージョンを公開したい気持ちもわかります。でも、もう少し時間をかけてテストしてみたり、ついでに新しい機能を盛り込んだりして、一段落したら公開するというほうが、よい結果になることが多いです。重大なバグがあって、すぐに修正版を出さなければならない場合は別ですが、通常はそんなにあせる必要はありません。あまりにバージョンアップの間隔が短いと、利用者が何度もインストール作業をしなければならないので、面倒になって見送るということもあり得ます。

ただ、作者側にもいろいろ事情があり、一刻も早く新しいバージョンを使ってもらいたいとか、書籍の収録があって新しいバージョンにしておきたいというような理由で、頻繁にバージョンアップすることもあります。結局、新しいバージョンを使うかどうかは利用者が決めることですので、常に新しいものを提供するという姿勢は、いいことなのかもしれません。ただ、どこが変わったのかを明記しなければ、利用者は気づかないことが多いです。テキストファイルかヘルプファイルに履歴を書くべきでしょう。


【画面】

視覚から得られる情報は、ソフトを使う上で重要な役割を果たします。その情報が欠けていたり、見られなかったりすると、使う側にストレスを感じさせる要因になります。色数や解像度など、使用環境によって見え方が変わることもあります。特定の環境での使用しか想定していない作り方は避けるべきです。

・はみ出す
640x480の環境を無視して、やけに大きいウィンドウを生成するソフトがあります。ボタンが押せなくなったりして非常に困るので、考慮していただきたく思います。

・メニューからの呼び出し
そのソフトの機能を、なるべくメニューから呼び出せるようにすることは重要です。メニューは、選んで実行するという手順を経るため、利用者にとってわかりやすいものになります。同時に、どんな機能があるのかを示すことができるという利点もあります。それだけでなく、ショートカットキーが何かを知ることができたり、慣れた利用者がキーボードでの操作をするのに重宝します。

メニュー項目を、どこのメニューに入れるかというのは、非常に難しい問題です。マイクロソフトの製品を参考にするのが無難ですが、マイクロソフトのソフトでさえ統一されていないこともあります。できるだけ多くのソフトに触れてみて、違和感なく使えるソフトを参考にするのがよいでしょう。

悩むのが「設定」です。まず、言葉を「オプション」にするか「設定」にするかで悩みます。さらに、設定やオプションをメニューとして設けるかメニュー項目にするかも迷います。メニュー項目にする場合、[ファイル]-[設定]にするか、[表示]-[オプション]にするか、[ツール]-[オプション]にするか、あるいは[オプション]-[設定]なんてのもアリでしょうか。これについてのガイドラインがあれば、読んでみたいものです。

・最新の情報に更新
表示している情報を、最新のものにしたいことがあります。「再読み込み」や「最新の情報に更新」の機能がほしいところです。「最新の情報に更新」ならば、F5キーに割り当てるのが一般的です。

・省略記号(...)
ボタンを押したり、メニューから項目を選択したあとに、新たにダイアログボックスなどが表示され、さらに追加情報を必要とする場合、文字列の後ろに「...」を書きます。たとえば、[開く(O)...]や、[フォント(F)...]などです。これがあると、実行したら何か情報を追加する必要があるということが事前にわかります。なお、メッセージボックスが出るときには書きません。たとえば、エクスプローラの[削除]には「...」がありません。

・待ち状態
何かの処理中に、ユーザーを待たせる場合は、マウスカーソルを「待ち状態」のものにする必要があります。待ち状態にしないと、ボタンを押したりしたときに、何も反応がないと思われてしまうことがあるからです。たとえそれほど長くない時間でも、とりあえずカーソルは待ち状態にするべきでしょう。環境によっては、それが長い時間かもしれないからです。

・バージョン情報
バージョン情報は、非常に重要な役割を果たします。まず、著作権情報を書いておくことにより、誰が作ったのかを明確にしておくことができます。メールアドレスや、あればWebサイトの記入もしておくとよいでしょう。また、それらをクリッカブルにしておいたり、選択可能にしてクリップボードにコピーできるようにすると便利です。

それ以外にも、その名のとおりバージョン情報を見るときにも利用されます。バージョンアップする前に参照して、最新版との関係を確認するためです。ヘルプファイルやテキストファイルでは、たまに数字の書き換え忘れがあったりするので、正確なバージョンを知るには、このバージョン情報が重要な手がかりとなります。そういう意味でも、バージョン情報だけは絶対に正確なものにしておく必要があります。

作者側は、バージョンナンバーには気をつけているつもりだとは思いますが、書き換え忘れがどうしても起こってしまうことがあります。少なくとも、ヘルプとテキストファイルの何カ所かと、そしてバージョン情報とがあり、私もかなり入念にチェックしています。

・配色
誰もが必ず標準の配色で使っているわけではありません。ウィンドウ内の背景色を黒にして、文字色を白にして使っている人もいるでしょう。そのような配色にした場合、文字も黒くなって全く読めなくなるという状況になることがあります。これは、背景色はWindowsの配色を使い、文字色が「黒」と決めつけてある場合に起こります。このような問題を回避するには、文字色もWindowsの配色に合わせる必要があります。

文字の表示がメインの場合、アプリケーション側で文字色と背景色を決められるようにするのも手です。Windowsの配色の変更は、上記のような問題が多くて使いにくいため、個々のアプリケーションで設定できるようにしたほうが現実的なのです。

【操作】

操作性の面で不満に思うソフトは少なくありません。キーボード操作を全く考慮していないソフトが非常に多く、それで使う気が失せてしまいます。特にゲームソフトでは、フリーか市販のものかを問わず、マウスでしか操作できないものが目立ちます。一度、マウスを使わないでどれだけの操作が行えるかチェックしてみてはいかがでしょうか。

・デフォルトボタン
あるダイアログで、OKボタンとキャンセルボタンがあるとします。通常、OKボタンをデフォルトボタンにします。ちなみにデフォルトボタンとは、ボタンの枠が太くなっていて、Enterキーで代用できるボタンを指します。なお、フォーカスがほかのボタンへ行くと、そのボタンがデフォルトボタンになります。

Escキーに特別な機能を割り当てていなければ、キャンセルをEscキーで代用できるようにすべきでしょう。これができないソフトは、開いたダイアログをキャンセルして閉じる操作が面倒で困ります。

・フォルダ選択
ツリー形式ではないディレクトリリストボックスで、あるディレクトリ(フォルダ)へ移りたいとき、そのディレクトリでEnterキーを押しても反応しないソフトがあります。マウスでダブルクリックしないといけないのです。これでは、キーボードでディレクトリを選べません。さらに配慮するなら、Bsキーで親ディレクトリに戻れるようにするべきでしょう。これだけのことで、ずいぶん使い勝手がよくなります。

・ファイル選択
ファイルリストボックスでは、たとえば、選択中のファイルの情報を表示するソフトがあるとして、カーソルキーで選択ファイルを変更しても、何も起こらないソフトがあります。やはりこれも、マウスでクリックしないことには反応しないというわけです。カーソルキーでファイルを選ぶというのは、ごくふつうに行われることなので、それを無視するのは問題です。

・アクセスキー
メニュータイトルとメニュー項目には、アクセスキーを割り当てておきましょう。キーボードだけで操作する際に、カーソルキーを使う必要がなくなります。しかもアクセスキーは、使われ方がだいたい決まっています。たとえば、ファイルは(F)、編集は(E)というようにして、なるべくほかのソフトと同じにしましょう。

アクセスキーは、ポップアップメニューにも必要です。もともとマウスの右クリックで出すのだから必要ないと思うかもしれませんが、キーボード操作でも出せますし、特にノートパソコンでは、右クリックのあとにキーボードで操作したいことがよくあります。市販のソフトでも、キーが割り当てられていないものが多く、不便に感じます。タスクバーのインジケータにあるソフトも同様です。

・フォーカス
フォーカスの位置というのも、使い勝手に大きく影響します。まず、Tabキーを押したときに、適切な順番でフォーカスが移動するでしょうか。そもそも移動すらしないソフトもけっこうありますが、キーボードでも使用できるようにするには、フォーカスの移動は必須です。

ある機能を実行したあとのフォーカスの位置も重要です。次の作業をする際に、またいちいちフォーカスを適切な位置にしなければならないソフトは不親切と言わざるを得ません。

たとえば辞書を引くようなソフトの場合、検索文字の入力後にEnterキーを押したときに(Enterキーで検索しないソフトは問題外として)、別の場所にフォーカスが移ってしまっては、次の文字がすぐに入力できなくて不便です。この場合、入力文字を選択状態にして、フォーカスは移動しないという処理が最も適切でしょう。そのまま次の文字を入力すれば前の文字は消えますし、カーソルキーを押せば文字を残せます。たったこれだけのことができていないソフトは、市販のソフトでも多く見られます。

・スクロールバー
スクロールバーは、頻繁に利用されるものですが、これをキーボードで制御できるようにすることは重要です。マウスでしかスクロールできないと、不便に感じることがあります。

メールソフトを例に考えてみます。大半のメールソフトは、メールの一覧画面と、メールの内容を表示する画面に分かれています。ふつう、メールの一覧から読みたいメールを選び、その内容を見るという作業をします。そして、この作業はくり返し行われます。何ができなくてはいけないかというと、次々に選びつつメールの内容を最後まで読むことです。一覧から選ぶというときには、フォーカスは一覧画面にあるのですが、同時にメールの内容を別の画面に表示しているので、その画面をスクロールさせたいわけです。このとき、たとえばSpaceキーでページ送りできればとても便利なのですが、そういうソフトは意外に少ないのです(Shift+Spaceキーで1ページ戻るソフトは、さらにまれです)。いくらほかに豊富な機能があっても、これができないだけで、私はあまり使う気がしません。

【アンインストール】

アンインストールは、ただファイルを消すだけというのが最も楽で、利用者に喜ばれる方法ですが、レジストリを利用していると、そう単純にはいきません。レジストリに書き込んだ内容を放っておいても問題がない場合もありますが、そういうのは気分が悪いという人もいますので、何らかの対策を必要とします。

そのソフトに、レジストリに書き込んだ内容を削除する機能をつけるのが、最も親切なやり方です。その際に、そのソフトのキーを削除したあとに、会社名(作者名)のキーにサブキーがなければ、そのキーも消すという処理をすると、完全に消去できて利用者も安心します。そのことが明記してあると、さらに安心します。

たとえば、T.Inukaiという作者名のキーのサブキーにJKViewというソフトのキーがあるとして、それを削除することを考えます。

《ケース1》
T.Inukai-+-FSV
         |
         +-JKView

《ケース2》
T.Inukai---JKView

ケース1では、JKViewを消しても、ほかのソフトのキーであるFSVが残るため、T.Inukaiは残しておく必要があります。なので、行う処理は、JKViewのキーを消すことだけです。しかし、ケース2では、JKViewを消すと、ほかにサブキーはなくなるので、T.Inukaiのキーも消す必要があります。つまり、JKViewを消したあとに、ほかにサブキーがあるかどうか調べて、なければT.Inukaiも消すという処理をすればよいわけです。

私のソフトでは、設定情報を削除する機能をつけて、そのソフトの実行中に削除して終了できるようになっています。それだけでなく、使用するレジストリ項目を明記してあり、必要であれば手動でも消せるように配慮してあります。

レジストリ情報を削除するだけのソフトを添付する方法もあります。しかし、それをつけたことによってサイズがかなり増えてしまうようでは、嫌がられるでしょう。

ドキュメントに削除する方法を書いておくだけでも、ないよりはマシです。利用者に任せるのは危険ではないかという意見もあるでしょうが、フリーソフトは無保証、無責任が基本なので、何も問題はありません。こういう情報はオープンにすべきですし、そういったこともフリーソフトの魅力であると私は思います。

アンインストールは、「アプリケーションの追加と削除」を利用する方法もありますが、頻繁にバージョンアップするフリーソフトには不向きな面も多いので、これは今ひとつという感じがします。この方法でアンインストールできるようにするべきだというガイドラインがあるにしても、環境を受け継いで頻繁にバージョンアップするフリーソフトには向かないと思うのです。二重登録をしないように作ってあれば、有効な方法ではあるとは思いますが、よほどの規模のソフトでない限り、やはり仰々しいという感じがします。


[トップページ] / [ソフトウェア工房]