深度解析幾種APP開發優劣勢,誰將被誰替代?

  最近有關“APICloud能都替代Android原生開發嗎?”的話題在知乎論壇引起了大家的廣泛關注,很多開發者在詳細瞭解之後對自己的職業規劃重新做了調整,同時也給企業在項目合作上提供了更多選擇。今天,轉來分享給大家,這位KOL還給我們列舉了4種開發技術的優勢、劣勢作參考。

APICloud和原生應用開發,不是互相替代的關係

  不同的場景不同的需求,自然採用不同的技術,我們需要認清的是我們處於什麼場景,選用了不同的技術會有什麼優勢,什麼痛點。

  嚴格講,這個問題應該是個四方比較的技術選型問題:原生開發、hybrid開發、RN/Weex爲代表的“僞hybrid開發”,以及APICloud。

  爲什麼將hybrid開發和APICloud分開?因爲APICloud是一個包含跨平臺APP開發引擎、開發工具、雲服務、模塊市場等服務的完整APP開發生態。目前APICloud已經推出面向Web開發者的Deep引擎、面向已有native應用的SuperWebView、模塊市場,以及數據雲、運營雲等雲服務快速開發環境。不能僅僅作爲一種“工具”或者單一技術看待。

  下面我們簡單列舉一下四種技術選型的優勢和劣勢:

  01 原生開發

  優勢:

  廠商原生技術,自由度最大。

  社區和文檔化都非常完善,各種技術資料和解決方案相當豐富。

  歷史比較久,具備一定資歷的開發人員比較好招(並不意味着便宜)。

  劣勢:

  開發成本高,技術難度高。

  項目無法跨平臺,需要兩支團隊。

  需要投入的開發、測試力量以及週期都比較長,這會導致迭代節奏偏慢(要想快就得加人),不一定跟得上產品的迭代節奏。

  02 Hybrid開發

  優勢:

  網頁迭代速度快,這個是公認的。

  跨平臺性突出,有利於節省人力,1到1.5人可以維護兩大平臺的應用。

  前端社區的技術演進非常快,社區活躍。

  當下而言,前端工程師人力資源比較豐富。

  劣勢:

  性能劣於原生開發,容易出現性能問題。

  嚴格說hybrid只是一種技術理念,而並不是具體的技術解決方案。應用開發商常常需要自行構建維護技術棧。

  雖然有封裝了native接口的hybrid框架(比如ionic)可選擇,但是對於相對複雜的應用,現有的hybrid框架並不能滿足需要,所以使用hybrid方式開發的應用,常常需要原生補充,這種情況下不同模塊的用戶體驗難以統一。

  03 RN/Weex

  優勢:

  使用系統原生UI組件,性能和體驗相比hybrid更接近於原生。

  由於RN和Weex都是一線互聯網廠商的產品,除了組件和api封裝之外,還會對熱更新一類的工程需求給出明確解決方案。

  劣勢:

  不使用html5自然有好處,但是也會帶來壞處。比如,需要分別搭建Android和IOS開發環境,分別Release。RN的核心理念是“learn once write anywhere”而非“write once run anywhere”。

  再比如針對RN/Weex的設計並不像hybrid那麼靈活,並且會一定程度上產生平臺分化。

  學習曲線可能不像大家想像中那麼平滑,不管是前端還是移動開發工程師,進入RN/Weex領域還是需要一個學習期的。

  RN/Weex的可調式性比純瀏覽器還是要差上一截,開發體驗並不那麼好,這也一定程度上增加了開發成本。

  04 APICloud

  說優勢劣勢之前,我們先來解釋一下APICloud和原始hybrid的區別。hybrid技術是APICloud“端”開發的核心技術手段,但是APICloud基於hybrid做了很多事。從項目開發過程來看,使用現有開源的hybrid技術或者自建hybrid框架,更像是自己買菜做飯,建立和維護技術棧,以及針對各種問題積累know how的成本是比較高的,而使用APICloud開發,其體驗更像是使用.net、java這樣的企業級開發技術棧,或者說去飯店點餐,你拿到手的東西已經相當完整,可以直接聚焦於應用。

  優勢:

  傳統hybrid開發的優勢,APICloud基本是具備的。

  相比傳統hybrid,APICloud提供的是整體解決方案以及標準化的技術平臺,不需要自行搭建熱更新等外圍技術。

  技術支持體系,開發者社區,有全面的產品、技術文檔、視頻教程等,技術論壇中有活躍的開發者,也有官方一線產品人員提供技術支持,這在國內的社區中,維護度算認真的了。

  模塊市場。模塊是APICloud的核心優勢之一,編碼時拿來即用,無需重複造輪子,目前有五六百個模塊,涵蓋了APP開發過程中90%以上的功能,同時聚合了國內主流第三方服務,比如IM,推送,人工智能,物聯網,直播等等。原生開發者還可通過APICloud的模塊擴展機制,開發模塊在模塊Store上進行售賣。

  APICloud利用高效的“混合渲染”和模塊化機制,爲APP提供與原生一致的性能,同時還繼承Html5開發簡單的優勢,二者對開發人員來說基本上是透明的。

  劣勢:

  由於APICloud是基於標準html5擴展的技術,API比較新,開發人員需要一定的時間熟悉、學習其擴展的API(個人認爲相對RN/Weex來說要容易一點)。

  在APICloud中開發APP,原則上不提倡使用JQuery等傳統Web開發常用的庫和框架。習慣使用框架的前端開發人員使用APICloud開發APP時,可能還需要花時間去適應。

  APICloud的技術引擎和大部分的模塊沒有開源,這其實算是一把雙刃劍,但從開發者角度講,開源平臺,會降低項目開發中的一定風險,尤其是可調試性。

  就技術而言,目前APICloud的客戶端技術,很像是桌面端的混合開發方案electron,立足於html5,通過統一標準的API消除不同平臺、不同操作系統之間的差異,達到APP跨平臺的目的。但是相比純技術方案,APICloud是一個“有產品有生態有運營”的商業級開發平臺。今天我們看到的特色,也主要是因此誕生的。

  回到開始的觀點,APICloud並不是原生開發的代替技術,APICloud實質上是一個爲移動端app開發提效和賦能的平臺體系。基於APICloud做應用,還是在原生應用中內嵌APICloud,其實是針對不同場景的不同技術選擇,背後的核心理念就是“因地制宜”,什麼樣的場景,我採用什麼樣的技術能達到提效和附能的目的,是技術選擇的唯一標準。

  多說一句,國內大型互聯網公司普遍採用了“大中臺”戰略,期望建設強大的中臺去支撐業務。同樣的,作爲中小型團隊,選擇一種技術,並不是說靜態地去看當下這個技術有哪些好處壞處,而是要放在“外置中臺”的角度,動態的去審視。一個技術棧長遠的看能決定你的研發模式和團隊構成,所以這不是那個工具最省事。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章