2012-03-01

iOS與Android軟體開發上的差異

這是PTT上的一篇文章 十分有趣



作者: hysteresis (magnet) 看板: Android
標題: Re: [請益] 請問iOS v.s. Android
時間: Tue Feb 28 18:06:51 2012

從一個app開發者的角度我也說一下意見。不願看長文的話 - 我的意見是大部分
android app 怕是再看得見的未來都無法追平ios app的體驗

我曾在iphone板發文說過硬體的進步不應該受到軟體的約束,所以雖然4"的螢幕會導致
用戶沒法單手觸碰到螢幕的角落,但是一個app能否單手操作是由app開發者來決定
不能因噎廢食而限制了硬體的發展

結果被噓的很慘

即使這樣,我還是堅持我的觀點 - 是軟體開發者的責任來讓用戶由好的體驗
直到後來我收到了一頁又一頁的android用戶的意見反饋

那時我腦海里的第一反應是,老婆,我好像淌了趟混水...

我的第一個觀點是過多種類的硬體限制了軟體的最優化

twitterific的作者說過,一個好的app,就是 keep polishing, polishing and ...
用戶體驗是很玄的東西,雖然是因人而異,但通用的標準是讓用戶獲得的結果符合他的
預期,自然且不突兀

從一個開發者的角度去琢磨用戶的預期,其實就是開發者對 人本身 和對 人性 的理解

所謂人本身,包括握機的方式,男生和女生的拇指的長度差,手指關節自然的角度
通過對我們自己的瞭解,就能判斷出最合適的按鈕的位置,使用甚麼手勢

所謂人性,包括用戶對每個動作的結果的預期,用戶對每個UI元件的理解
通過顏色或者動畫的效果對用戶的每個操作給與反饋就是一個很好的例子

通過對我們周遭的人的抽樣我們是可以得到很多的數據的,我就有一份自己總結的iPhone
和iPad里的拇指操作的熱區死角的統計文檔。
其他的app開發對這個問題做的研究更為透徹,淘寶UED team甚至把iPhone的螢幕
劃分為4x4的格子,對每個格子的誤操作率都是有很詳細的統計數據

但是這些數據在 android 開發上完全沒用,因為對於3.2" - 5.3"的跨度
即使存在對每種尺寸的螢幕的統計數據,在app開發的時候如何統一的使用以達到最優化
也近乎是一項不可能的任務
很多用5.3"手機的用戶已經是雙手操作了,怎麼能指望一個app能優化多樣操作方式呢?

這些都還是大部分app開發接觸的sdk表層,在硬體層面android和iOS相比還有先天的問題
我一直很奇怪我自己的程式,在iPhone和DHD上的點靠近頂部的tableview / listview
的單元的時候,DHD上的誤操作明顯比iPhone上的多,甚至在DHD上的cell高度還是大的
後來我寫了個程式專門去測試我的拇指的觸控和我的預期
在拇指快按斷了之後我發現統計上 iPhone 對拇指的形狀的辨識比 DHD 好 - 區域相關
對app開發者而言,我們從系統獲得的是一個接觸點,但螢幕實際接觸的是一個皮膚面
如何通過對人體的認識把面轉化成用戶期望的接觸點,是需要硬體方面更多研究的

所以雖然很殘酷,但是我相信各位android用戶的手機里的app
絕大部分都是 可用 而不是 好用
因為你永遠不直到開發者針對哪些尺寸做了優化,而你的手機可能就是那個被遺忘的

我的第二個觀點是android還遠不是一個成熟的系統,限制了app的開發

所謂成熟的系統,就是開發者能在寫程式的時候寫的代碼能獲得他期望的結果

在做iOS开发的时候,我做最多的事情是思考app要做成甚麼樣子,怎麼實現這些功能
除了蘋果明確在sdk里不提供的功能外,雖然蘋果有很多限制,但是絕大部分還是可做的
某種程度來說,蘋果的很多限制,其實是為一些有創造性思維的開發者提供商機...

扯遠了

而我在開發android app的時候做的最多的事情是 - 找出why this call doesn't work
為了修bug,我幾乎把android的源代碼都仔細看了一遍才明白為甚麼會出問題
這不是一個android開發者應該幹的事情吧我想

對比iOS和android的開發說明文檔,差距是非常明顯,蘋果會明確的告訴你每個函數
的具體作用,有各種可能的問題的說明,還會在class reference旁配開發案例
android的開發文檔,你永遠不會直到某些屬性的預設值是甚麼,具體怎麼使用?麻煩
你另開一個瀏覽器窗口去搜吧...最要命的是文檔也缺乏有甚麼是特別需要注意的

