読者です 読者をやめる 読者になる 読者になる

#7「アプリつくって売るだけじゃない。そうiPhoneならね。」tech.kayac.com Advent Calendar 2012

AdventCalendar2012 ios

いきなりウザめの記事タイトルで申し訳ありません。ガジェット大好きiOS開発者のid:SOMTDです。

このエントリはtech.kayac.com Advent Calendar 2012 7日目の記事です。

テーマは「私の中のマイイノベーション 2012」


最近、flashできないの?JSできないの?PhotoShopで切り出しできないの?と立て続けに責められて居場所を失いつつあり危機感でいっぱいです。 2、3年前まで多少チヤホヤされていたiOS開発者も今や供給過多と言われ、U◯ity、A◯Rに目移りしている開発者の方も多いのではないでしょうか。><

でもちょっと待って!この動画を見て下さい。

ご覧の通り、iPhoneをマイクとして、iPadをスタートシグナルと電光掲示板に見立てて構成しています。 iOSデバイスはスマホとしてだけではなく、こういったリアルイベントにも柔軟に使えるわけです。

今回の記事では、「iOSアプリの開発だけでは物足りない!」「もっとiOSデバイスの可能性を試してみたい!」というiOS開発者の方へ向けて少しだけ事例をご紹介したいと思います。 (みんなに「へー」とか「ほー」とか言われたいじゃないですか。。。)


事例1 「Voice Driver Cup」

まず前述の動画にあがっている「Voice Driver Cup」で実際に使用している技術について紹介します。 Voice Driver CupではiPhoneのマイクで声の大きさを受け取り、それを母艦となるmacにOSCというプロトコルを使って送信しています。

OSC(OpenSound Control)

OSC はMIDIの代替となることを意図している。MIDIは1982年に実装されたもので、
最近のマルチメディア用途には適していない部分が多い。通信プロトコルであるため、
OSCによって、楽器やMIDIコントローラや各種マルチメディア機器が屋内のネットワーク
(TCP/IP、イーサネット)やインターネットを経由して通信することが可能となる。
OSCはブロードバンド・ネットワークの速度で動作するため、
低速なMIDIでは不可能だったリアルタイム性のある新たな利用方法が可能となっている。
また、転送データの柔軟性も増しており、より高度なレベルでの通信が可能である。

実装は非常にシンプルで、送信先のアドレスとしてIPアドレスとポート番号を指定し、任意のメッセージを送ることができます。

OSCをかんたんに試したいという方は以下にいくつかのライブラリを紹介しておきます。(すべてOSCのObjective-Cラッパーです)

ObjCOSC
https://github.com/maasaamiichii/ObjcOSCSample
CocoaOSC
https://github.com/danieldickison/CocoaOSC
VVOSC
https://github.com/pascallesport/vvosc


ちなみに受け手側(mac)についてはOSCTestAppをダウンロードしておけばよりかんたんにOSCを試すことができるでしょう。

今回、具体的なコードは省きますが、上記のライブラリのサンプルを活用して是非Voice Driverみたいなカッコイイの作ってみて下さいね。


事例2 「Arduinoとくっつけよう」

巷では空前のMakerブーム。Arduinoについてはもはや説明不要な気がしますが・・・

Arduino

Arduino(アルドゥイーノ)は、AVRマイコン、入出力ポートを備えた基板、
C言語風のArduino言語とそれの統合開発環境から構成されるシステム。
Arduino はスタンドアロン型のインタラクティブデバイス開発だけでなく、
ホストコンピュータ上のソフトウェア(例えば、Adobe Flash、Processing、
Max/MSP、Pure Data、SuperCollider)で制御することもできる。
組み立て済みの基板を購入することもできるが、オープンソースハードウェアであり、
ハードウェア設計情報のEAGLEファイルは無料で公開されており、
誰でも自分の手で Arduino を組み立てることができる。

iOS開発者としてはせっかくだからiPhoneにArduinoをくっつけたくなりますよね。ぼくはなりました。
iPhoneにはもともとたくさんのセンサー類がついていますが、温度・湿度、におい、曲げセンサーなどiPhoneからは得られない値を使えるとなると、可能性が広がる気がしますね。

iOSとArduinoをつなぐために体系的に知識を得たいと思った方は下記の書籍を手に入れると良いでしょう。英語ですが、とても簡潔にまとまっており、iOS開発者のArduinoの入門としても最適だと思います。
「iOS Sensor Apps with Arduino」


この書籍で紹介されているものとは異なるのですが、ArduinoとiPhoneをつなげるために必要なものがこちらになります。
「Redpark iOSデバイス用 TTLシリアルケーブル C2-TTL」

従来、iOS向けのデバイス開発にはAppleから許可を得ないとできないというかなり高めのハードルがありましたが、こちらはそういった許可は不要で専用のSDKも用意されています。
個人のプロトタイプやテンポラリーな案件の選択肢となり、実際十分に活躍できるでしょう。

こちらは手前味噌ですが、iPhoneとArduinoをつなげて遊んでいる様子です。
曲げセンサーの曲がり具合に応じて、iPhoneの背景色と音程が変わるデモをつくってみました。
こんなに簡単にちょっとした楽器デバイスもどきがつくれちゃうんです。そうiPhoneならね。

Arduino用のサンプルコードはこちら flex_sensor
https://github.com/somtd/flex_sensor

iOS用のサンプルコードはこちら ChurchBellDemo
https://github.com/somtd/ChurchBellDemo


ChurchBell Demo - iPhone + Arduino with Flex sensor - from SOMTD on Vimeo.


まとめ

とりとめもなくかきつくれてしまいましたが、iOS大好き、ガジェット大好きな自分としては、日々Hackする対象が仕事であるってのはとても幸せなことだと感じております。来年こそはちゃんとイノベーティブな記事がかけるといいな。。。

さて明日は生粋のiOSエンジニア_ishkawaくんの登場です。今日、肩透かしをくらったあなた!明日は期待してくださいね!