5度のRejectを経て、気になる子の「キス顔」が撮れるiPhoneアプリをリリース!

Share on Facebook
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip

AppStore_SS_4inch_01.png

ホントにハゲそうでした!
Appleに5度もRejectされたのは初めてだーーー。

 

 

2chやまとめサイトで話題になった気になるあの子の「キス顔」がナイショで撮れるアプリがiPhoneに登場!

キス顔カメラはiPhoneのマイクに向かって息を吹きかけるゲームを利用して、プレイした人のキス顔を撮影することができるアプリです。
1月も終わり、卒業シーズンが近くなってきました。
このアプリを使って、好きな子が片思いでも最後にキス顔くらいはゲットしよう!!

AppStore_SS_4inch_02.png AppStore_SS_4inch_03.png

AppStore_SS_4inch_04.png AppStore_SS_4inch_05.png

今すぐダウンロード!
 
 
 
iTunes-Connect.png

2chにスレが立ったのが2013年12月8日。
完成したのが2013年12月12日。
AppleにSubmitしたのが12月13日。
そこからあれよあれよと5回もRejectされ、最終的には「使い方分からねーから動画くれ」と言われ操作説明動画まで作り、ようやくReady for Saleになりました!
やはり、音がならない仕様のカメラは難しく、結局シャッター音を出す方向で調整しました。
今後、小さくできればアップデートで音を小さくしていきます!
 
ぜひ、遊んでみてください!
 
 
今すぐダウンロード!
 
 
 
元ネタ
すばらしいアプリ考えたったwwwwwwwwwwwwwww
http://hayabusa.2ch.net/test/read.cgi/news4vip/1386497088/
 
 
 
 
おまけ
 
Yahoo!に先を越されて激おこでしたw

2013年を振り返るよ!

Share on Facebook
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip

12月31日。

いつもはコミケに参加してたりするので、この時期はわちゃわちゃしてるのですが、今回は不参加なので、グダグダ過ごしてます。

今年一年、振り返ってみましょう!
 
 
64241_454247804646958_446179818_nのコピー.jpg
 
 
うーん。いい感じに真面目そうですね。真ん中が私です。
 
 
942221_474361852635553_1423551689_n.jpg
 
 
ん。なんか良からぬものをくわえていますよ。
 
 
420149_481186268619778_167110822_n.jpg
 
 
ファッションにハマったのかな????
 
 
1017017_517130611692010_1596738380_n.jpg
 
 
なんかチャラくなってる!!!
 
 
1383544_553261001412304_1776218577_n.jpg
 
 
髪が伸びました。
 
 
 
 
 
 
 
1468651_565344473537290_1341817603_n.jpg
 

!?
 
 
 
 
 
↓ 翌日
 
 
BaEHG9KCUAAMFfI.jpg
 
 
あ!量産型大学生だ!!
 
 
 
 
 
 
ということで、高専卒業して無事に量産型大学生になりました。
 
 
 
 
 
 
さて、量産型大学生が出来るまではさておき。
まじめに今年を振り返ってみましょう。
 
 
■ 1月

59955_424526807619058_231931548_n.jpg
△ 成人しました

601199_429967810408291_1379315479_n.jpg
△ ブラック研究室かな?

558280_429680090437063_811256436_n.jpg
△ 高専での卒業研究が無事に終わりました

250736_431806066891132_1395541209_n.jpg
△ 長岡技術科学大学のシンポジウムで研究発表をしてきました
 
 
■ 2月

528269_446685348736537_1678435669_n.jpg
△ 車にハマる

525659_443576315714107_2057654925_n.jpg
△ 初富士急ハイランド

312908_449329078472164_670312470_n.jpg
△ あ!リア充だった頃だ!!
 
 
■ 3月

64241_454247804646958_446179818_nのコピー.jpg
△ 高専を卒業


578530_451278491610556_379017368_n.jpg

△ 白川郷へ聖地巡礼(二回目)(ひぐらしのなく頃に)

5790_454545657950506_633437529_n.jpg
△ 電気通信学会 総合大会で研究発表をしてきました

156091_457570784314660_414661796_n.jpg
△ なんだかんだ楽しかった研究生活(掃除中)
 
 
■ 4月

69006_462003477204724_473413326_n.jpg
△ 筑波大学に入学しました
 
 
■ 5月

536466_457108757694196_1818466538_n.jpg
△ コスプレに挑戦する
 
 
■ 6月

1044526_491722497566155_1955587652_n.jpg
△ 3万の高級HDDを書いました
 
 
■ 7月

サウンドボルテックスにハマる。

 
 
■ 8月

23958_511375795600825_516466929_n.jpg
△ つくばにコストコができる

1017252_511559938915744_1112761660_n.jpg
△ バルス!!!!