我的app第一個版本用戶反饋一個webview上的分段按鈕功能不起作用
我的測試結果是debug版是沒有問題的,但是release版確實不起作用
就這樣掙扎了一週,我都要去看java編譯器源代碼的時候,
我終於在某個不知名的keyword搜尋下找到了罪魁禍首
是 proguard 把 javascriptInterface 的方法名全精簡了導致js無法和app溝通
解決問題的那一刻我很囧,開發者的時間真不值錢麼
既然proguard在sdk9里已經是標準配備了,google就不能在webview文檔里警告一下麼?

android系統的問題遠不只這些,源代碼看得越深入,越覺得這個系統的缺陷很多
雖然我相信很多java開發者對資源對記憶體的管理是 I Don't Care的
但是作為一個資源本身少的可憐的手機系統,處處留有資源使用和記憶體洩露的地雷
無論如何都看不出是我心中那個超級崇拜的google的作品
也許是我對google其他的產品代碼沒有研究的的緣故吧

到點吃飯了,就說這麼多吧,開放大家繼續吵架。只是基於上面兩點,我確實無法承諾
我的android app能給android用戶和iOS一樣的體驗,雖然我努力改寫了很多android
的元件...


※ 引述《qwertr (戰士)》之銘言:
: 最近想辦智慧型手機,但是有些疑惑,想請問一下目前APP還是IOS比較多&廣嗎?
: 雖然說好像有些是ios/android都會出的,似乎很多還是IOS版的會早很多出來,
: 另外就是台灣Android market聽說是不能買付費的軟體,
: 這樣是不是相對的APP就更少,不知道這2種系統都玩過的用戶可否給些建議
: 謝謝大家~

