Paradigm Shift Design

ISHITOYA Kentaro's blog.

iPhone用の簡単写真共有アプリtottepostをリリース

てぃす!


すでにご存知の方もいらっしゃると思いますが、去年の年末から今年にかけて作ってきた
「1タップで写真共有 - tottepost」
というアプリが本日、App Storeでリリースされました!


UPDATE
現在、1.1.1で、カメラのついたiPadでも利用可能です。


http://github.com/kent013/tottepost/raw/master/AppStore/screenshot3_en.png:image:left:w160
http://github.com/kent013/tottepost/raw/master/AppStore/screenshot4_en.png:image:w160



1タップで写真共有 - tottepost - ISHITOYA Kentaro


ウリは、「tottepostは写真をどえりゃー簡単に投稿できるアプリです。撮影ボタンを1回押すだけで、あらかじめ設定したtwitterfacebookのようなサービスに次々と投稿していきます」です。


設定画面を開いて、サービスの設定をしておけば連写してもガンガンアップロードできます。
現在サポートしているサービスは、Facebook / Twitter / Flickr / Dropboxです。
Twitterの場合は並列でアップロードするとアップロードに失敗することが多いので、シーケンシャルにアップロードされます)
Facebookでは、設定画面でFacebookをタップするとアルバムを選択できます)


コメントをONにしていると、プレビューが開いてコメント入力できますが、基本的にガンガンアップロードするためのアプリです。


設定画面にフィードバックというボタンがあるので、バグや要望があればお気軽にご報告ください。
また、facebookページへのフィードバックもお待ちしております。


ココまでが宣伝で、あとは開発の経緯とかをだらだら書きます。

開発の経緯

2011年の12月初旬頃、名大の植え込みに咲いていた牡丹の花がとてもきれいでした。
なのでAndroidで写真を撮りました。Facebookにあげようかなってんで、写真フォルダを開いて、その他メニュー開いて、共有メニュー(Share in Facebookが2つあったりする)を押して、コメント入力してアップロードしたんですが…失敗に終わり、再度同じ作業をしたところで電波がないことに気がついた訳ですよ。


もう、HTC Evoをへし折ろうかと。


そこで、思った訳ですね。
「撮ったらアップロードできるアプリが欲しい!」
と。


おなじく2011年の12月初旬頃、僕は妹に「Facebookにはいれ」としつこく要求していました。まめ(猫)の写真をアップロードして欲しかったんです。妹の近況はどうでもいいっちゃいいけれど、猫狂いとしては、まめの近況が知りたいわけですよ。で、妹がFacebookを始めたんですが、いっこうにまめの近況がアップロードされてこない。


もう、毎朝、催促の電話をしてやろうかと。


そこで、思った訳ですね。
「『これを立ち上げて、このボタン押せばFacebookにあがるから』って説明すればいいだけのアプリが欲しい!」
と。


なので、tottepostのコンセプトは

  • 最短1タップで写真がアップロードできる
  • 設定さえしてしまえば、おばあちゃんでも使える
  • アップロードに失敗してもあとでやり直してくれる
  • エフェクトとか凝ったものはいらない


というものです。それから研究室の後輩でiOS開発ができて比較的切羽詰まっていない、@に声をかけて、実装することになりました。

名前の話

「撮って出し」って英語でなんていうの?っていう名前です。最初はshot and postとかshoot and postだとか言ってたんですが、「とってポスト」でいいじゃないかと誰かが言ったので、tottepostになりました。


一応、英語をメイン言語に設定してあるんですが、意味分かんないだろうなw

実装の話

あ、実装の話です。呪文です。


まず、tottepostはオープンソースで公開しています。

理由は色々ありますが、正直、アプリ自体があまり売れると思っていないので、それよりはソースコード公開してるってことの方が重要だろう。ということで。NatsuLiphoneの問題とかもあって微妙なところはありますが、真似してApp Storeに出るようなことがあるのならば、むしろかなりの成功だと思っています。


写真を撮影する部分に関して、最初はUIImageViewを使っていましたが、AVFoundationを使っています。
UIImageViewだとUIImageしか取得できないのと、UIImageJpegRepresentationを呼び出さないとNSDataにできないので、カメラのEXIF情報とかが飛んでしまうためです。


投稿する部分は、PhotoSubmitterというライブラリを作りました。tottepostのリポジトリ内に入っています。

ドキュメントとか作ってないのであれですけど、基本的には

//OAuth認証開始
[[PhotoSubmitterManager submitterForType: PhotoSubmitterTypeTwitter] login];
//すでにログインしている場合
[[PhotoSubmitterManager submitterForType: PhotoSubmitterTypeTwitter] enable];

とかしてOAuth認証が走って、ログイン完了していれば

PhotoSubmitterImageEntity *photo = [[PhotoSubmitterImageEntity alloc] initWithData:data];
[[PhotoSubmitterManager sharedInstance] submitPhoto:photo];

とNSDataを渡してPhotoSubmitterImageEntityを作ってManagerに渡せば、すでにログインして有効になっているサービスに非同期で写真をアップロードすることができます。上記の場合はTwitterとDropboxですね。


基本的には、写真とって投稿するだけなので、実装はそれだけなのですが、細かい部分で色々あって大変でした。

にその苦労の片鱗がにじんでいるかと思います…

App Store関係

アプリで利用されているイメージは、Glyphish Pro 3というアイコンセットを使わせてもらっているのですが、アイコンセットに含まれているCloudマークのアイコン、iCloudの雲と全く同じなんですね…それもそのはず、AppleがGlyphishを使ってるんです.


http://github.com/kent013/tottepost/raw/master/tottepost/Resources/Images/icon@2x.png:image:lefthttp://images.apple.com/jp/icloud/images/overview_title.png:image:w128


なので、@が雲マークをチョロチョロ改変してアイコンにしました。In ReviewからReady for Saleまで4日でした。

今後の予定

Evernoteはすでにリポジトリでサポートされていますので、次期アップデートに含まれます。また、Picasaに関しても実装中です。Mixiは必要だという人が一人でもいれば実装します。


エフェクトは、つけません。
ただし、Evernote向けに矩形認識、アフィン変換、コントラスト調整は@にがんばってもらおうかなと思っています。


余談ですが、当面の目標は売り上げでiPhone4Sを買うことです(笑
現状、デバッグはtouchで行っており、iPhoneデバッグは研究室の後輩の4/4Sを奪って行っているので(笑


というわけで長くなりましたが、tottepostをよろしくお願いいたします!