開発に至るまでの話

 開発の動機 / バージョン履歴 / 開発環境


開発の動機

2002年12月。パソコンで使える和英辞典を探していたときに出会った「英辞郎」は、今では必需品のひとつだ。

その後、英語をすこし勉強しようと思い、単語テストをする(プチ)ソフトを作っている時に、発音記号の事が気になりだした。

Windows 版の英辞郎は、PDIC という形式のデータになっていて、 このデータには発音記号が含まれている。

これを Mac でも見たい。

PDIC ブラウザを作ろう。

作り始めた頃に仏検1級合格(3度目の正直)の通知も届いたので、 仏検合格記念プロジェクトという事にした。


開発経緯

PDIC ブラウザを作ろうと思い立った(2003.2.15)当初は REALbasic で書いていたが、検索速度と安定性に納得できず、C++ での開発に切り替える。

REALbasic版

2/15 〜 2/16
REALbasicで検索プログラムを書いてみる。

PDIC を検索するには遅過ぎた。

REALbasic + plugin版

2/17 〜 3/6
前方一致の検索スピードに関しては申し分なし。

- 英単語(見出し語)部の検索が可能。前方一致でない検索も可能。
- 辞書のグループ化に対応。
- 日本語(意味)部を含めた全文検索が可能。もっと速くしたいので書き直し中。
- ターゲットは Mac OS 9 (PPC) または OS X 。
- Speech Manager が入っていれば(※OS X では元々入ってる)、英単語を読み上げてもらえる。

Ver 0.1 (C++版)

2003/03
多忙な時期を過ぎ、少し時間が取れたので、放置していた PDIC Reader プロジェクトに復帰。
C++ で全部書いたら速いだろうなあ、と思い、インタフェイス部分も含め、全て C++ での記述を試みる。


個人的事情(心情)により OS 9 との互換性を捨てられないため、 OS X 専用ならもっと容易な方法があるにも関わらず、MPW で開発。

Ver 0.2

2003/03

Ver 0.3

2003/04

Ver 0.4

2003/04

Ver 0.5

2003/05

Ver 0.6

2003/05/08
検索結果がようやく画面に表示された。でもすぐに落ちる。

Ver 0.7

2003/05/08
落ちなくなった。

Ver 0.8

2003/05/09

Ver 0.9

2003/05/10
検索を Thread で行うように変更し(はじめ)た。 結果表示行数の MAX を 2048 にした。
(これは無限に拡張/収縮できるようにしたいけど、面倒で)

Ver 0.9.1

2003/05/11

Ver 0.9.2

