スマホアプリとメニューボタン

アプリの画面や動きを考えていたが、iPhoneAndroidではそもそものベースが異なるので、全く同じ画面で制作するのは辞めておいたほうがいい気がしてきた。

iPhoneはハードキーがホームボタンしか用意されておらず(ボリュームやスリープボタンはアプリ操作で常用するキーではないので)、基本的に画面上に表示されているUIで全ての操作を行う、というのがセオリーというか常識。UIに無い機能も、長押しとかフリックとかの操作でモードを切り替えたりメニュー画面を呼び出すことで使う。画面をキャンセルしたり画面遷移を戻ったりするときは、基本的には左上の「戻る」「キャンセル」や右上の「閉じる」のボタンを探す。
ユーザーが行き詰まることのないよう、画面操作で遷移できる構造とデザインであるべき。

一方、Androidは標準でメニューボタンと戻るボタンを持っており、ユーザーも普段の操作で日常的に使用している。アプリの画面遷移を戻るときはとにかく戻るキーを押せば戻れるし、本体設定や画面の操作にはじまりアプリ使用中も画面にない操作項目がメニューキーを押すと表示されるメニューにあることを期待する習慣がついている。
「設定」「情報」「変更」「追加」「削除」「終了」といった操作がしたい時、Androidユーザーならそれらの機能が画面UIにない場合はまずメニューボタンを押してメニューを呼び出してみる。
なので、Androidアプリは画面全体にコンテンツを展開し、タップなどの標準操作や画面上部などに配置する常用機能ボタンの機能以外をメニューから呼び出せるようにするのは常套手段と考えてよいと思われる。

極端な例として、画面にUI(画面操作系のイベント取得)が全く無い状態となった場合を想定する。
iPhoneユーザーは画面をタップ、フリック、ダブルタップ、長押しなどをしてみて反応を見てみるだろう。そして動きが無ければホームボタンでアプリを抜けるしか手がない。
一方のAndroidでは、ユーザーは戻るキーで一つ前の画面に戻ったりメニューキーでメニューを呼び出して機能を実行したりすることができるし、ユーザーもそういう事ができると知っている。

両方のプラットフォームで全く同じ画面デザインを目指してもよいが、それではiPhoneらしさAndroidらしさを十分に生かせないし、アプリ制作視点としても「なんだ、ただの移植版じゃん」的な見られ方はあまりいい気がしない。
それぞれで出来ることと出来ないこと、そしてそれぞれのユーザーを含む文化の違いを理解した上で、特にUIに関してはそれぞれのプラットフォームを意識した設計にしないといけないなーとか思う。


そして工数が増えるのであった。