メインコンテンツへ移動

モバイルサイト設計の10の常識

無料2015-03-31#HTML#移动端页面设计

モバイルデバイスは性能が低く、多くのユーザーは一度に1つのページしか閲覧しない(デスクトップブラウザのようにタブを多用しない)ため、ページのパフォーマンスが原因でユーザーが忍耐を失いやすい。そのため、モバイルサイトの設計ではより多くのことを考慮する必要がある。

1. タッチジェスチャーの選び方は?

選択をスワイプジェスチャーで表さないこと。ネイティブアプリでは、これは「削除」を意味するため。

OSのデフォルトジェスチャーを変更しないこと。例えば、長押しはコンテキストメニューの呼び出し、ピンチインは縮小、ダブルタップは拡大など。同様の基本機能を再実装できる場合を除いて。

2. インターフェースを「速く見せる」には?

ユーザーにタイムリーなフィードバックを行うこと。例えばプログレスバーや遷移アニメーションなど。また、画像のフェードイン効果も(実際には遅くなっているが)速く感じさせることができる。

3. メディアクエリ(media query)

IE8以前はメディアクエリをサポートしていない。モバイル環境では、少なくともIE10以上であるため、これは特に影響しない。

一般的な閾値:480px以下 〜 スマホブラウザ、800px以上 〜 デスクトップブラウザ、480pxから800px 〜 タブレットブラウザ。

4. 適切なセレクター(selector)を使用する

子孫セレクターを避けること。代わりにクラス(class)を使用できる。ブラウザはCSSセレクターを右から左へ解析するため、子孫セレクターは負荷が大きいため。

5. emとpx、どちらを使うべきか?

どちらでも良い。emは一時(2005年頃)流行した。当時のブラウザにフォントサイズ変更機能が備わり、emを単位にすることでフォントの変化に対応できたため。その後、IE7でデフォルトのズーム方式がページ全体の拡大縮小に変わったことでemは忘れ去られ、現在は依然としてpxが最もシンプルで直接的な単位となっている。emを使うかpxを使うかはどちらでも良く、どちらを選んでもそれほど悪くはない。

6. viewportにはどんな役割があるか?

viewportは、ビューポート(視窓)のサイズを限定するために使用される。ビューポートとは、ブラウザがページに提供するコンテナ(タイトルバー、ツールバー、タブバー、ステータスバーなどを除いた部分)のことである。viewportには広くサポートされている以下の属性がある:

width
viewportの幅を設定する。デフォルト値は980、許容範囲は200-10000。
height
viewportの高さを設定する。デフォルト値は幅とデバイスのアスペクト比から算出される。許容範囲は223-10000。
initial-scale
viewportの初期倍率を設定する。デフォルト値はページ全体が可視領域に収まるように計算され、範囲はminimum-scaleとmaximum-scale属性によって決定される。
maximum-scale
viewportの最大倍率を設定する。デフォルト値は5.0、許容範囲は0-10.0。
user-scaleable(*後ろの単語の綴りに注意*)
ユーザーがビューを拡大縮小できるかどうかを決定する。また、テキスト入力開始時のスクロールを防止することもできる。

このようにviewport属性を使用できる:

<meta name="viewport" content="width=device-width">

デバイスの幅に自動適応させる。パーセント表示のレイアウトでよく使われる。例えば、トップのヘッダーに100%の幅が必要な場合など。

7. なぜページの読み込みが遅いのか?

  1. HTTP接続数が多すぎる(またはCookieが大きすぎる)

  2. 総バイト数が大きすぎる

  3. 待機時のレンダリングブロック(外部CSSファイルや読み込み中に実行されるjsスクリプト)

  4. 遅延(3Gネットワークは約500msの遅延がある)

  5. キャッシュ効率が悪い

8. なぜアニメーションがカクつくのか?

setTimeoutによるアニメーションは極力避けること。代わりにtransitionを使用すべきである。CSSアニメーションは(JSスレッドではない)別のスレッドで実行されるため。

9. なぜfixedレイアウトが正常に動作しないのか?

モバイル環境でのfixedレイアウトには、viewportのメタ情報 width=device-widthuser-scaleable=no を追加する必要がある。例:

<head>
<meta name="viewport" content="width=device-width, user-scaleable=no"
</head>

ユーザーがページを拡大縮小してレイアウトが崩れるのを防ぐため。

10. ページのパフォーマンス測定ツールには何があるか?

  • YSlow:Yahoo!によるツール。ページをスコアリングし、各指標を評価して最適化案を提示する。
  • PageSpeed:上記の機能に加え、モバイル最適化もサポートしている。

上記の2つのツールには、FirefoxとChromeのプラグインがある。

参考文献

  • 『Building Touch Interfaces with HTML5』(邦題例:『HTML5タッチインターフェース設計と開発』)

コメント

コメントはまだありません

コメントを書く