iCab 4.1.1のSQL API対応で[-]:dashmarkが動いた

長らく存在を忘れていた(失礼)iCabがいつのまにかWebKit Frameworkを使ったモダンなブラウザに生まれ変わっていたので、4.0.1で[-]:dashmarkを試してみたら、惜しい、CSS Animationは問題なく動くものの、肝心のWebkit SQL APIHTML5 Client-side database storage)が正常に動作しなかった。dbのファイルを置くべきディレクトリが指定されていなかったためだ。

そこで、作者のAlexander Claussさんに連絡して、WebKitSQL APIに対応していただいた。下の画面はiCab 4.1.1でiCabのWebサイト上で操作している[-]:dashmarkの状態。2つのテーブル、3つのView*1が連動して、タグの集計や日付の制限などを行っているが問題なく動作している。
Now, iCab supports WebKit SQL API

実際のところ、現時点でSQL APIを使っているライブなアプリケーションを拙作[-]:dashmark以外に知らないので(なにかあれば、だれか教えてほしい。ほんと。SQLJavaScriptも始めたばかりに近いのでお手本があれば大変助かるんだ)、ほとんど私と数名のユーザー*2のための実装となってしまっていることだろう。しかも、私が知る限りiCabを使っている[-]:dashmarkのユーザーはいない……。手間だけ掛けさせてしまったようで本当に申し訳ない>Alexandarさん。

メールのやり取りでわかったことだが、AppleSQL APIを実装していながら、これを他のアプリケーションが使うためのドキュメントやAPIを用意していなかったようだ。そのため、dbを格納すべきディレクトリが不明となり、ファイルの容量不足などのときに発生するエラーが出ていた。

今回iCabが選んだディレクトリは~/Library/Webkit/。ご想像通りAppleWebKit.appも同じディレクトリを使うので、[-]:dashmarkのデータベースをシェアできてしまう。ちなみにSafariは/Library/Safari/だ。有り体に言うとCookieがブラウザを超えて利用できてしまうような形態だが、WebKit Frameworkを使うブラウザやWebViewを使うアプリケーションでは明示的に実装しない限りCookieは共有されるので現状と変わらない。ま、いいか。

いずれにせよ、Alexander Claussさん、ありがとう。今度Webのキオスク端末作ることがあったら*3またiCabを購入するからね。

次はSafari for iPhone / iPod touch OS 2.0用だ。がんばろ。

*1:モデリングがまずかったので今週末アップデートする0.4で大幅に変更します

*2:数名でライブなアプリケーションという私も厚顔だな

*3:10年ほど前にキオスク端末作るとき、購入してるんだよね。