非開発者も知っておきたい、iOSとAndroidの「戻るボタン」の違い
どうもこんにちはJBです。
先日アプリの仕様に関するミーティングをしていて、iOSとAndroidの「戻るボタン」について場が紛糾しました(主に我々非・開発者がテンパったのです…)。
そんなわけで、普段ガッツリ開発をしない人も両OSの画面遷移について少し知っておこう!という気持ちで整理してみました。
「戻るボタン」は、よくリスト階層とかでお世話になりますよね!
今回の内容はあくまで表面的というか、非開発者視点と言うか…実際の内部処理からみると「コイツ何とんちんかんな事言ってんのマジで」ということもあると思いますが、まあニュアンスということで許してください。
それでは行ってみましょう!
まずは位置と挙動の違い
そもそもUIも違うので、戻るボタンの位置も違います。あと全体的に「戻る」感じのボタンではありますが、その挙動もちょっと違ったりします。
あくまでデフォルトの挙動なので、ゴリゴリに開発してあるゲームとか独自UIのアプリは当てはまりませんのであしからず…
iOS
iOSはナビゲーションバーの左上に、左向きの矢印と一緒に配置されます。矢印がない場合は戻るボタンというか実行ボタンだったり…まあ色々です。
これを押すと1つ前の画面に戻ります。
Android
Androidには、OS標準のBackキーが右下にありますね!こちらを押すと単純に1つ前の画面に戻ります。
とまあここまで書いてみて、
「結局1個前に戻るんでしょうよ!iOSもAndroidも同じじゃんよ!」と思ってしまいそうな内容ですが、実はそうでもありません。
同じように見えて、実は概念が違う模様
そもそもページ遷移の仕方が違うみたいなんですよね…詳しいことは何一つ分からないのであくまで表面的な感覚ですが。
iOSのページ遷移
iOSは、ストーリーボードという画面でシーンとシーンをセグエ(なんか矢印のヤツです)で結んで遷移設計します(もちろんプログラムだけでもできますよ!)。

ストーリーボードの例です。
この見た目の通り、iOSのページ遷移はシーン間を行き来する感覚です。
ナビゲーションコントローラというところでシーン間の行き来を制御しているそうです。戻るボタンは、このナビゲーションコントローラの産物とのこと。そんなわけで、iOSの戻るボタンは「1段階前のシーンに戻る」感じですね!

Androidのページ遷移
対してAndroidのページ遷移は、「Activity」という新たな画面を生成して、上に重ねていく感じで遷移しているとのこと。
Backキーを押すと、一番上の画面(Activity)がなくなって、下の画面が現れる状態になるそうです。というわけで、Androidの戻るボタン(Backキー)は「まるっと1段階前に戻る」様な物でしょうか!
よく考えると違う
比べてみると、iOSは「現在いるシーンが移動」、Androidは「全てが1つ前段階に」という感じ。これは結構大きい違いです。
実際のアプリはExitが出来たりこんな単純な動きだけではないのでアレですが、基本的な動作は知っておいた方が無難です…
AndroidにはUpボタンがある
これだけ見ると「Androidの遷移ってややこしいっす…(by iPhoneユーザーの私)」という感じになりますが、AndroidにはUpボタンなる物があります。
上のアクションバーの左には、アプリのアイコンが配置されますよね!これタップが効くのですが、通常はアプリのホームに戻ります。が、ココをUpボタンにすることが出来るそう。
Upボタンはアプリ内でのページ階層の上位へ遷移する様に設定します。もちろんプログラムで設定する必要がありますが…こっちの方がiOSの戻るボタンに近い感じですよね!場所も似てるし!
Navigation with Back and Up:Android Developers

Upボタンは左側に矢印がつきます。
まとめ
いかがだったでしょうか?
こんな感じなので、あまり開発に詳しくない人々が会議を紛糾させる訳です。
「(iOSで)戻る押すとココに戻るじゃん?」「Androidはそうじゃないよ」「何で?」「…(だって別のOSだし…)」みたいな。
OSによって前提が違うので、両OSでまるっきり同じにすることが良い事という訳ではありません。むしろデフォルト設定をないがしろにしすぎると、不親切設計になりかねないので注意が必要なくらい(もちろんちゃんと考えがあって、きちんと設計してあれば別ですよ!)。
デフォルトをきちんと頭に入れながら、時と場合によってイイ感じに設計を考えられる様になりたいと思います!
それではー!
コメントをどうぞ