‘iPhoneアプリ開発’ カテゴリーのアーカイブ
[iPhone] これからの辞書アプリ
iPhone/iPod touchというか、タッチパネルを搭載したモバイル機器と辞書アプリはとても相性がいい。自分はiPhone/iPod touchしか持っていないし、iPhone/iPod touchアプリ市場を見た上での感想となるが、AppleのAppStoreオープンと共に現れた辞書アプリ達、しかしながら、初期の頃は単に辞書でしかなかった。
検索という便利な機能とモバイル機器用アプリというだけで十分重宝するに値したが、それだけでは別にiPhone(以下、面倒なのでタッチパネル搭載モバイル機器の代名詞とさせてもらう)である必要はなかったと思う。それ以外は電子辞書、さらには紙の辞書と何ら変わりはなかった。
当然iPhoneアプリということで、iPhoneならでは機能、開発者による差別化など、辞書アプリはどんどん進化することになる。
まずは音声再生機能。単に内蔵データを再生するだけなら電子辞書と変わりはないし、パソコン用のCD-ROM辞書(今時DVD-ROM辞書?)でも当然の機能ではあるが、インターネットからデータを拾ったり、音声合成するものまで出てきた。が、残念ながらこれもiPhoneならではという機能ではなかった。
次に出てきたのは、指でなぞる、単純にタッチするという形で表示されている単語、ないしは文章そのものを検索対象としてジャンプするという機能。もちろんパソコンソフトでは既にマウスで範囲指定して検索する機能を有するソフトはたくさんあると思うが、iPhoneならではの機能として、この指でなぞるだけで検索できる機能は画期的であり、様々な辞書アプリが当然の機能として搭載することとなった。今や、この機能が無いとiPhone辞書アプリとして失格なのではないかというぐらいの勢いである。
iPhone OS 3.0になり、これまでAppleがユーザーに強いてきた「コピペ不要論(ではないと思うが、あえて!(^^))」が覆され、せっかくコピペが無くてもiPhoneを活用する術を身につけたのに、一旦使用し始めると非常に便利!というか、何故今まで無かったのか?という気持ちが強くなってくる。こんなのはじめからあって当然だろ!とジョブスの耳元で叫びたくなるぐらいだ。
コピペが当たり前になると、当然辞書で調べた内容を英語学習という観点からメモアプリにコピペしたいという欲求が出てくる。「憶える」ということを重視するならば、もう一度指で打ち直す(音声入力が可能なら発声して入力!これも理想か?)こと自体が学習効果を高めるとは思うが、極力面倒なことは避けたいと思うのも事実である。
さぁ、ここで日頃使っている辞書アプリを起動してみよう。そして内容をコピペするのだ・・・あれっ!?・・・、で、できない!?
旧式と呼ばれても反論できない自作アプリをはじめとする、タッチ検索に対応していない辞書アプリのほとんどは、新しいOSのコピペ機能の恩恵に授かり、しっかり内容をコピペできるが、画期的な先進の、今やスタンダードとまで呼ばれる(僕が勝手にそう呼んでいます)辞書アプリではできない・・・(できるものがあったらごめんなさい!)。
これからの辞書アプリ、このタッチ検索とコピペの両立が必須となるのではないだろうか?
emacsというエディタ(ソフトウェア)がある。ソフトウェアで飯を食ってる人、あるいはUNIX端末を扱う研究者には馴染みが深いと思うが、このエディタが有していて他のエディタが有していない(もちろん有してるエディタもあると思うけど・・・)機能に、マウスで選択した範囲がその直後にクリップボードに入るというものがある。個人的にこれがタッチ検索とコピペを両立させるヒントだと思う。でもなんとなく現状のiPhone OSでは無理かもしれない(全く試してないので推測の範囲)し、それだけでは機能的に不便。単純にOSの機能でコピーした部分を検索対象文字列とするのが簡単そうだが、コピーバッファ(クリップボード)と検索バッファは別の方がいいなとも思う(すみません。だんだん話が難しくなってきました)。
[この斜体&グレーの部分、書きながら「違うな」と思ったけど、何かのヒントになるかもしれないので残しておく。]
タッチ検索とコピペ可能な辞書アプリが欲しい。OSが提供しているコピペ機能を拡張できるなら簡単に実装できそうなんだけど。
—–
[あとがき]
「これからの辞書アプリ」というタイトルなのでもっと革新的なアイディアを期待した方、スミマセン。単にタッチ検索とコピペの両立に関心があったので書いてみました。個人的には、辞書アプリはもっと英語学習効果に結びつく方向性で進化していって欲しいと思います。単なる辞書、単なる英語学習ソフトを超えた存在として・・・。
—–
[追記1]
タッチ検索とコピペ、既に販売されてるアプリでできますね!ちょっと裏技っぽいけど。ロングマン英和アプリ、英英アプリで確認。タッチ検索をきちんと(笑)実装したアプリではできないっぽいけど。
[追記2]
大辞泉2009iアプリにいたっては、タッチ検索(ハイパーリンクなのでちょっと違うかもしれないけど、コピーかジャンプか選択できる!)は限定されてるけど、十分コピペと共存している出来栄えでした(さすが木下さん!)。自分の無知をさらしてしまったようで恥ずかしい・・・(^^;)。
[iPhone] 続続・初めての自作アプリ
「初めての自作アプリ」「続・初めての自作アプリ」に続き、最後にもうひとつエントリーを書いて終わりにします。
地味に機能アップと高速化を図りました。



