Category: "DB-Tracklayer開發, 編程, 開發" , Tags: iPhone
為了實現DB-Tracklayer iPhone版本(iPhone上的MySQL客戶機應用程序)
我受了しゃちょー(Shacho 總經理)吩咐的新使命
“你去, 建立用iPhone訪問外部MySQL DB服務器的程序庫!”.
(※ 台詞的一部分是被誇大的)
訪問程序庫… 這意味只有苦的(數據交換), 完全沒有甜的(GUI, 動畫等等).
而且, 如果我們不能實現這個, 就意味iPhone的項目本身會不成功.
是沉默的壓力..
這確實是很重的責任.
…我應該回到本來的主題吧. 通過iPhone存取MySQL DB服務器上的資訊有兩個主要的方法.
第一個, 準備另外一個服務器, 讓它仲介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*類型, 字符代碼轉換和內存管理.
反正, 實際使用的時候很可能會注意到更多不足的地方. 我們會漸漸改進.


