‘開発’ タグのついている投稿
[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の理解に大いに役立つでしょう。









