∞ 前言 ∞

由於現在各種 UI 設計都是遵照 iOS 的設計在底部放置 tab
然後使用流程又想像 iOS 那樣做畫面切換
這點在 Android 來說是非常不直覺以及徒增 Android Developer 的煩勞

這就是自認為完全仿照 iOS 設計 app 即可,節省額外設計 Android 的成本
但是換來的就是增加 Android Developer 的成本
以下會敘述 Android 與 iOS 的使用流程是如何根本上的不同

在這邊會先不提一些特殊設計的 UI
也就是幾乎不照 Guide line ,完全由設計師自己設計的畫面
當然前幾天發表的 Android L 也不在這討論,因為還沒玩啊!

Android Design

我想 Android 的使用習慣與介面只要看 gmail 或 Google+ 即可
他們皆採用的 Drawer 去做滑動頁面的功能選項
點擊後就開啟新的畫面,這裡在 Android 是直接使用 Intent 去做呼叫

然後返回鍵可以回到上一個畫面,Home 鍵可以跳回桌面
這些預設好的設計都是與 iOS 的不同
而且這也是最基本的流程

另外還有個不同就是 Android 的 ActionBar 會帶 icon 圖, Title 也習慣置於左側,功能放右側
這也與左右兩側拉動 Drawer 的相關設計有所聯動
這大概就是我們能看到的 Android Default Design

IOS Design

而 iOS 的預設畫面就是底部有 tab ,可做畫面的切換
但與 Android 很大的不同就是,他底部的 tab 就像 Android 的預設功能鍵一樣常駐在 app 底部
所以在切換畫面的時候 tab 並不會被動到,所以在 tab 之上的畫面就可以一直做切換

然後是 Title bar , iOS 的 Title 都置於中間,左右兩邊是功能
左邊幾乎會是返回上一頁的 back ,而右邊就是其他功能鍵
因為 iOS 沒有預設 back 鍵,所以這是必要措施

Design 結合

這幾個月下來也看過不少 iOS 套用 Android 的 Drawer (其實 iOS 本身就有了印象中?)
而 Android 則是大量套用 iOS 的 tab 與其切換流程
由於我是 Android 開發者, iOS 還算初學,就不談 iOS ,純粹論 Android 的部分

其實 Android Desing 要仿 iOS tab 是非常沒有問題的
但重點在於「使用者習慣」與「流程」
很多要仿 iOS 的設計就連流程也要仿 iOS ,在這點上其實是讓 Android 開發者十足吃儘苦頭

為什麼我會這麼說呢?
因為要達成 iOS 畫面切換,底部 tab 卻不能動到的效果,除了 Fragment 或是 Layout 切換 外,是根本不可能達到的
要以 Intent 來達到相同的效果也不行,因為畫面顯示出來的效果是有差的

1. 使用 Intent
Android 開一個新畫面會是像彈跳視窗一樣跳出,而非像 iOS 那樣的流暢切換
所以在視覺上這個方式的達成度就很低
這樣的呈現效果自然在設計上就打了回票,當然如果要濫竽充數也是可以直接使用,畢竟花費的工是最少的
2. 使用 Fragment
Android 本身提供了 Fragment ,可在 Activity 間做切換, Fragment 必須存於 Activity 底下,這與 LifeCycle有關
而要達成 iOS 的效果,這可以說是非常符合的,但是,有用過 Fragment 的開發者就會知道
要完美操控 Fragment ,以達到可以無限切頁的效果,只能說是非常困難
因為在這之上除了畫面呈現的問題外,還有 Fragment 本身釋放與記憶體殘留的等等問題
為了仿 iOS 畫面設計而失去了軟體穩定度,這是非常要不得的
3. 使用 Layout 切換
使用 Layout 做切換有兩種方法,一個是動態產生,用程式產生出來;另一個是做好 Layout ,程式只要做 addView 的動作

這兩種方法各有優缺點
第一個動態產生,可以讓 Memory 做到最大的優化,不至於 Memory 到最後都無法釋放,但是畫面顯示就會有些不順暢
第二個做好 Layout 再做 import ,就有可能讓你當下畫面的記憶體爆表
等於是有一好沒兩好,當然這些在程式上還是可以做優化的
只是耗費的工與成本跟直接設計成 Android 使用者習慣是差距非常大的

當然以上敘述並非說完全不要仿 iOS Design ,真正的重點在於流程不應該完全 copy iOS
連讓 Android 使用者習慣的流程都不想設計,只想套用 iOS 的設計節省自己的工的 Designer
我想真的不要被我給遇到,因為這是非常差勁的一個工作態度,更該說:「你根本不專業。」

至於某些 UI 仿 iOS 我真的沒什麼意見,包含 tab 的使用,在畫面 UI 的呈現上我反而滿喜歡 iOS 的
但是其中我們必須套用 Android 的使用流程,而非 iOS 的使用流程,這是其中最大的差異
否則,那種完全不人性化而且問題爆多的爛設計,就現在的我來說我絕對會打槍到最後

不改設計就給我增加開發時間,否則拉倒!
以上是身為一個 Android 開發者,卻在最近看到一堆完全不想改流程的 Design,感到很憤怒的言論。

附註:跟我合作的 Designer 可都是拼了老命在做設計啊!這群連 for Android 設計都懶得偽 Designer 我可不認同~

Comments

comments powered by Disqus