Out of Focus

写真、iPhone、お酒、サッカー、猫、ゲームとか。

[iPhone] 初めての自作アプリ

leave a comment »

先日、英語学習についてのエントリーを2つほど書きましたが、その中で英英辞書「Collins Cobuild Advanced Learner’s English Dictionary」をご紹介しました。

book_cobuild

結構大きいし厚いので、常に持ち歩くのはちょっと大変です。そして、辞書データの入った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」(って、そのままじゃん!)。

scn_cobuild_001scn_cobuild_002

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

scn_cobuild_003scn_cobuild_004

表示も品詞と意味のみ。とてもシンプルです。既にお気づきだと思いますが、このアプリは著作権のある辞書データを使っていますので、世に公開するものではなく、自分のためだけに使うアプリです。

icon_cobuild

アプリアイコンはこんな感じ。初めて作ったアプリが、これまでは他人の開発したアプリをタップするばかりだったiPhone上に載っていると、それはそれで何か嬉しいものがあります。

 

scn_cobuild_005scn_cobuild_006

こんなアプリでも非常に便利!早速日々の英語学習に役立てたいところです!もちろん、このアプリのバージョンアップも検討中。iPhone SDKの勉強をしつつ、徐々にいろんな機能、例えば履歴保存とか、表示内容を豪華にするとか、いろいろ今後も取り組んでいきたいですね。あとは高速化かな(検索は速いんだけど、そのためアプリの起動が遅い!)。ちょっと苦労したけど、iPhoneアプリ開発なかなか面白いです。興味ある方はぜひ始めちゃってください!僕も他にもいろいろ作ってみようとは考えてますが、本業とぶつかるところがあって、会社の方に確認しないと、どこまで作っていいのかわからないのが現状です。同じ(つまり競合)ジャンルのアプリさえリリースしなければきっと問題ないとは思いますが、この辺は結構厳しいので気を付けたいですね。

最後に参考にした書籍とAmazon.co.jpへのリンクを紹介しておきます。

book_funcocoabook_iphonesdkbook_cookbookbook_objc

どの本も、正直一長一短があり、自分の欲しい情報を手に入れるには結構大変でした。左から2冊の木下さんの本は、読み物として良い感じでした。「iPhone SDK プログラミング大全」の方は再びゆっくり読んでみようと思ってます。まだリファレンス程度にしか読んでいなかったので。実際、期待していたより内容が広く浅すぎて、自分が欲しい情報が省略されているところが多い印象です。右から2番目のErica Sadun本、これは非常に実践的です。英語で書かれていますが、結構わかりやすかったです。今回の辞書アプリでいえば、インクリメンタルサーチのUI部分の実装に役立ちました。最後に「Objective-C」のバイブル。今回の制作工程でもっとも参照した本になります。これとiPhone SDKのオンラインマニュアルがあれば、APIの理解に大いに役立つでしょう。

 

 

Written by Junnn

2009年1月10日(土曜日) @ 16:35

コメントを残す