Mac OS X用のSafariそのものの機能を自分のアプリケーションでも使える、というのがWebkitだ。コードを1行も書かなくてもWebブラウザが作れてしまうという代物だ。
当初は自分でも面白がって、Webブラウザを作って自己満足にひたっていた。
しかし、Webkitを使って「Webブラウザそのもの」を作るのは、苦労が多い割に得るものが少ないような気がした。すでにSafariが使える状態にあるのだし、豆腐をミキサーにかけたものを使って豆腐を作る行為、とでも言うのだろうか。自分としてはそこに意味を見いだせない。
Objective-Cでゴリゴリ作れればよいが、AppleScriptからではWebkitの通りいっぺんの機能しか叩けないということもある。
もし、徹底的にやるとなれば「ページ内容を縮小イメージとしてディスク上に落とすWebブラウザ」でも作ってみたいところだが、なかなかとっかかりがないのでそうもいかない。
そこで、Webブラウザそのものではなく、別のものを指向することになる。
一番最初に目をつけたのは、Webkitをデータのビジュアル化のために使うという用途だ。催し物のスケジュールを表示するのに、時間に応じて表示幅を変えるとか、進捗状況に応じて表示色を変更したい場合に、一番手っ取り早くて簡単なのは、HTMLで表示用のデータを作成して、Webブラウザで表示させることだ。
このあたりはAppleScriptのお家芸ともいえるジャンルであり、Webブラウザを自動で起動してテンポラリのHTMLを表示させて視認が行える。もちろん、Webkitをこの用途に使えるわけで、サイズや配置などは自分で自由に指定できるので、「部品」として有効に機能してくれる。
最小限の労力で最大限の効果を考えるのであれば、ベストな選択といえるだろう。こうしたデータのビューワとしてWebkitをアプリケーション内で用いるのは、割とよい方法だと思っている。
アプリケーション内でFlashによるベクターアニメーションをUIとして利用したい場合にも、Webkitは使える。QuickTimeプレーヤー(Movie View)でもFlashは再生できるが、かなり限定的な扱いになってしまう。ActionScriptなどは有効にならないし、ユーザーの動作に対して反応させるのは無理だ。
そこで、画面内にごくごく小さなWebkit(Webview)の領域を作成して、そこでFlashを再生。Webviewは本物のWebブラウザの機能をすべて備えた高機能部品なので、フルスペックのFlashの機能が使えることになる。OS標準のGUI部品だけでは表現し切れないものを、この手で実現できたりする。ユーザーへのガイダンスをFlashで作っておいて、入力や操作に対してアニメーションで指示を行うといった用途を考えている。
まだある。
ローカルのWebサーバの機能を使ってアプリケーションを作るという話は、一昔前では冗談でしかなかったが、システムのパフォーマンスが大幅に向上し、Mac OSの基礎部分がUNIXそのものになって各種ツールがUNIXレイヤーに転がっているという状況を生かせるため、かなり現実味と説得力を持つものとなった。
こういうWebベースのアプリケーションに対して通常アプリケーションと同様のメニューやUIを与えるためにWebkitは使える。「動きを非常に制限したWebブラウザ」としてWebkitをアプリケーションに組み込み、そこでブラウザベースのアプリケーションを動かすのだ。
Mac OS Xになって、cgiベースのプログラムが「Mac OS X用」として紹介されることがたまにあるが、一般ユーザーにとっては利用はおろかインストールさえできないレベルのものが多くて辟易する。だが、そういうユーザーフレンドリでないプログラムにも、UIを与えることで通常のアプリケーションのフリをさせられるというわけだ。
現行のWebブラウザに対しては山ほど文句がある。それを自分で解決するために、Webkitを用いるというのもよいだろう。ブックマークに不満があるのなら、ブックマークの部分だけを作ることに専念できるというわけだ。
アプリケーションの一部品としてWebkitを使うのは、非常にクールで有効な手段だと思っている。