Webアプリをネイティブアプリのような表示に [iPhone]

ウェブサイトをiPhoneネイティブアプリのように、アドレスバーやツールバーを非表示にする方法をまとめました。これによってObjective-CやSwiftを覚えずとも簡単なウェブアプリを発信する事ができるようになります。

まずはこの技術を使っているサイトをご紹介します。
iPhoneでサイトアクセスの後に、フッターからホーム画面に追加を選択すると、アプリとしてウェブサイトが起動します。

参考サイト

四季電車
http://nulldesign.jp/shikidensha/
こちら手前味噌ですが、こちら、先日行われた東京メトロオープンデータコンテストで入賞させていただきました!

Forecast
http://forecast.io/
非常にグラフィカルで美しい天気情報サイトです。

メリットとデメリット(気をつけるべき点)

何事にもメリットとデメリットが存在します。この方法も例外ではありません。

メリット

  • HTML系の言語を知っていれば比較的用意にコンテンツを立ち上げる事ができる
  • 安定したウェブ制作技術がそのまま転用できる
  • ストア申請の必要がない

デメリット(気をつけるべき点)

  • iPhoneの仕様が変わると使えなくなるリスクがある
  • ホーム画面にショートカットを追加する方法があまり認知されていない
  • 非同期通信(Ajax)が使えない。(同期通信は今のところ大丈夫のようです)

実際の設定

HTML

アプリモードで立ち上げるための設定

ステータスバーの設定

  • default:不透明(デフォルト色)で表示
  • black:不透明(黒)で表示
  • black-translucent:半透明で表示

ウェブクリップアイコン

  • apple-touch-icon: 光沢あり
  • apple-touch-icon-precomposed: 光沢無し

アプリアイコン時の表示名

アプリ起動画面

基本的には画面の高さ-20px(バーの高さを引いた数字)が軌道画面のサイズとなります。

 

JavaScript

サイトアクセス時と、ホームから立ち上げたときの振り分け

対応例

 

CSS

アプリ時に設定したおいた方がいいCSS

  1. アニメーションは基本的にCSS3で行う
  2. グラフィックを使ったUI要素は極力背景に設定する

以前よりスマホの処理能力は上がっているとはいえPCと比べればまだ非力な事は否めません。
CSS3のアニメーション処理などを用いることで、快適な操作性が担保されますし、バッテリーの消費も抑えられます。積極的にパフォーマンス向上に取り組んでいきましょう!

 

最後に

上記手法を使う事で、ネイティブアプリ以外でもアプリのような挙動を持ったコンテンツを作る事ができます。ただ、この方法ではiPhoneの機能を完全に使う事はできません。(iBeaconやプッシュ通知など。。。)
制作物に求められる機能によって、作り方を変えたり、さくっとHTMLでデモコンテンツだけ作る・・・といった使い方ができるのもいいですね。

●この記事を書いた人