まずは、サーチ画面にタッチしなくてもオートでキーボードを表示。次に辞書内容を充実させました。前回のバージョンでは品詞と単語の意味しか表示していませんでしたが、今回は文節、発音、活用形、例文を追加してみました。そして殺風景だったメモ画面もご覧通り、どっかで見たことあるような画面に改善です(笑)。
一番の問題は起動時の高速化でした。まず、起動時に辞書データ本体を読み込むのをやめ、検索時に少しずつ先読みするように改良しました。これによって大幅に起動時間を短縮できたんですが、それでもまだ起動時間が長い。さらに起動時に読み込むべき最小限のデータを別スレッドで読み込むように改良し、最初の検索スクリーンが表示されるまでの間にデータの読み込みを全くない状態にしました。しかし、それにもかかわらず、明らかに起動時間が長い。アプリが起動するまでにiPhoneが何をしているのか、その辺の仕組みをきちんと理解していないので、それは今後の課題としつつ、とりあえず起動画面を作って誤魔化しました。

ブラックスクリーンが続くよりは、起動画面が出ると時間の経過が短く感じられます。個人使用のアプリなので、今回はこの辺で終わりにしたいんですが、他の辞書アプリに比べて、まだちょっと遅いような気もするけど、こんなもんかな。
MacBookでの開発環境も徐々に整い、今後は新しいアプリ開発に挑戦してみたいと思っています。

[iPhone] 続・初めての自作アプリ
さらに機能アップしました。さすがに前のバージョンはシンプル過ぎました。自分で実際に使用していると、履歴とブックマーク機能は最低限欲しいし、あとは現在発売されてるどのiPhone辞書アプリにも無い機能なんですが、個人的に「これがあったら便利だろ」という機能も盛り込んでみました。また、iPhoneっぽいアプリにも仕上げてみました。

まずはご覧の通り、左上に「履歴ボタン」、右上に「ブックマークボタン」を付けてみました。サーチ・バー内にもブックマークボタンは置けますが、押しにくいのでこうしてみました。


履歴ボタンをタップすると、履歴リストが現れます。もちろん最新の単語が一番上に来ます。そしてクリアボタンをタップすることで一括消去できますが、事故を防ぐため、アラートウインドウを出して実際に消去するかどうか確認してきます。実は、辞書データが一部壊れているようで、時折おかしなフォーマットの内容が表示されます。デバッグ(おかしいところを探して修正)のためにも履歴機能は早急に必要でした(笑)。

