2017-04-21 38 views
6

對於大學項目,我的團隊計劃爲Android製作雲消息傳遞應用程序。最初我們通過研究並使用Ionic Framework和Phonegap創建一個混合應用程序來開始開發。混合移動應用程序通常被技術行業的開發人員視爲低於原生應用程序嗎?

基於我們迄今爲止閱讀和了解的內容,我們瞭解到的是混合應用程序開發允許我們使用Web技術(HTML,CSS Javascript)進行編碼,這比我們熟悉的技術要少得多,比構建本機應用程序。它還具有在多個平臺上運行的優點,只需稍微調整即可。

但是,當我們向前推進我們得到了我們很多同事和人在現場,所有指向一件事的一些奇怪的反饋; 對混合應用的普遍不信任和懷疑。

最後,我們決定去一個原生應用程序由於其他原因這個反饋,但它一直困擾着我們,爲什麼人們覺得這種方式。

回答

2

是的,普遍的想法是,混合應用程序是遜色於原生應用。雖然這可能是令人沮喪的開發人員更熟悉網絡技術,它的確有很好的理由:雖然存在插件,如cordova-plugin-statusbar,有侷限性與交互和操作本機:

  1. 無法和本地組件互動使用網絡技術的組件。一個偉大的(和令人沮喪的)問題,我親自碰到的是不能有在他們的鍵盤作爲鍵盤動畫在頂部的輸入。這聽起來像一個不成問題的問題,直到你看一個應用,在那裏,這是一個基本特徵,如在像Slack這樣的聊天應用程序中。
  2. 延遲300ms:儘管現代瀏覽器已開始phase this out,但混合應用程序中第二次延遲的一小部分會使應用程序感覺速度緩慢且非本機。隨着越來越多的用戶採用的變通方法,如FastClick.js和一些框架,比如Ionic默認消除它這個問題已被越來越少的一個因素。
  3. 的仇敵是正確的(那種):而目前混合型應用的發展已經走過了很長的路要走,還有輕微的毛刺和laggy功能,這些功能只是沒有出現在本機應用程序。屏幕過渡,應用程序切換和電池續航仍然是缺陷出現的常見區域,並且可能會持續一段時間,即使它們開始變得越來越不明顯。
  4. 有一些很棒的原生解決方案:使用較新的語言,如Apple的Swift,以母語進行編碼變得更加容易。也就是說,諸如React Native之類的工具通過允許開發人員使用JavaScript等友好技術進行編碼,但編譯爲本機代碼而陷入Native和Hybrid之間的灰色地帶。

這個故事的寓意在於它確實取決於您的具體使用情況的重要性。混合應用程序已成爲可行的選擇,不再是一個令人尷尬的副作用。相反,與Native應用程序交互還有一些小的方面與Native UX進行交互,但除了Native應用程序之外,這些方面還不可能實現。

總體來說,我建議映射出你的項目,並確定您的應用程序需要任何的本機應用程序的好處。藉助Ionic View應用程序等工具,您可以輕鬆將應用程序的基本樣機組合在一起,並在真實設備上進行測試,無論Hybrid應用程序是否適合您。

+0

我們在Hybrid和Native之間選擇時得到的一般經驗法則是:如果我們打算讓應用程序非常依賴硬件,而且客戶端很重,那麼我們肯定會選擇Native。否則,如果它只是一個應用程序,從服務器獲取數據並顯示它可以是Hybrid。雖然在這種情況下,它與Web應用程序本身沒有多大區別。 – nuwanjaya

+2

很好的答案!回覆1:所有內容都有插件。如果沒有人做到的話。我爲Slack輸入欄創建了這個例子:https://github.com/EddyVerbruggen/cordova-plugin-native-keyboard(它實際上使用SlackVC庫!) –

+0

@EddyVerbruggen謝謝!本週我只是在尋找一個項目的插件。保持偉大的工作! – makinbacon

相關問題