~ 開発後記

この記事は、開発者の個人的感想が綴られたものです。興味のある方だけお読みください。


世間はiPhone6やiOS8の話題でもちきりの中、やっと新しいアプリをリリースできました。
正直このアプリは予想以上に難しかったです。途中で開発機のMacが壊れるというハプニングがあったり、他にもいろいろやりながらですが、思いついてからリリースするまでに半年以上かかってしまいました。

最初のきっかけは単純なものでした。私自身あんまりSNSへの投稿等はしないのですが、送りたい写真があって、その写真の一部を外に見せたくなかったので、その部分を簡単にぼかせるアプリを探していました。

すっかりアプリが充実しているiPhoneですから、無料で簡単にぼかせるアプリなんてすぐ見つかるだろう。ついでに撮影日時とかGPS情報も削除できるといいなと思って探してみたところ・・・
ぼかし処理の使い勝手が悪くてイメージ通りにぼかせないとか、ぼかし編集中にいきなり全面広告が出てきて邪魔されるとか、ブラシ形状とかパターン選択とか機能豊富でなんでもできるんだけど、どうやったらぼかしができるのかよくわからないとか、編集した画像を保存してみたら元々より小さいサイズにリサイズされ、ぼかしてない部分の画質が悪くなっているとか、あと撮影日時やGPS情報は一応削除されてるんだけど、元々どんな情報が入っていてどんな情報を削除したのかちっともわからないとか、そんなものばかりでした。

えっ、こんなものなの? じゃあ、自分で作っちゃおうかな~。指でなぞったところをぼかすだけだったら簡単じゃない?あと撮影日時やGPS情報等のExif情報も確認して削除できるようにしよう。これくらいなら早くて1カ月でリリースできるかな?
と甘い考えで始めたのが今回の開発でした・・・

で、とりあえずiPhoneのスクリーンショットを指でなぞってぼかす処理は、数日でできました。おっ、これならすぐできそうと思って次はiPhoneのカメラで撮影した写真をぼかそうとしたところ・・・。メモリを食い過ぎて、アプリが落ちるどころか端末が突然リセットする事態となりました。

ここで初めてこの手のアプリの難しさを知りました。iPhoneの写真が800万画素だから1画素4バイトで32Mバイトのデータ。これをタッチと同時にリアルタイムでぼかし処理して更新してたらiPhoneじゃ性能が持たない。だからみんな画質を落として編集しているんだなとわかりました。みなさん、「こんなものなの?」なんて言ってすみません。

なら、実際の画像と別に表示用の画像を前に置いて、タッチ中はその表示用画像をぼかし処理し、実際の画像はバックグラウンドでぼかせばいいんじゃない?って、また軽く考えて2重レイヤ構造で実装を始めたところ処理が数倍難しくなりました(>_<)。バックグラウンドで処理するにしても、一度に1Mピクセル以上のイメージ処理をするとメモリ不足で動作不安定になるので、なぞった領域を1Mピクセル面積で分解して少しずつぼかすようにしています。この適切なサイズを求めるのに2次元方程式を解きながら処理したりして、毎日数学の図形の問題を解いて、100点取るまで居残り補習の連続という感じでした。そんな感じで2カ月くらいかけてやっと満足いくチューニングができましたが、ちょっと疲れてしまい、この開発はしばらく寝かせていました。

その後、ふと思いついて、ぼかし処理する時にタッチ開始時の色を少し加えたら、消せる感じになるんじゃないの?と思ってやってみたところ、いい感じで消せるので名前を「フォト消しゴム」にして、仕上げをしました。
仕上げというか、やるべき機能はたくさん残っていてUndo/Redo機能、タッチしたポイントでポップアップするメニュー、リサイズ機能、トリミング機能、Exif情報表示/編集機能、チュートリアル等々、結局それらだけでも2カ月はかかりました。他にもやりたいことはあったんですが、次期回しの予定にして、なんとかiPhone6発表の1週間前にAppleにレビュー申請しました。でも、この時期はやはり申請が殺到するようで、本日やっとAppleにレビューしてもらってリリースできました。(レビュー依頼から10日かかりました。)

結局、画像を送付する時にプライバシー情報がないか確認して消したいだけなのに、まぁいろいろ苦労してます。水鳥が水面上をすいすい気持ちよく泳いでいるように見えるのに水中では必死でバランスをとりながら水を掻いている感じです。

まぁ、そんなことは気にせず、編集とかぼかしとかしなくていいので、画像をどこかに送付する時には、ぜひ「Photo消しゴム」を通してプライバシー情報を確認してくださいね!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>