當建立行動版本的招聘網站,TheLadders 發現 HTML5 這條路沒有外界標榜的那麼好。
我們的團隊 TheLadders 過去為求職者建立的應用程式,開始轉向 PhoneGap,去精心製作一些跨平台 App。它不僅讓我們去利用我們在 HTML5、CSS 和 JavaScript 現有的專業知識,而且我們能很快地舉一反三。
因為我們會希望一個接一個的 Web App 開發挑戰中,越積越多轉換零件和組合的知識,來取代原生代碼(Native)。
- 開發上 Native 比 PhoneGap 流暢許多
最初,我們認為 PhoneGap 的小型學習曲線,將是非 iOS 開發人員的資產,但很快就發現,PhoneGap 有其特點和技術上的挑戰,大致來看,Native 流暢許多。
事實證明,利用 QA 測試 iOS 的應用程式,及 Android 螢幕的各種特性,皆是非常複雜的流程。而我們耗費精力,試圖將 PhoneGap 的代碼,於所有平台上,轉換成能代表它的東西。但結果,沒多久我們就將其撤下。
「一次編寫,運行各地」是理想目標。在後端編譯 Java、Python 和 Ruby 成代碼寫入,就可馬上適用於全球虛擬網路中。
然而,Native 越來越罕見,沒有人會用 C 去寫一個網站。在這越來越小眾的情況下,其原始性能就變得非常重要。你將很快看不到 Call of Dutywritten 使用 Java,或是 Final Cut Pro 使用 Ruby。
然而,後端成功的虛擬化方式,並沒有在前端實現。早期跨平台的 GUI 工具包,如 Java Swing,協助將「一次編寫,運行各地」改變成「一次編寫,到處除錯」。它面臨的挑戰,除了在所有平台上除錯外,用戶介面的規範和模式,還有平台間皆也有很大差距,Mac OS X 看起來或感覺起來,都不像 Windows8 使問題複雜化。
當我們回歸 Native ,更流暢、一致的經驗,讓我們可以達到完美的解決方案,回報給我們的客戶。憑藉著強大的工程團隊,iOS 的 Mastering Cocoa 被證明,它比我們想像的要容易得多,大量文檔和強大的研發生態體系,反而比 PhoneGap 的 Native ,速度更快,並且看起來更具現代化。
這種方法的主要缺點是,Android 必須完全獨立開發,然而,在服務層面有很多複雜的問題。我們選擇先找出在 iOS 的經驗,然後於 Android 使用相同 REST 服務層面。
2013 年九月,我們開始在 Android 方面著手,將 iOS 的應用程式當成手邊的樣本,以及作為 REST API 的例子,並於感恩節做出最終版本,這是一個相當快的建構,我們也設定可以自由改變 UI 去接受 Android UI 的習性和手勢。
當然,在應用程式上必須考慮到 iPhones 和 Android 設備之間,有著微妙而明顯的差異,Android 有一個超過 iOS 的導航機制,另外,Android 也有實體返回鍵,所以不需要將它放在螢幕上。在 Android 手機上的其他按鈕,也有製造出底部的菜單和工具列,但時常會意外點擊到。
Native 使我們能夠有效地管理這些問題,並量身打造其外觀、感應、導航和應用程式的手勢於特定平台上。除了 PhoneGap 外,解決方案還有:Titanium,它是 JavaScript 編譯原生代碼,並使用 native widgets,但即使你有 native widgets,你仍需要以某種方式,去解決平台上返回鍵與無返回鍵的差異性。
這一切都是學習過程,我們從構思到交貨階段已經相對較快,而目前總共製作給求職者和招聘人員三個 App 。
現在,我們堅持獨立使用 Native!
延伸閱讀:
開發 App 用 Native 語言還是 Hybrid 好?Coder 你怎麼看?
Android 首席設計師談軟體設計:偏愛用 Native 開發的人,是因為「盲目的狂熱」
(資料來源:Fast Company ; 圖片來源:Christian Heilmann、ryanne lai、Phil M、hackNY, CC Licensed)
Source: techorange.com