--
※ 發信站: 批踢踢實業坊(ptt.cc) 
◆ From: 137.132.16.171
推 chodaict:設計師的血淚控訴                                       02/28 18:12
推 dendrobium:有用過心, 給個推!                                    02/28 18:14
推 cola1230:沒錯 android 觸控位子常失準 網頁點擊常發生有落差       02/28 18:24
推 Kamiyu:我也覺得螢幕尺寸大不同是個很大的問題...                  02/28 18:34
推 Wcw5504:推一個 您寫的miu ptt也是很好用的app                     02/28 18:58
推 m615:中肯推 之前最早的幾篇文就推過..android的問題就是太多元...  02/28 19:03
推 jakevin:(拍) 到後面變成app 能用是你幸 不能用是你的命            02/28 19:06
推 widec:看來android的問題是原生的...而非市佔率或獲利上的問題...   02/28 19:10
推 Lingoqueen:Android不改路線,2015年就是iOS跟Windows Phone鼎立    02/28 19:12
→ widec:個人是認為只要微軟認真投入 WP鐵定吃掉安卓大餅             02/28 19:19
→ cash35:這篇好專業....推                                         02/28 19:21
推 dichotomyptt:WP吃掉大餅? WP現在說的 跟當初WM說的是一模一樣的    02/28 19:24
推 Lingoqueen:樓上大概不知道Lumia在歐洲賣到翻掉吧                  02/28 19:31
推 cash35:就用戶體驗上 WP和WM完全是不同的東西(管的比iOS還嚴格...)  02/28 19:32
→ cash35:我個人也很看好WP7的發展就是....只是需要時間              02/28 19:33
推 dichotomyptt:如果是 那很好阿 只是把WM的都當白老鼠-.-            02/28 19:33
→ dichotomyptt:當初WM也是賣到翻掉阿XDDD HD2就是例子               02/28 19:33
→ dichotomyptt:那是後來又出可以改機 延長他的產品週期              02/28 19:34
→ s1an:W那家很重視用戶體驗這東西                                  02/28 19:36
推 Ormmmmmmmmmm:推 可是看不懂T^T                                   02/28 19:38
推 Lansbury:推miu ptt作者 氣度就是勝過某個不更新的廣告王           02/28 19:41
推 Knightaco:推 開發很辛苦                                         02/28 19:42
推 jumbotest:愛你喔                                                02/28 19:43
推 Lingoqueen:微軟看到iOS才知道什麼是智慧型手機,所幸把WM砍掉      02/28 19:43
→ Lingoqueen:跟這次是截然不同                                     02/28 19:44
→ noonee:說實話  看完這篇的感想是 某種程度上還是不脫freeclouds    02/28 19:46
→ noonee:的那篇文的結論                                           02/28 19:47
→ alex55555:看到有人亂入開酸還滿好笑的 免費軟體也要分派系喔?      02/28 19:50
推 Lansbury:freeclouds太直接的結果就是被噓 這篇只是轉個彎          02/28 19:50
→ alex55555:而且沒bug 更新不更新又有甚麼差別                      02/28 19:52
推 cash35:freeclouds那篇不是只想婊HTC嗎XD                          02/28 20:02
推 rexagi1988:f就只是個鍵盤評論家  原PO至少是開發者...             02/28 20:04
→ noonee:結論在文章前四行  不在文章後面                           02/28 20:10
推 cash35:聰明人用android 懶人用iOS這樣(?)                         02/28 20:11
→ cash35:這篇講的東西跟freeclouds的結論完全是兩回事吧             02/28 20:12
→ noonee:一體的兩面                                               02/28 20:14
推 wayne0411:插嘴問一句,一樣是open source,linux有這些問題嗎?       02/28 20:20
→ noonee:也有 程式良莠不齊  不同的硬體時常各自不同的問題          02/28 20:22
推 sirlers:原po是在說App層的開發者還要去看framework的code這件事的  02/28 20:23
→ sirlers:荒謬...                                                 02/28 20:23
推 kira925:linux當然有 但是linux的code是公開的 公開的你不爽你可以  02/28 20:32
→ kira925:自己改 而且通常你都能找到人幫你修改(或者是其他替代方案  02/28 20:33
→ kira925:Android是假的Open Source 所以寫APP的在這種事情無能為力  02/28 20:33
→ noonee:樓上說的這才是值得討論的地方~                           02/28 20:34
推 kira925:不過完全Open Source+自由修改的缺點就是分歧性很大        02/28 20:35
→ kira925:所以Fedora的不一定能丟上Ubuntu OpenSUSE寫好的Fedora     02/28 20:36
→ kira925:也不一定能動                                            02/28 20:36
→ noonee:正是如此  所以想省事  就統一硬體 統一軟體環境            02/28 20:43
推 pttdog: 推設計師   希望繼續開發及維護 Android app               02/28 20:44
→ noonee:核心完全由同一批人維護 應用軟體也完全遵守既定規範        02/28 20:44
推 mos888tw:朝聖!! 敝人愛瘋就是使用miu ptt 感覺有勝出miu term!!    02/28 20:44
→ noonee:這兩者 沒什麼優劣勝敗 只是一種哲學的選擇                 02/28 20:45
推 kira925:但是Google兩邊都失敗阿XD                                02/28 20:47
→ kira925:說開源,參與到Android開發的開發者有多少人...?           02/28 20:48
→ kira925:要把code維持穩定 結果Android又給硬體商太多自訂空間      02/28 20:48
→ kira925:最終,也沒有真的有一個穩定的環境給Developer             02/28 20:50
→ noonee:所以  也因此遭受很多開源界的批評啊XD                     02/28 20:53
→ kira925:They just want no one discover they are evil.           02/28 20:54
→ widec:既不開源,又不穩定                                        02/28 20:55
→ noonee:I am no onee....(好冷)                                   02/28 20:58
推 ccpz:別再說 android 開源了, 那根本是個笑話                      02/28 21:15
→ ccpz:說 android 開源是好事的人, 先把 android 3.0x 原始碼拿出來  02/28 21:16
→ ccpz:google 只是利用"開源"這個很潮的詞,給自己戴高帽            02/28 21:17
→ ccpz:和 android 比起來,沒看過 linux 有哪一版說有問題而不開源   02/28 21:18
推 kira925:Google在宣告code 版權的時候沒用GPL阿(菸)                02/28 21:19
推 ccpz:所以問題就在 "Open source" 的定義啦, 只是其他專案都是      02/28 21:31
→ ccpz:比較狹義,大家都可以參與的 open source, google 這樣搞      02/28 21:32
→ ccpz:看起來就很ooxx了                                           02/28 21:32
推 banbanzon:G牌對app開發者的態度和作法 跟微軟及阿婆這兩家做os起   02/28 22:03
→ banbanzon:家賣錢的 實在比不上 再這樣下去恐怕會落得比wm時期還慘  02/28 22:05
推 SicInfit:Android以後大概只剩中高階繼續拼吧,低階準備被WP吃光..  02/28 22:09
推 chuxchu:其實開源軟體就是有這樣的弊端  但是Android開發環境真的   02/28 22:13
→ chuxchu:誇張到一個極點...好歹他背後也是有Google這個老大哥撐著   02/28 22:13
→ chuxchu:但是卻對開發者超不友善的  google擺明想躺著賺            02/28 22:14
推 kira925:那個老子改版你就乖乖跟著改的態度 很明顯只想躺著賺阿     02/28 22:17
→ kira925:硬體商為了配合你的OS改版人仰馬翻                        02/28 22:17
→ kira925:開發者也因為不相容的API/UI人仰馬翻                      02/28 22:18
→ kira925:改得差不多的時候:來,新的Android                        02/28 22:18
→ kira925:不給大家活路阿!                                         02/28 22:19
→ chuxchu:看看精美的4.0...到現在普及率還不到2%他就想出5.0了       02/28 22:19
推 kira925:反正也不是第一次拉 Chrome的背景全自動更新也是這樣...    02/28 22:24
推 Lansbury:其實把已經停止更新的update移除 google家族的東西就      02/28 22:27
→ Lansbury:不會自動更新了                                         02/28 22:27
推 tknamco:中肯,Android的ui順暢度都現在還追不上iPhone1真的是有點  02/28 22:28
→ tknamco:ooxx                                                    02/28 22:28
推 chuxchu:iphone有很順嗎?!我覺得兩年前的低賽就比一代哀鳳順了      02/28 22:29
→ tknamco:desire的觸控...我剛賣掉一支...                          02/28 22:31
推 Lansbury:打一代........                                         02/28 22:33
推 tknamco:iPhone一代只是fps略嫌不足,但觸控跟著手指的滑順到現在   02/28 22:33
→ tknamco:我還沒發現有那隻能做到...                               02/28 22:34
→ cola1230:只聽過ANDROID整天說 哪一台用XXX可比IPHONE滑順...       02/28 22:34
→ cola1230:其實有很多根本是動畫的假象 只是沒廠商專心作而已        02/28 22:35
推 chuxchu:如果是觸控的話那倒是  Android手機普遍有觸控不精準的問   02/28 22:35
→ cola1230:或者像很多LAUNCHER 順是順 但太多自定義...就是不對盤    02/28 22:36
→ cola1230:嗯 這篇作者也有說到 尤其逛網頁 如果IPHONE使用者        02/28 22:36
→ chuxchu:題  還有iOS過場動畫真的設計得不錯  沒有停頓感           02/28 22:36
→ cola1230:去用其他支不管哪台 都會覺得很容易點錯...就算螢幕更大   02/28 22:36
→ tknamco:絕對不只是沒用心做的問題,那個google map快速拉動就知道   02/28 22:40
推 jumbotest:原PO覺得這些缺點能在未來的android版本改進嗎?          02/28 22:47
推 TommyHilfige:推miu ptt的作者  超讚的APP                         02/28 22:49
推 pttresident:推作者;原po說得讓我想跳到apple產品玩阿  囧rz       02/28 22:49
推 mos888tw:htc那個旋轉的sense才真的是fps不足                      02/28 22:51
→ bkr:真是說出開發者的痛.我們的程式設計師也快崩潰了XD             02/28 23:04
→ FragrantBlue:roguso作者表示:____ http://roguso.com/             02/28 23:17
推 Huangrh:難怪我在操作android手機時總覺得沒有iOS來得順暢.原來是   02/28 23:42
→ Huangrh:有原因的阿..                                            02/28 23:42
→ Huangrh:另外,感謝您的好作品,在iOS上和android上都有下載..      02/28 23:42
→ LoveCheer:WP也有限制螢幕大小 我相信這方針是對的(老賈先知啊)     02/29 15:10
→ LoveCheer:Android系統在這樣搞下去 真的不樂觀                    02/29 15:10
推 syuasdio:血淚推                                                 02/29 18:04
推 jyunwei:作者血尿控訴!                                          02/29 19:12
推 chriter:我都有幫你點廣告XDD                                     02/29 19:46
推 Sunicer:同是Software R&D淚推…Q_Q                               02/29 22:41
推 chiro1982:wp ios android我都用過 android是最難用的 wp真的不錯   02/29 23:18
→ cash35:WP7搭配低價機的推出 市佔率很有機會往上衝                 02/29 23:40
推 shinichi:                                                       02/29 23:53
推 befdawn:有看有推                                                03/01 09:34

沒有留言:

張貼留言