1185761_530340587037679_596981090_n.jpg
△ KLab プロトタイピングラボで準優勝する

556704_513404762064595_685116261_n.jpg
△ 癒やしを求める

1002496_514199511985120_1691232617_n.jpg
△ 初ハワイアンズ。初福島。

1094843_516391038432634_173636853_n.jpg
△ クソ暑い中コミケに参加


 
 
■ 9月

540102_528834507188287_1915636797_n.jpg
△ DMTC CAMPに参加

1374854_535933473145057_502778448_n.jpg
△ FF14を始める

【FF14】エオルゼアの住人になりました

【FF14】白魔道士がレベル50になりました

【FF14】メインクエスト、クリアしました

1185681_528958873842517_1172043137_n.jpg
△ 初江ノ島旅行

1236268_471902619583314_1267295076_n.jpg
△ 童心にかえる
 
 
■ 10月

960007_544405865631151_902912546_n.jpg
△ ライゾマティクス展に行ってきました

ライゾマティクス展に行ってきました + ufortable cafeも行きました

1395913_553258264745911_975696764_n.jpg
△ トウキョウデザイナーズウィークを見てきた

1378094_545006068904464_384608046_n.jpg
△ つくばラーメンフェスタ2013





 
 
■ 11月

995236_560323614039376_1548712048_n.jpg
△ まどマギ見てきました

劇場版 魔法少女まどかマギカ[新編]叛逆の物語 見ました。

 
 
■ 12月

988779_569316953140042_1175113106_n.jpg
△ DMTC EXPOに参加してきました

1488308_581377001934037_100763678_n.jpg
△ クリスマスに男4人でクリスマス仙台旅行。カキ!牛たん!

1478957_582410568497347_2037767889_n.jpg
△ ペルソナ3 THE MOVIE を見た

#MG_8592.jpg

1510689_579523032119434_2061869711_n.jpg
△ DMTC AWARDで優勝しました!
 
 
 
 
 
以上!つかれた。

今年は、高専を卒業し、大学に編入し、いろいろと変化がある年でした。
地元を離れ、一人暮らしをし、一つ外の領域に羽ばたいた年だった気がします。
いままで個人でいろいろやっていたことも、今年はチームを組んでアプリを作ったり、複数人で開発する機会が増えました。
友達も、知り合いも、たくさん。交友関係も広がった気がします。
こうして振り返ってみると、勉強の方も研究も、個人的な趣味の方も、いろいろと充実してたなぁ。
今年は「変化」の年でした。

来年は「成長」の年にしたいですね。

 
あと、締め切りを守れるようにしたいですね(白目)

今年も一年間 exilias.net をありがとうございました!
来年も、クソみたいなエンタメよろしくお願いします\( ‘ω’)/
 

Android SDK Bitmapをあらかじめ縮小してから読み込む(OutOfMemory対策)

Share on Facebook
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip

今の端末だと10Mピクセルを越えるカメラを搭載した端末が普通になってきており、そのファイルサイズも数MBに及びます。
AndroidでBitmapFactoryを利用してフォトライブラリーから画像を読み込んだりすると思いますが、そのままその画像を読み込んでしまうと、しばしばOutOfMemoryとなりアプリが強制終了してしまいます。
そこで、実際に画像を読み込む前にある程度縮小してから読み込むことで、メモリが足りなくなることを防ごうというのが今回のネタです。

BitmapFactory.OptionsのinSampleSizeを指定して画像を縮小した状態で読み込む

処理の流れ的にはまず画像のサイズを取得して、サイズが大きかったら縮小指定してから読み込もう、という感じです。

InputStream inputStream = getContentResolver().openInputStream(data.getData());

// 画像サイズ情報を取得する
BitmapFactory.Options imageOptions = new BitmapFactory.Options();
imageOptions.inJustDecodeBounds = true;
BitmapFactory.decodeStream(inputStream, null, imageOptions);
Log.v("image", "Original Image Size: " + imageOptions.outWidth + " x " + imageOptions.outHeight);

inputStream.close();

// もし、画像が大きかったら縮小して読み込む
//  今回はimageSizeMaxの大きさに合わせる
Bitmap bitmap;
int imageSizeMax = 500;
inputStream = getContentResolver().openInputStream(data.getData());
float imageScaleWidth = (float)imageOptions.outWidth / imageSizeMax;
float imageScaleHeight = (float)imageOptions.outHeight / imageSizeMax;

