by @mixiappwchr
昨今ウェアラブルデバイスやらiBeaconやらスマホ以外のデバイスが盛り上がってきてますが、今後はより、スマホを起点とした外部デバイスとの連携サービスが益々重要なってくると思います。
そこで、これからスマホと外部デバイスの連携開発を調査できれば思います。
まずは、そのコンセプトの面白さから話題となったSonyのレンズカメラQX10/100との連携をさせてみたいと思います。
このデバイスはコンセプトも面白いですが、何と言ってもAPIが公開されているので夢が膨らみます。
そこでiOS向けのライブラリがなかったので作ってみました。
SonyCameraRemoteAPI
基本的にJSONRPCで扱えるので取り回しは楽なのですが、ちゃんとやるとSSDPでの機器検索やliveプレビューは、生パケットの処理があったりするのでその辺もカバーしました。
まだハンドリングが甘いので調整が必要ですが、例えばカメラから取得した画像をGPUImageで処理するなんてことが可能です
例:プレビュー画像に対してフィルタ処理をかける。
self.client = [[SonyCameraRemoteAPIClient alloc] init];
__weak __typeof(self)weakSelf = self;
[self.client discoverDevices:^(NSDictionary * result, NSError *error) {
weakSelf.shootButton.enabled = YES;
weakSelf.statusLabel.hidden = YES;
[weakSelf.client captureLiveview:[result objectForKey:@"liveviewstream"] captured:^(NSData *result, NSError *error) {
UIImage *image = [UIImage imageWithData:result];
if(!image){
return;
}
dispatch_async(dispatch_get_main_queue(), ^{
GPUImageSwirlFilter *filter = [[GPUImageSwirlFilter alloc] init];
[filter setAngle:0.3];
UIImage *filteredImage = [filter imageByFilteringImage:image];
weakSelf.imageLayer.contents = (id)filteredImage.CGImage;
});
}];
}];
その他、細かい制御もAPIで操作可能なのでぜひ面白いアプリを作ってみてください!
appwchr post
[iOSの開発をする上で絶対に使うべき!外せない!webサービス、開発ツール集]
(http://qiita.com/appwatcher/items/07a3babcb9b6cefb307e)
[iOSでこんなアプリ,こんな機能を作りたかったらこれを見ろ!作りたいアプリに対応するクラス、フレームワーク、ライブラリのまとめ!]
(http://qiita.com/appwatcher/items/b02255026a3ee6d95142)
[注目のiBeacomなどの波に乗り遅れないために!iOSのBluetooth開発を容易にするライブラリを書きました。]
(http://qiita.com/appwatcher/items/7491beffd7260b713542)
[まだまだあった!iOSの開発を劇的に改善する最新のwebサービス、開発ツール集1]
(http://qiita.com/appwatcher/items/f0024fe2ac34da345f04)
[さらに快適なアプリ開発を!iOSの開発をもっと劇的に改善する最新のwebサービス、開発ツール集2]
(http://qiita.com/appwatcher/items/c15d7311e71b4c2b77f1)
[スパゲッティから脱出!iOS開発における遷移の問題をすっきり解決する便利ルーティングライブラリをご紹介]
(http://qiita.com/appwatcher/items/259e8d13fff0547e90af)