# IRKitについて ### Conference With Developers 2 2014-02-01 @maaash ## 自己紹介 http://twitter.com/maaash http://github.com/mash http://maaash.jp/ ニューヨークかサンフランシスコで働きたいです ## IRKit ### opensource infrared remote controller ### http://getirkit.com/ ![background](http://farm6.staticflickr.com/5542/11931509156_42bdfe530c_b.jpg) ## ハードウェア構成 - WiFiモジュール (802.11b/g/n) - マイコン (ATMEGA32U4-AU Arduino Leonardoと同じ) - 赤外線LED x 2 - 赤外線受信器 ## 何ができるの 1 - 家のWiFiに接続 - モールス信号でWiFiの情報をiPhoneから渡す ## ![morse](http://farm8.staticflickr.com/7410/12244314343_cbe4abe0b9_b.jpg) ## 何ができるの 2 - 家のWiFiに接続 - 赤外線を送受信 ## ![learn](http://farm4.staticflickr.com/3815/12244203695_28b4b84888_b.jpg) ## 何ができるの 3 - 家のWiFiに接続 - 赤外線を送受信 - HTTPサーバになる http://irkitXXXX.local/ Bonjourで発見、ホスト名の解決 - GET /messages : 受信した赤外線信号をJSON形式でとれる - POST /messages : 赤外線を送信 ## 何ができるの 4 - 家のWiFiに接続 - 赤外線を送受信 - HTTPサーバになる http://irkitXXXX.local/ - インターネットからも http://api.getirkit.com/ IRKitはHTTPクライアントでもあり、インターネット上のサーバにロングポールしてる - GET /1/messages : 受信した赤外線信号をJSON形式でとれる - POST /1/messages : 赤外線を送信 ## 何ができるの 5 - そして **これをラップした iOS SDK** ## iOS SDK - install use cocoapods ``` $ cat podfile platform :ios, '7.0' pod 'IRKit', :git => 'https://github.com/irkit/ios-sdk.git' workspace 'MyApp.xcworkspace' xcodeproj 'MyApp/MyApp.xcodeproj' $ pod install ``` ## iOS SDK - 赤外線を送る ``` objc [signal sendWithCompletion:^(NSError *error) { NSLog(@"sent error: %@", error); }]; ``` ## iOS SDK - 赤外線を学習する ``` objc IRNewSignalViewController *vc = [[IRNewSignalViewController alloc] init]; vc.delegate = self; [self presentViewController:vc animated:YES completion:^{}]; #pragma mark - IRNewSignalViewControllerDelegate - (void)newSignalViewController:(IRNewSignalViewController *)viewController didFinishWithSignal:(IRSignal *)signal { if (signal) { NSLog( @"successfully learned! %@", signal ); _signal = signal; } [self dismissViewControllerAnimated:YES completion:^{ LOG(@"dismissed"); }]; } ``` ## iOS SDK - IRSignal IRSignal public methods ``` objc - (id) initWithDictionary: (NSDictionary*) dictionary; - (NSDictionary*) asDictionary; - (void) sendWithCompletion: (void (^)(NSError* error)) block; ``` NSDictionaryをJSON形式にしてサーバで保存して共有したりもできる ## どんなアプリがつくれるだろう - 位置情報連携して... - 音声認識して... - テレビ番組表と連携して... - ソーシャルと連携して... ## 未来 iPhoneを使って何かしようと思った時に、みなさんが既につくられているような、いろんなアプリがあって好みのアプリを選べたり、なければ作れるのは素晴らしい。 - Twitterみるとき - 写真とるとき、シェアするとき - ニュースみるとき - **家電使うとき** ## 続きは ### http://getirkit.com/ ### http://github.com/irkit/ios-sdk ### http://amazon.co.jp/gp/product/B00H91KK26 すみません品切れです。。 ### http://twitter.com/maaash