[自在]写真に日付を入れるカメラアプリを作ってみました。われながら意外と便利なアプリです。

2014/01/02

iPhoneアプリ第3弾リリースしました!

今回はiPhoneらしい機能を使ってみようと、カメラアプリを作ってみました。
日付カメラは既に無料のものもあるが、使い勝手が悪いものが多いので、簡単に操作できるように作ってみました。

カメラアプリの作り方には、大別してUIImagePickerを使う方法とAVFoundationを使う方法があります。UIImagePickerを使う方が簡単なので、一般的な入門書にはこちらの方法を解説してあります。
が、UIImagePickerは便利だけど色々と難点があるので、できることなら使わない方が良いだろうという結論に個人的には達しました。

最初の難点は、カメラアプリを作成してもカメラ画面から起動しない点。UIImagePickerは名前のとおり、イメージを選択する機能であり、そのイメージをアルバムから持ってくるか、カメラ・レンズから持ってくるかというのを選択するものである。したがって、アプリの最初からカメラが立ち上がることはなく、初期画面から「カメラからイメージを持ってきてください」と指示することによって、カメラ機能が立ち上がるのである。これが、動作にワンクッションある原因であり、UI的にどうなの?と思ってしまう。

実は、もっと致命的な欠点があって、UIImagePickerはOSのバージョンによって、うまく動作しないことがあるのだ。これは私も悩まされた。OSのバージョンによっては、プレビュー画面が真っ黒になってしまうことがあるのだ。シャッターを押すと写真は撮れるのだが、これでは使いものにならない。
無料の日付カメラアプリもレビューで「画面が真っ暗になって使い物にならない」と叩かれていたが、それはOSのバージョンアップのためであって、開発者のせいではないのだ。
対処方法を探してみたら、どうやらUIImagePickerのインスタンス生成に失敗するようであり、失敗した場合には0.3秒程度のディレイを入れるという方法で対処するらしい。う〜ん、それはどうなんだろう。あまりにも対処療法すぎないか。ということで、UIImagePickerは基本的に使用しない方がいいだろう。との結論に達しました。

というわけで、AVFoundationから地道に作ってみました。良かったら、使ってください。

DateCamera7
カテゴリ: 写真/ビデオ, ユーティリティ