世の中、猫も杓子も iPhone です。
という訳で iPhone アプリを作ろうかと思ってしまうのが人情というものです。
ところが実際に iPhone アプリを作ろうとすると色々と障壁がありますし、
作成したアプリを公開しようにも色々と手間がかかります。
既にこの初期投資を終えているなら問題はないのですが、一から始めようとするとなかなか難しいものがあります。
となると iPhone 用のウェブアプリケーション を作る方が手っ取り早いということになります。
これなら既に手に馴染んだ言語でアプリケーションの作成ができますし、 Heroku 等を利用すれば公開もすぐにできます。
しかし、この方法には別の問題があります。
一体どうやってネイティブアプリケーションと同様のルック・アンド・フィールをクライアントサイドで実現すれば良いのでしょうか?
色々と選択肢はありますが、まずは iUI を使ってみましょう。
これは iPhone のネイティブアプリケーションと同様のルック・アンド・フィールを実現するための CSS と JavaScript のフレームワークです。
一定の規則に従ってマークアップすれば普通のウェブアプリケーションから簡単に iPhone アプリライクなウェブアプリケーションに様変わりさせることができます。
チュートリアルを一通り読めばすぐに全体像は把握できるのですが、一応要点をまとめておくと以下の通りです:
<body> の子要素のうち id 属性と title 属性の両方を持つ要素がアプリケーションの画面(iUI では “screen” と呼ぶ)として使われます。<div class="panel"> を使うと Settings 等と同様のグレーの縦縞の背景になります。<ul> を使うと <li> の表示が Music 等と同様のリスト表示になります。 <li> の中に <a> が含まれていれば右端に > 記号もちゃんと表示されます。selected 属性の値が true になっている画面(要素)があればその画面が最初に表示されます(ただし別の画面の URI を直接開かれた場合はその画面が表示されます)。<body> の子要素に <div class="toolbar"> があると、それが画面上端で常に表示され続けるヘッダー的なものになります。title や以前の画面への「戻る」ボタンは適宜表示・更新されます。<div class="toolbar"> 等を記述すれば特定の画面用にヘッダーをカスタマイズすることもできます。また、若干ハマりそうな点としては以下のものが挙げられます:
title に日本語を含めると iPhone で表示した際にベースラインが下の方にズレて表示されるため悲しいことになります。以下のような定義を追加しておくと悲しみが薄まります: .toolbar { line-height: 22px; }id に _ と ? は含められません。 ? はともかく _ は結構ハマります。 iUI のコードを確認しないと分からないですし。これを応用すればハートオブクラウン用のサプライ選択ツール (*)を初め、 iPhone アプリライクなルック・アンド・フィールのウェブアプリケーションを量産し放題です。やりましたね。
(*) … これ自体はアイデアを思いついてから iUI について調べつつ2時間くらいで作った代物なので、 iUI の使い方の例としてはかなり歪なことをしているので参考にしない方が良いです。