2003/05/12
単語/意味パートのエンコーディングの変更や、発音記号の変更(#選択)に(内部的には)対応。

Ver 0.9.3

2003/05/13 [暫定評価版]
【New】 初公開。

Ver 0.9.4

2003/05/20 [暫定評価版]
【New】 全文検索に対応
【New】 PDIC の Ver 4以外の辞書 (Ver2-3, Ver5) にも対応

Ver 0.9.5

2003/05/22 [暫定評価版]
【New】 command + . による検索中断に対応。
【New】 UNICODE (BOCU-1) 辞書に対応。(検索・表示と、日本語/英語入力のみ)
【New】 Speech Manager (text-to-speech) に対応。
【修正】 ハイフン (-) 押下で落ちる問題を解決。

Ver 0.9.6

【New】 入力フォームの Unicode 対応(OS X のみ)
【New】 テキストパレット機能(読み込んだテキスト内で単語をダブルクリック→検索)
【New】 ヘルプの実装

Ver 0.9.7

ソース量が増えるにつれ、MPWでのプロジェクト管理が面倒になり、開発環境の変更を模索。

Ver 0.9.8

開発環境をCodeWarrior 8.3J + PowerPlantに変更。

  ・[0.98b1] 高速表示/精細表示モードの切替え機能(環境設定にあります)
  ・[0.98b1] 検索処理をバックグラウンドに回した〔復活〕
  ・[0.98b1] 訳語からの検索〔復活〕
  ・[0.98b2] Unicode(BOCU)辞書の検索
  ・[0.98b3] 発音記号SHBフォントに対応
  ・[0.98b3] アクセント記号(独・仏語など)なしでもアクセント付きの単語を検索
  ・[×0.98b3 → ○0.98b4] 訳語の末尾に時々ゴミが入ったのを修正
  ・[0.98b4] テキストパレット機能

Ver 0.9.9

  ・[0.99a1] 辞書のグループ化(インターフェイス未実装)
  ・[0.99a1] 画面のちらつきを軽減(OS 9)
  ・[0.99a1] 高速表示/精細表示モードの切替えをメニューからもできるようにした
  ・[×0.99a1 → ○0.99a2] 発音記号、用例が再び表示される
  ・[0.99a2] Unicode (BOCU) 辞書検索の性能・安定性が向上
        全文検索がちゃんとできるようになる。
  ・[0.99a2] 表示モードに ATSUI を追加。落ちやすい Unicode 辞書の表示に使ってください
  ・[0.99a2] 検索ウィンドウからエンコーディング設定メニューが消え、(既知の辞書に関しては)全自動化。
  ・[0.99a2] 検索結果の保存機能(PDIC一行テキスト形式のような)
  ・[0.99a2]「訳/用例も検索」している際の体感性が(かなり)向上
        ← ※検索速度自体は変わっていないはず
  ・[0.99a2] 「学辞郎」文例ファイル表示
  ・[0.99a2] ヘルプ機能(中身はまだ古いです)
  ・[0.99a3] ESCキー、または command+.(ピリオド) で検索中断

  ・[0.99b1]「英辞郎 on the Web」風の検索ウィンドウを実装。結果はカラー表示
        SimpleText (TeachText) 形式での保存も可能
  ・[0.99b1] インテリジェント・テキストビュー(英辞郎ウィンドウ、テキストパレット)
        テキストパレットで、カーソル位置の単語(英単語のみ)に下線が引かれ、
        自動的に辞書から検索し、ヘルプタグで表示する。
  ・[0.99b1] 検索結果の保存機能(リストビュー:0.99a3 までの検索ウィンドウ)
        ・command-S でファイルに保存(テキスト形式)
        ・Results フォルダにもバックアップ保存(PDIC形式)
  ・[0.99b1] PDIC形式(新規)辞書作成・編集/コンバート関連
        ※現時点では、ソートも圧縮もせず、とりあえずViewerで読めるという程度の実装
        ・辞書コンバート(PDIC(バイナリ)形式←→1行テキスト形式。改行には未対応)
  ・[0.99b1] リストビューのキー操作改善
        ・矢印(↑↓)で選択項目を移動
        ・ enter キーで選択項目を別ウィンドウ閲覧
  ・[0.99b1]「開く」メニューを実装
        ・テキストファイルを(パレットで)開けるようになった
  ・[0.99b2] フランス語語尾推定機能
  ・[0.99b2] インテリジェント・テキストビューの OS 9 での振舞いを修正
  ・[0.99b3] 中国語辞書 cj.dic の語義欄の発音表記を、発音欄にてピンイン表示する機能
  ・[0.99b3] PDIC形式での辞書保存の最適化(ブロック分割、単語圧縮)
  ・[0.99b3] PDICテキスト形式/1行テキスト形式からのコンバート機能
  ・[0.99b3] Unicode(BOCU-1)での保存機能を実装 
  ・[0.99b3] 精細モードでの表示の安定度UP
  ・[0.99b4] 発音欄からの検索/中国語辞書 cj.dic ではピンインからの検索も可能に
  ・[0.99b4] 高速モードでの長い単語の折り返しを実装
  ・[0.99b4] Results フォルダがなくても落ちないように修正
  ・[0.99b4] 環境設定で、保存されない項目がある不具合の修正
  ・[0.99b4] ラベル(単語・発音・レベル・訳 / 用例)の表示
  ・[×0.99b4 → ○0.99b5] 検索語が日本語の場合に検索結果が正しくない不具合の修正
  ・[0.99b6] 2種類の検索ウィンドウ(英辞郎 on the Web風/リストビュー)の統合
        → command + return で切り替わります。
  ・[0.99b6] 正規表現検索
  ・[0.99b6] 大幅な省メモリ化(OS 9 で英辞郎・和英辞郎のグループを使っても大丈夫かも)
  ・[×0.99b6 → ○0.99b7] 検索ウィンドウのキーバインドが統一されていなかったので統一
  ・[0.99b8] EPWING辞書の検索
  ・[0.99b8] 発音記号をUnicodeに変換して表示(OS X では発音記号フォントが不要に)
  ・[0.99b8] 複合条件検索
  ・[0.99b8] 検索結果からの絞り込み検索
  ・[0.99b9] 入力欄で、Unicode の on/off が切り替え可能 ※OS 9では無効
  ・[0.99b9] 大文字小文字を無視した場合の検索結果がおかしくなる不具合を解消
  ・[0.99b11] 検索履歴がメニューに表示されるようになった
  ・[0.99b11] 辞書グループ編集機能(実装途上。若干よくなる)※OS 9では無効?
  ・[0.99b11] 訳語からの検索時に、前方一致が利くようになった
  ・[0.99b11] 高速モードで、文字が表示されない不具合を修正
  ・[0.99b12] 検索ウィンドウでの検索対象の選択をラジオボタンに変更
  ・[0.99b12] 環境設定で、起動時に開くウィンドウを指定してもその通りにならない不具合を解消
  ・[0.99b12] 検索ウィンドウで、用例からの検索ができない不具合を修正
  ・[0.99b12] テキストパレットで、ポップアップ検索で、処理が長時間戻ってこない不具合を解消

Ver 1.0β

  ・[1.0b1] 「例辞郎」に対応
  ・[1.0b1] ユーザが編集した辞書ファイルの保存時に、単語がソートされていなかったのでソート処理を実装。
  ・[1.0b1] OS 9で、いくつかのウィンドウが開かない不具合を修正
  ・[1.0b2] OS 9での安定性が若干向上
  ・[1.0b3] 「最近の検索結果」で、ある程度以上の量の結果を開くと落ちる不具合を解消
  ・[1.0b4] 発音記号およびレベル表示の枠の幅を拡大
  ・[1.0b4] ユーザ辞書を最初に保存する時、直後に再編集できない(クリアされてしまう)不具合を解消
  ・[1.0b5] カラー・テキストビューで、単語以外の項目からの検索時に単語部分が部分的に着色してしまう問題を解消
  ・[1.0b6] 高速モードで、訳/用例が最後まで表示されない場合がある不具合を解消
  ・[1.0b7] インクリメンタルサーチでの検索語が、最近の検索語のメニューに(1文字ずつ)逐一並んでしまう問題を解消
  ・[1.0b7] 検索結果の表示中に落ちる可能性のある部分を1カ所修正
  ・[1.0b8] 最近の検索結果のメニューで、インクリメンタルサーチで検索した結果が見られない(未実装)問題を解消
  ・[1.0b9] インクリメンタルサーチで検索した結果を「最近の検索結果」から正しく再現できない、あるいは落ちてしまう問題を解決
  ・[1.0b9] ユーザ登録をしても認識されず、試用ボタンを毎回押すことになる不具合を解消
  ・[1.0b10] 複合条件検索・絞り込み検索において、検索領域選択から単語欄を外せなかった問題を解消(ラジオボタン化)
  ・[1.0b11] 日本語をインクリメンタルサーチした場合、最近の検索語のメニューに(1文字ずつ)逐一並んでしまう問題を解消
  ・[1.0b12] 検索ウィンドウで、個々のフィールドの幅を変更可能に
  ・[1.0b12] ポップアップ検索で、候補が2つある場合にcommandキー押下で次候補が見られるように
  ・[1.0b13] カラー・テキストビューで高速モードにした場合、PDIC一行テキスト形式でモノクロ表示するように
  ・[1.0b13] インクリメンタルサーチでない場合でもincファイルが書き出され、「最近の検索結果」で再検索が発生する不具合を解消
  ・[1.0b13] PDIC←→テキスト形式の変換データにゴミが入る不具合を解消
  ・[1.0b13] 検索ウィンドウのスクロール回りの改善
  ・[1.0b14] インクリメンタルサーチで、単語欄の前方一致ではない場合、結果データを保存するように変更
  ・[1.0b14] カラーテキストビューで、検索中にモードを切り替えると落ちる問題を解消。検索中のモード切替えは禁止
  ・[1.0b14] カラーテキストビューの高速モードで、データ量が多いと落ちる問題を解消(※表示可能なデータの上限は30000バイト)
  ・[1.0b15] (インテリジェント・テキストビュー)環境設定での設定が反映されない場合がある問題を解消
  ・[1.0b16] (インテリジェント・テキストビュー)テキスト欄が上にずれて再描画され、入力欄などの領域にかぶる問題を回避
  ・[1.0b16] (インテリジェント・テキストビュー)テキスト欄が上にずれて再描画され、入力欄などの領域にかぶる問題を回避
  ・[1.0b17] 検索ウィンドウで、検索領域を選択するラジオボタンで複数の領域が選べてしまう問題を解消
  ・[1.0b17] ユーザ登録ダイアログ表示中にアプリケーションを終了すると落ちる問題を解消
  ・[1.0b18] OS X用アイコン(128×128)を追加

開発環境

0.99b10 以降は PowerBook G4 12inch (2003年モデル) + OS 10.3.x(現在10.3.7)で開発しています。
0.99b9 まではTitanium (PowerBook G4) + OS 9.2.2/10.3.5 で開発していました。
(現在、Titaniumは故障中です・・・)

0.97以前のバージョンはMPWで開発していましたが、 0.98からの開発にはCodeWarrior 8.3J + PowerPlant を使用しています。
MPW版の機能を順次CW版にも組み込み中です。

開発者自身が(おそらく今後も)OS9を手放せないので、 Carbonで開発し「MacOS 9/X のどちらでも動く」ようにしています。