apicloud能都替代android原生開發嗎?
其實沒有替代不替代的問題,其實是相輔相成,APICloud解決的是APP開發速度和跨平臺的問題,比如一套程式碼能編譯成安卓和iOS應用,安卓原生開發解決的是應用效能的問題,比如說我們的原生模組照樣是安卓原生
APICloud的出現不是為了替代某一種開發方式的,從技術上來講,其實是相輔相成,APICloud解決的是APP開發速度和跨平臺的問題,比如一套程式碼能編譯成安卓和iOS應用。
APICloud和原生應用開發,不是互相替代的關係。
不同的場景不同的需求,自然採用不同的技術,我們需要認清的是我們處於什麼場景,選用了不同的技術會有什麼優勢,什麼痛點。
嚴格的講,這個問題應該是個四方比較的技術選型問題:原生開發、hybrid開發、RN/Weex為代表的“偽hybrid開發”,以及APICloud。
為什麼將hybrid開發和APICloud分開?因為APICloud是一個包含跨平臺APP開發引擎、開發工具、雲服務、模組市場等服務的完整APP開發生態。目前APICloud已經推出面向Web開發者的Deep引擎、面向已有native應用的SuperWebView、模組市場,以及資料雲、運營雲等雲服務快速開發環境。不能僅僅作為一種“工具”或者單一技術看待。
下面我們簡單列舉一下四種技術選型的優勢和劣勢:
原生開發
優勢:
廠商原生技術,自由度最大。
社群和文件化都非常完善,各種技術資料和解決方案相當豐富。
歷史比較久,具備一定資歷的開發人員比較好招(並不意味著便宜)。
劣勢:
開發成本高,技術難度高。
專案無法跨平臺,需要兩支團隊。
需要投入的開發、測試力量以及週期都比較長,這會導致迭代節奏偏慢(要想快就得加人),不一定更得上產品的迭代節奏。
hybrid開發
優勢:
網頁迭代速度快,這個是公認的。
跨平臺性突出,有利於節省人力,1到1。5人可以維護兩大平臺的應用。
前端社群的技術演進非常快,社群活躍。
當下而言,前端工程師人力資源比較豐富。
劣勢:
效能劣於原生開發,容易出現效能問題。
嚴格的說hybrid只是一種技術理念,而並不是具體的技術解決方案。應用開發商常常需要自行構建維護技術棧。
雖然有封裝了native介面的hybrid框架(比如ionic)可選擇,但是對於相對複雜的應用,現有的hybrid框架並不能滿足需要,所以使用hybrid方式開發的應用,常常需要原生補充,這種情況下不同模組的使用者體驗難以統一。
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的可調式性比純瀏覽器還是要差上一截,開發體驗並不那麼好,這也一定程度上增加了開發成本。
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,其實是針對不同場景的不同技術選擇,背後的核心理念就是“因地制宜”,什麼樣的場景,我採用什麼樣的技術能達到提效和附能的目的,是技術選擇的唯一標準。
多說一句,國內大型網際網路公司普遍採用了“大中臺”戰略,期望建設強大的中臺去支撐業務。同樣的,作為中小型團隊,選擇一種技術,並不是說靜態地去看當下這個技術有哪些好處壞處,而是要放在“外接中臺”的角度,動態的去審視。一個技術棧長遠的看能決定你的研發模式和團隊構成,所以這不是那個工具最省事,
作為用了很久類似技術(Apache Cordova),這兩個應用場景其實差別很大,ApiCloud 看起來應該就是脫胎於 PhoneGap(也就是 Cordova 的前身),其實就是一個 WebView + JavaScriptNativeBridge + Plugins,主要用途是用來快速搭建應用,或者讓原來是做前端的來寫應用,前端那麼多庫拿來用用,然後可以直接生成 Android 和 iOS 應用,一舉兩得,開發成本也低。
如果真的要說,用這種方式開發的確是可以開發出優秀的應用的,但是有這種精力去開發足夠優秀應用的公司會去用這個?最後的結果就是這個開發方式做出來的應用極大多數都慘不忍睹。
真正要開發優秀的應用還是要用原生的開發方式,有針對性的做目標平臺能做得好的事情。
嚴謹的說,混合開發肯定不能100%替代原生開發。但是APICloud自身API+外掛生態,覆蓋了絕大多數日常APP開發需求,只要你的需求沒有跳出這個範圍,那麼就可以理解為APICloud是一個選擇。
最近圍繞混合應用開發寫了一套課程,實戰部分著重講解了APICloud開發最佳實踐,近一個月特價促銷,想上車的朋友抓緊:
臧濤的達人課