次にブックマーク機能です。単語の意味を表示している画面の右上にある「ブックマークボタン」をタップすることで、現在参照している単語を記憶できます。ブックマークした単語の意味の背景が、ご覧の通り薄い緑色(通常の背景は白色)となり、既に覚えようと意識していたことを伝え、学習効果を高めるよう工夫しています。


検索画面の右上にある「ブックマークボタン」をタップすれば、ブックマークリスト画面に移り、こちらでは履歴リストの一括消去の代わりに、単語をひとつずつ選んで削除することが可能です。完全に覚えた単語を消去していくと良いでしょう。


これが、今回追加した目玉機能です。とてもシンプルで実装も簡単ですが、単語毎にメモを書き加えることができます。調べた時の状況、どうしてその単語を調べることになったのか、実際に使う上での注意など、簡単なメモを添えることができれば学習の役に立つのではないでしょうか。さらにメモのある単語は背景が薄い黄色に変化し、「この単語にはメモがあるぞ!」と教えてくれます。
メモ画面にはiPhone本体を左に振ることで移動できます。ちょっとこの辺はiPhoneアプリっぽさも出してみたかったので、色々調べて実装してみました。同様に、このメモ画面と意味を表示している画面からは、iPhone本体を右に振ることで、ホーム画面である検索画面に戻ることが可能です。