// もしも、縮小できるサイズならば、縮小して読み込む
if (imageScaleWidth > 2 && imageScaleHeight > 2) {	
	BitmapFactory.Options imageOptions2 = new BitmapFactory.Options();

	// 縦横、小さい方に縮小するスケールを合わせる
	int imageScale = (int)Math.floor((imageScaleWidth > imageScaleHeight ? imageScaleHeight : imageScaleWidth));	

	// inSampleSizeには2のべき上が入るべきなので、imageScaleに最も近く、かつそれ以下の2のべき上の数を探す
	for (int i = 2; i < imageScale; i *= 2) {
		imageOptions2.inSampleSize = i;
	}

	bitmap = BitmapFactory.decodeStream(iStream, null, imageOptions2);
	Log.v("image", "Sample Size: 1/" + imageOptions2.inSampleSize);
} else {
	bitmap = BitmapFactory.decodeStream(inputStream);
}

inputStream.close();

BitmapFactory.OptionsのinSampleSizeに2のべき上を入れ、それを指定して画像を読み込むことで、2のべき上で縮小された画像を読み込むことができます。
たとえば、inSampleSize=2であれば、 1/2に縮小された画像が、inSampleSize=4であれば、1/4に縮小された画像が読み込まれます。
inSampleSizeには2,4,8,16と2のべき上を入れます。

読み込む画像の階調を指定して読み込む

読み込む際の画像サイズの縮小は解像度だけでなく、階調を変えることでサイズを落とすこともできます。

BitmapFactory.Options imageOptions = new BitmapFactory.Options();
imageOptions.options.inPreferredConfig = Bitmap.Config.ARGB_8888;

設定できる階調は以下です。

  • ARGB_8888:alpha/R/G/B 各8bit ー 8*4 = 32bit = 4byte / pixel
  • ARGB_4444:alpha/R/G/B 各4bit ー 4*4 = 16bit = 2byte / pixel
  • RGB_565:R(5bit)/G(6)/B(5) ー 5+6+5 = 16bit = 2byte / pixel
  • ALPHA_8:αのみを8bit ー 8bit = 1byte / pixel

体感的にはアルファー値の無い写真などは、RGB_565とかはそこまで劣化が気にならない程度でサイズが半分になるのでおすすめです。

まとめ

画像取得系はメモリを消費して大きい画像を取得するとすぐにOutOfMemoryで落ちるので、読み込む前にサイズを小さくしよう!

【 #iPhoneAppMemo 】電卓のように数字を3ケタずつカンマで区切ったNSStringを作る

Share on Facebook
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip

スクリーンショット 2013-06-12 14.52.24.png

電卓アプリとか、数字を入力したり、金額を入力したりする場合は、例えば「1,280」のように三桁ずづカンマで区切ったNSStringを生成して、UILabel等に表示したい場合があります。
その簡単なやりかたとか。

- (NSString *)createStringAddedCommaFromInt:(int)number
{
	NSNumberFormatter *format = [[NSNumberFormatter alloc] init];
	[format setNumberStyle:NSNumberFormatterDecimalStyle];
	[format setGroupingSeparator:@","];
	[format setGroupingSize:3];
	
	return [format stringForObjectValue:[NSNumber numberWithInt:number]];
}

この関数にint型の数字を送ると3桁ずつカンマで区切ったNSStringを生成してくれます。
桁数が大きくなる場合はlong型とかにしてもいいかもしれません。
 
 

【 #iPhoneAppMemo 】ライブラリー管理ツール CocoaPods をインストール

Share on Facebook
Bookmark this on Yahoo Bookmark
Bookmark this on Livedoor Clip

iOSアプリを作ってる時に、毎回ライブラリーをダウンロードして、プロジェクトに追加して…と面倒だし、管理が大変だなぁと思ってたら、どうやらCocoaPodsというツールが良いと教えて頂きました。

ということで、インストール手順などのメモ。

1. Xcode Command Line Toolsのインストール
僕がMacPodsをインストールする際に、どうも下記のようなエラーが出てインストールができませんでした。

ERROR: Error installing cocoapods:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/xcodeproj-0.4.1 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/xcodeproj-0.4.1/ext/xcodeproj/gem_make.out

そこで、調べてみると、どうやらXcode Command Line Toolsがインストールされていないと、MacPodsのインストールができないそうです。
ですので、インストールした記憶が無いな、という人は先にインストールしておきましょう。

スクリーンショット 2013-05-14 14.54.20.png

  1. Xcodeを起動します
  2. Xcode→Preferencesと進み
  3. DownloadsタブのCommand Line Toolsを見ます。ここでInstalledではなく、Installというボタンになっていればまだインストールされていないので、インストールします

1. MacPodsのインストール

  1. ターミナルを開き以下のコマンドを打ちます
    $ sudo gem install cocoapods
  2. パスワードが要求されるので、入力してください
  3. すると、このように表示されます
    スクリーンショット 2013-05-14 15.48.08.png
  4. 続いて、CocoaPodsのセットアップを行います
    $ pod setup
  5. 下記のように表示されればインストール完了です!
    スクリーンショット 2013-05-14 16.11.34.png