自宅サーバで、PHP+ZendFramework+SmartyでWebアプリを作り、Mac上ではAppleScriptをベースに少しのObjective-Cを加えたアプリケーションを加えた自作ソフトで再生履歴をサーバへ送信してデータベース化している。
先週まで、データベースのテーブルはマルチアカウントに対応していた(これは構築時から)のだが、送信するアプリケーションでユーザ情報を設定できなかったので自分以外の利用はできなかった。必要なかったからしなかったのだけれども。
とりあえず、その部分を修正してアカウント(メールアドレスとパスワード)を入力できるようにして保存する仕組みを追加し、合わせてサーバ側のアプリケーションも若干修正した。
また、通信部分も、URLAccessScriptingというアプリケーションをAppleScriptでtellすることで行っていたものをObjective-Cで記述し直した。今ならiPhone用に情報がネット上に転がっているから参考資料には事欠かない。Objective-Cで書き直した理由は二つあって、一つは受信データをファイルに保存しなくてよくなること。保存する必要は全くなく、またユーザ情報を設定できるようにしたことで不特定のユーザが利用できるアプリケーションになった(公開していないけど)のでファイルの保存場所も決められなくなったと言うこと。二つ目は受信データを解析してより詳細にステータスを見たくなったこと。URLAccessScriptingでファイルに保存して、AppleScriptでファイルを読んでデータを解析するのなら、Objective-Cで受信して、そのまま受信データを解析した方が無駄がなく速くて楽。
ということでとりあえず修正が終わってデバッグ中だけれども問題なく動いている。実は同じ動きをするWindows用のアプリケーションをC#.NETで作ってはいるのだが、iTunesにCOMでアクセスしたときにiTunesのプロパティウインドウを開いていると例外が発生するというバグをとってなく、また今回のアップデートを施していない上に、自分がWindows上のiTunesを再生目的で使わなくなってしまったので更新しなくなってしまった。
ユーザ登録画面とか作ってlast.fmみたいに運用してみたいとも思うのだけれども。
コメント