http://chinese.engadget.com/2012/09/12/zuckerberg-html-5-facebook-mobile-app-mistake/
從至愛的科技網站看到一篇報導,表示 Facebook 靈魂人物朱克伯格(Zuckerberg)認為用 html5 開發 facebook 流動應用程式是一個錯誤。並且開始用原生碼來開發 Android 應用程式,而 iOS 原生碼的流動程式經已在早前推出。
在流動開發過程中,使用 HTML5 有一個很大的誘因 – 跨平台。無論使用 iOS 或 Android 甚至是 Windows Phone 和 Symbian。只需要一套編碼,基本上滿足你所有要求。如 Canvas API 可以助你用 Javascript 編碼完成 2D/3D 的實時繪圖,localStorage 可以快速暫存資料,亦可以用接口讓 Native / HTML5 編碼溝通,免卻在 Android 用 SharedPreference,卻在 iOS 用 NSUserDefault 的「用一套,記一套」的苦惱。但其實用 HTML5 開發應用亦有很多令人頭大的問題。
1. HTML5 支援問題 – 正當你落實跨平台開發專案,利用便利的 HTML5 編碼來作出開發。但當你發現在 iOS 的 UIWebView 運行表現出眾;用 Ice cream sandwich 的 WebView 開發亦無大問題。但你的客戶希望將軟體支援至 Android 2.3. 你就發現問題就來了,你會發現有一些重要的 HTML5 不可以使用 – 如 toDataURL(),或者 HTML5 的視頻播放。而因為 HTML5 是 WebView 內的功能,你又不一定可以混合源生編碼解決問題. 例如,我如何將 Canvas 的圖示,在沒有 toDataURL() 支援用原生碼來輸出圖片 base64 的編碼?
2. 報行速度 – 不同的流動平台的 WebView 運行速度不同,如 iOS 的 Canvas Drawing 很流暢,但 Android 的表現就有點差強人意。這樣會大大影響用戶體驗。
3. WebView 的不明內部錯誤。iOS 或 Android 的 WebView 不是萬能聖藥,都是由工程師開發。工程師是人,有人即是會有錯誤。利用 WebView 開發 App,若果 WebView 有甚麼不明錯誤,就可能無可救藥。好像用 JS 執行一個會消耗 10 分鐘的 Thread, 若用戶等久了想中途取消運作。在 Android 的平台下是不可能停止的,而 10 分鐘過後你的 app 因為你的 javascript 執行完成而莫名奇妙展示你已取消的結果。而利用源生碼,若你發現有任何部件出事,你可以有較大自由度去解決問題,亦可以控制程序報行的 lifecycle. 這是 html5 不可比擬的。
利用原生碼開發有兩個好處 – 高效和穩定。原生 API 必定得到大部份硬體支援,充份的參考文件了解 API 的支援狀況,運行上亦是最為穩定。若有甚麼問題,廠商亦能即時支援。在這個追求使用者經驗的時代來說,流暢可用的 App 比一個能讓所有群眾基本使用的 App 更為重要,才能為品牌/服務留住使用者群。
Zapper (UK) vs TownCheck (HK)
上兩幅是一個叫 Zapper 的 App,來自英國。 The upper two pics is an app called Zapper from UK.
下兩幅是一個叫 Towncheck 的 App,來自香港。And the bottom two is TownCheck from HK.
大家都係 Marketing App。有差唔多的 Logo,差唔多的實時 Load Tag 手法同 Navigation 設計。我無深究誰先誰後。不過我唔係太欣賞呢種手動揀 Traceable 然後再掃 AR. 當然,前者有 3D content 尚叫實用,透過 Category 黎動態轉換 Traceable 來減輕系統負荷亦無可厚非。但後者似是用 AR 當 QR Code 玩,玩味實質重過實際操作。 Anyway, 我想試下會唔會有 hack 可以做到免除揀 Category 都可以 Detect 到 Mark,我會 suggest 同 Zeta Interactive 的曹同 IVE line-up 左 FYP 的學生點做。
Both of the apps are targeted as marketing tool. Accidentally, both apps share similar Logo, similar navigation design and similar dynamic traceable swapping technology. I can’t say one of them is copycat. But i am not quite appreciate the way that “selecting the category and look thru the mark”.
In my point of view, zapper is more practical as there are many 3D contents. Integrating AR technology is a must. It’s reasonable for zapper team to ask the user select a specific cat to load the 3D content in order to reduce system loading to trace too many marks. However, for the Towncheck, it more likely to show the “interestedness” of AR technology. In general, it looks like an AR QR Code and it seems that AR is not a must for it.
Anyway, I am gonna to hack the way to do swapping traceable with Zeta Interactive. And its team coordinating with IVE’s students on related project. Stay Tune!