今日は目先を変えてiPhoneアプリ開発者用のHTTPサーバーである「CocoaHTTPServer」を紹介したいと思います。iPhoneアプリとPC/Macでデータをやりとりする場合、iPhoneでHTTPサーバーを起動し、ブラウザでそのURLにアクセスする方法を使うことも多いと思います。「CocoaHTTPServer」を使えばiPhoneアプリにHTTPサーバー機能を簡単に組み込むことができます。
次のような特徴を持っています。
- bonjourブロードキャストのサポート。
- IPv4 と IPv6のサポート。
- Cocoaソケット・ストリームを利用した非同期ネットワーク。
- Digest認証。
- TLS暗号化サポート。
などなど。ライセンスは「New BSD License」なので商用iPhoneアプリにも問題なく組み込めそうです。
■サンプルプロジェクトのダウンロード
とりあえずiPhone用のサンプルコードは、Downloads - cocoahttpserver - Project Hosting on Google CodeからiPhoneHTTPServer3.zipをダウンロードすればよいようです。
ダウンロードしたらzipファイルを展開し、xcodeでビルドすればサンプルプログラムが起動するはずです(SDKが古いのでプロジェクトの設定でそこだけ変更する必要があるかもです)。スイッチを"ON"にしてSafariなどでURLにアクセスすれば動作が確認できます。ファイルのアップロード・ダウンロードが可能です。
■最新版ソースの利用
サンプルプロジェクトに含まれているソースは古いのでSubversionを使って最新ソースを取得するよう推奨されています。Subversionクライアントを使ってcheckoutします。
# Non-members may check out a read-only working copy anonymously over HTTP.
svn checkout http://cocoahttpserver.googlecode.com/svn/trunk/ cocoahttpserver-read-only
■カスタマイズ
この後はMyHTTPConnection.mに含まれているhttpResponseForMethodをカスタマイズして望みのレスポンスを返すよう修正していきます。ファイルのアップロード処理・ダウンロード処理はすでに実装済みなのであとは見た目をカスタマイズをするなどすれば実際に使用できそうです。
■まとめ
iPhoneアプリ開発者の方でデータのバックアップ・リストアに使える組み込み可能なHTTPサーバーを探している方は便利につかえるのではないでしょうか。ドキュメントはあまり用意されてないみたいですが、一度なれてしまえばいろいろなシチュエーションで使えそうです。
■CocoaHTTPServer
http://code.google.com/p/cocoahttpserver/