こちらは背景が灰色となっております(通常は白色です)。これは履歴リストに載っている単語、すなわち消去さえしなければ、一度調べた単語もわかる仕組みになっていて、何度も灰色背景の単語に出くわすようであれば、ブックマークリストに追加して、さらにメモをしておくと効果的かもしれません。
とりあえず、こんな感じで機能アップし、実用的なアプリになったのではないでしょうか。これがあくまで自分用途でしか無いと考えると少し寂しいですが、ま、実際その程度のアプリでしかないですね・・・。
こうして色々触ってると、やっぱりApp Storeに出せるようなアプリを開発したくなりますね。なんとかならんものかなー。いよいよ24連休も明日で終了。仕事が始まったら、iPhoneアプリ開発してる時間は無くなりそうです・・・。なんとか時間みつけてやりたいけど、今は英語の勉強が大事なので、このアプリを活用して、しっかり勉強したいと思います!
関連記事
- [iPhone] 初めての自作アプリ
- 初代 iPod touch (8G) の活用を巡って。
[iPhone] 初めての自作アプリ
先日、英語学習についてのエントリーを2つほど書きましたが、その中で英英辞書「Collins Cobuild Advanced Learner’s English Dictionary」をご紹介しました。
結構大きいし厚いので、常に持ち歩くのはちょっと大変です。そして、辞書データの入ったCD-ROMが付属していますが、 対応OSはWindowsのみで、Macには対応しておりません。Macメインの僕にとっては使いにくい環境です。
しかしながら、「辞書データさえ取り出せばなんとかなるはず!」と思い、インターネットで調べつつ、Mac上で何とか閲覧する環境を構築できました!これでめでたしめでたしとなるはずでしたが、やはり・・・、
「iPhoneに入れて持ち歩きたいなぁ」
という気持ちが強くなってきます。現時点では対応アプリはないし、脱獄すれば、Mac上に構築した辞書ファイルを使って、辞書アプリで閲覧は可能です。でも、脱獄はしたくない。
「じゃあ、自分で作るか」
これが表題通り、自己初のiPhoneアプリを作るきっかけでした。
もともとiPhoneアプリ開発に興味はあったので、書籍や参考資料などを集めていました。なので、開発環境は一応整っているといえば、整っていました。というわけで、木下誠さんの「iPhone SDK プログラミング大全」の到着を待ちつつ、iPhone上で動く辞書アプリの開発に取りかかりました。その合間に「iPhone Developer Program」に参加し、実機で自作アプリを動かす環境も整えました。
まずは辞書データを自分のアプリで使用するための、独自フォーマットに変換する作業から入りました。独自フォーマットにしたのは、単純に表示したい項目が限られているのと、いろいろ調べたり勉強する手間を省き、簡単に作ってみたかったからです。幸い、ネット上でオリジナル辞書の解析データを見つけたので、それを使って自分の使いやすいようなデータに変換しました(このへんはC#を使ってWindows上で。これを機にRuby覚えようかなと思ったけど、わかってる言語使った方が早いので)。
辞書データが出来上がったら、今度は辞書のアプリケーションプログラムを書きます。最初はiPhoneアプリ独特のコードを組む必要はなく、辞書データから調べたい語を検索し、その内容を表示する部分の作成です。この辺は本職がプログラマなので、サクッと完成しました。ただ、iPhoneアプリを記述するのに必要な言語が「Objective-C」というものなので、自分が普段使い慣れている「C/C++」とは勝手が違い、結構戸惑うことが多かったです。きちんと言語仕様書を読んでから始めるべきでしたが、「なんとかなるだろ」という甘い考えと、余計な知識によって、何カ所か無駄に時間を費やしてしまいましたが、一応形にはなりました。
最後にiPhoneアプリっぽいところのコーディングに入りました。タイミング良く木下さんの本も届き、この辺りは試行錯誤を繰り返しながらも、結構楽しくプログラムを書くことができました。そして遂に完成!
名付けて「Cobuild Reader」(って、そのままじゃん!)。


前方インクリメンタルサーチで検索できる簡単なもので、


表示も品詞と意味のみ。とてもシンプルです。既にお気づきだと思いますが、このアプリは著作権のある辞書データを使っていますので、世に公開するものではなく、自分のためだけに使うアプリです。
![]()
アプリアイコンはこんな感じ。初めて作ったアプリが、これまでは他人の開発したアプリをタップするばかりだったiPhone上に載っていると、それはそれで何か嬉しいものがあります。


こんなアプリでも非常に便利!早速日々の英語学習に役立てたいところです!もちろん、このアプリのバージョンアップも検討中。iPhone SDKの勉強をしつつ、徐々にいろんな機能、例えば履歴保存とか、表示内容を豪華にするとか、いろいろ今後も取り組んでいきたいですね。あとは高速化かな(検索は速いんだけど、そのためアプリの起動が遅い!)。ちょっと苦労したけど、iPhoneアプリ開発なかなか面白いです。興味ある方はぜひ始めちゃってください!僕も他にもいろいろ作ってみようとは考えてますが、本業とぶつかるところがあって、会社の方に確認しないと、どこまで作っていいのかわからないのが現状です。同じ(つまり競合)ジャンルのアプリさえリリースしなければきっと問題ないとは思いますが、この辺は結構厳しいので気を付けたいですね。
最後に参考にした書籍とAmazon.co.jpへのリンクを紹介しておきます。
どの本も、正直一長一短があり、自分の欲しい情報を手に入れるには結構大変でした。左から2冊の木下さんの本は、読み物として良い感じでした。「iPhone SDK プログラミング大全」の方は再びゆっくり読んでみようと思ってます。まだリファレンス程度にしか読んでいなかったので。実際、期待していたより内容が広く浅すぎて、自分が欲しい情報が省略されているところが多い印象です。右から2番目のErica Sadun本、これは非常に実践的です。英語で書かれていますが、結構わかりやすかったです。今回の辞書アプリでいえば、インクリメンタルサーチのUI部分の実装に役立ちました。最後に「Objective-C」のバイブル。今回の制作工程でもっとも参照した本になります。これとiPhone SDKのオンラインマニュアルがあれば、APIの理解に大いに役立つでしょう。









