Category: "DB-Tracklayer 開発, プログラミング, 開発" , Tags: iPhone
DB-TracklayerのiPhone版(iPhone用MySQLクライアントアプリ)実現に向けて
しゃちょーより新たなミッションとして
「iPhoneから外部MySQL DBサーバへアクセスするライブラリを構築せよ!」
との指令が届いたのであります。
(※ 一部台詞は誇張しています)
アクセスライブラリと言うことは、苦い部分(データのやりとり)ばかりで、
美味しい所(GUI、アニメーション等)は一切無しという事でございます。
しかもこれが実現出来ないと、iPhone版の企画自体がボツになってしまうという
無言のプレッシャー付きでございます。
責任重大であります。
・・・と余談はさておき、iPhoneからMySQL DBサーバの情報を取得する方法ですが、
主に2つの実現方法が挙げられます。
一つは、MySQL DBサーバとiPhoneを仲介する別サーバを用意する方法です。
PHP等にはすでにMySQL用のクライアントライブラリが有りますので、
そこからDBへアクセスし、結果をHTTPでiPhoneに返してあげるという方法です。
この方法は仲介サーバさえ作ってしまえば、
HTTP通信が行える多種多様な端末で実現可能なため、
簡単に実装できて応用力が高いですが、
その反面、仲介サーバを経由するため速度面やサーバ負荷、
サーバ運用費などが問題となります。
(そもそも閉じたネットワーク環境上ですと仲介サーバにアクセスできませんし。)
そしてもう一つはiPhoneから直接DBサーバに繋ぎに行く方法です。
MySQLにはMySQL Connectorと呼ばれるクライアントライブラリが用意されていまして、
これを使えばDBへ直接接続する事ができます。
仲介サーバは利用しませんので、速度面や運用費で困ることはありませんが、
公式で用意されているライブラリは既存のメジャーなプラットフォームに限られており、
iPhone専用のライブラリは現時点では存在していません。
ただ、ソースが公開されていますので
今回はこれをiPhone用にカスタマイズすることにしました。
iPhone用の開発にはObjective-Cという言語を用いますが、
これはC言語の上位互換なので、C言語のソースはそのままコンパイルすることができます。
もともとmac os用の挙動もソースに有りますので、そこをうまく利用して
iPhoneで動作するようにソースを修正し、コンパイルを行いました。
実機からMySQL DBサーバへの接続も無事に行うことができました。
さて次に、今回使用したMySQL Connector(libmysql)はC言語を使ってアクセスしますが、
このままですと、iPhoneで用いるCocoa touchフレームワークとの相性があまり良くないので、
Cocoa touch向けにラッパークラスの製作を行いました。
主に、C言語の文字列型(char*)とNSString*型との相互変換、文字コード変換、メモリ管理等を
クラスライブラリで吸収するようにしています。
ただ、実際に使ってみるとおそらく足りない部分が多々でると思いますで
随時修正を加えていく予定です。
Language: 1 2 3 4 5
[1:日本語, 2:English, 3:简体中文, 4:繁體中文, 5:한국어]


