今天在瀏覽知乎的時候挂绰,看到這么一個問題,感覺很有意思服赎,有點分享價值葵蒂,如下:
ApiCloud 能都替代 Android 原生開發(fā)嗎?
ApiCloud 現(xiàn)在好像蠻火重虑,但是能替代比如在 Eclipse践付,AndroidStudio 來做的 App 開發(fā)嗎?本來在 Eclipse 上做 App 開發(fā)的程序員有必要轉(zhuǎn)到 ApiCloud 上開發(fā)嗎缺厉,畢竟還是簡單永高,快速些。
說實話提针,這個問題本身就問的就有問題命爬,沒有說一種技術(shù)可以完全替代另外一種技術(shù),每種技術(shù)的側(cè)重點和優(yōu)勢都不一樣辐脖,不同的需求和場景饲宛,不同的體驗可以選擇不同的技術(shù),技術(shù)之間其實沒有什么完全替代之說嗜价。這是我們面臨產(chǎn)品艇抠,項目,和整個團(tuán)隊技術(shù)能力時炭剪,需要做的一種技術(shù)選型罷了练链。
我之所以說,很有分享價值奴拦,是因為我看到了知乎大神「欲三更」寫的回答媒鼓,很全面,他從原生開發(fā)、hybrid 開發(fā)绿鸣、RN/Weex 為代表的 “偽 hybrid 開發(fā)”疚沐,以及 APICloud這些技術(shù)選型中做了不同的優(yōu)勢和劣勢,以及技術(shù)特點的分析潮模,而這些回答亮蛔,可以讓大家更深入,更清晰的了解這些技術(shù)擎厢。為以后的開發(fā)究流,技術(shù)選型能夠有一定的參考和學(xué)習(xí)價值。
知乎大神「欲三更」的回答
APICloud 和原生應(yīng)用開發(fā)动遭,不是互相替代的關(guān)系芬探。
不同的場景不同的需求,自然采用不同的技術(shù)厘惦,我們需要認(rèn)清的是我們處于什么場景偷仿,選用了不同的技術(shù)會有什么優(yōu)勢,什么痛點宵蕉。
嚴(yán)格的講酝静,這個問題應(yīng)該是個四方比較的技術(shù)選型問題:原生開發(fā)、hybrid 開發(fā)羡玛、RN/Weex 為代表的 “偽 hybrid 開發(fā)”别智,以及 APICloud。
為什么將 hybrid 開發(fā)和 APICloud 分開缝左?因為 APICloud 是一個包含跨平臺 APP 開發(fā)引擎亿遂、開發(fā)工具浓若、云服務(wù)渺杉、模塊市場等服務(wù)的完整 APP 開發(fā)生態(tài)。目前 APICloud 已經(jīng)推出面向 Web 開發(fā)者的 Deep 引擎挪钓、面向已有 native 應(yīng)用的 SuperWebView是越、模塊市場,以及數(shù)據(jù)云碌上、運營云等云服務(wù)快速開發(fā)環(huán)境倚评。不能僅僅作為一種 “工具” 或者單一技術(shù)看待。
下面我們簡單列舉一下四種技術(shù)選型的優(yōu)勢和劣勢:
原生開發(fā)
優(yōu)勢:
- 廠商原生技術(shù)馏予,自由度最大天梧。
- 社區(qū)和文檔化都非常完善,各種技術(shù)資料和解決方案相當(dāng)豐富霞丧。
- 歷史比較久呢岗,具備一定資歷的開發(fā)人員比較好招(并不意味著便宜)。
劣勢:
- 開發(fā)成本高,技術(shù)難度高后豫。
- 項目無法跨平臺悉尾,需要兩支團(tuán)隊。
- 需要投入的開發(fā)挫酿、測試力量以及周期都比較長构眯,這會導(dǎo)致迭代節(jié)奏偏慢(要想快就得加人),不一定更得上產(chǎn)品的迭代節(jié)奏早龟。
hybrid 開發(fā)
優(yōu)勢:
- 網(wǎng)頁迭代速度快惫霸,這個是公認(rèn)的。
- 跨平臺性突出葱弟,有利于節(jié)省人力它褪,1 到 1.5 人可以維護(hù)兩大平臺的應(yīng)用。
- 前端社區(qū)的技術(shù)演進(jìn)非城滔ぃ快茫打,社區(qū)活躍。
- 當(dāng)下而言妖混,前端工程師人力資源比較豐富老赤。
劣勢:
- 性能劣于原生開發(fā),容易出現(xiàn)性能問題制市。
- 嚴(yán)格的說 hybrid 只是一種技術(shù)理念抬旺,而并不是具體的技術(shù)解決方案。應(yīng)用開發(fā)商常常需要自行構(gòu)建維護(hù)技術(shù)棧祥楣。
- 雖然有封裝了 native 接口的 hybrid 框架(比如 ionic)可選擇开财,但是對于相對復(fù)雜的應(yīng)用,現(xiàn)有的 hybrid 框架并不能滿足需要误褪,所以使用 hybrid 方式開發(fā)的應(yīng)用责鳍,常常需要原生補充,這種情況下不同模塊的用戶體驗難以統(tǒng)一兽间。
RN/Weex
優(yōu)勢:
- 使用系統(tǒng)原生 UI 組件历葛,性能和體驗相比 hybrid 更接近于原生。
- 由于 RN 和 Weex 都是一線互聯(lián)網(wǎng)廠商的產(chǎn)品嘀略,除了組件和 api 封裝之外恤溶,還會對熱更新一類的工程需求給出明確解決方案。
劣勢:
- 不使用 html5 自然有好處帜羊,但是也會帶來壞處咒程。比如,需要分別搭建 Android 和 IOS 開發(fā)環(huán)境讼育,分別 Release帐姻。RN 的核心理念是 “l(fā)earn once write anywhere” 而非 “write once run anywhere”粮宛。
- 再比如針對 RN/Weex 的設(shè)計并不像 hybrid 那么靈活,并且會一定程度上產(chǎn)生平臺分化卖宠。
- 學(xué)習(xí)曲線可能不像大家想像中那么平滑巍杈,不管是前端還是移動開發(fā)工程師,進(jìn)入 RN/Weex 領(lǐng)域還是需要一個學(xué)習(xí)期的扛伍。
- RN/Weex 的可調(diào)式性比純?yōu)g覽器還是要差上一截筷畦,開發(fā)體驗并不那么好,這也一定程度上增加了開發(fā)成本刺洒。
APICloud
說優(yōu)勢劣勢之前鳖宾,我們先來解釋一下 APICloud 和原始 hybrid 的區(qū)別。hybrid 技術(shù)是 APICloud“端” 開發(fā)的核心技術(shù)手段逆航,但是 APICloud 基于 hybrid 做了很多事鼎文。從項目開發(fā)過程來看,使用現(xiàn)有開源的 hybrid 技術(shù)或者自建 hybrid 框架因俐,更像是自己買菜做飯拇惋,建立和維護(hù)技術(shù)棧,以及針對各種問題積累 know how 的成本是比較高的抹剩,而使用 APICloud 開發(fā)撑帖,其體驗更像是使用. net、java 這樣的企業(yè)級開發(fā)技術(shù)棧澳眷,或者說去飯店點餐胡嘿,你拿到手的東西已經(jīng)相當(dāng)完整,可以直接聚焦于應(yīng)用钳踊。
優(yōu)勢:
- 傳統(tǒng) hybrid 開發(fā)的優(yōu)勢衷敌,APICloud 基本是具備的。
- 相比傳統(tǒng) hybrid拓瞪,APICloud 提供的是整體解決方案以及標(biāo)準(zhǔn)化的技術(shù)平臺缴罗,不需要自行搭建熱更新等外圍技術(shù)。
- 技術(shù)支持體系吴藻,開發(fā)者社區(qū)瞒爬,有全面的產(chǎn)品、技術(shù)文檔沟堡、視頻教程等,技術(shù)論壇中有活躍的開發(fā)者矢空,也有官方一線產(chǎn)品人員提供技術(shù)支持航罗,這在國內(nèi)的社區(qū)中,維護(hù)度算認(rèn)真的了屁药。
- 模塊市場粥血。模塊是 APICloud 的核心優(yōu)勢之一,編碼時拿來即用,無需重復(fù)造輪子复亏,目前有五六百個模塊趾娃,涵蓋了 APP 開發(fā)過程中 90% 以上的功能,同時聚合了國內(nèi)主流第三方服務(wù)缔御,比如 IM抬闷,推送,人工智能耕突,物聯(lián)網(wǎng)笤成,直播等等。原生開發(fā)者還可通過 APICloud 的模塊擴(kuò)展機(jī)制眷茁,開發(fā)模塊在模塊 Store 上進(jìn)行售賣炕泳。
- APICloud 利用高效的 “混合渲染” 和模塊化機(jī)制,為 APP 提供與原生一致的性能上祈,同時還繼承 Html5 開發(fā)簡單的優(yōu)勢培遵,二者對開發(fā)人員來說基本上是透明的。
劣勢:
- 由于 APICloud 是基于標(biāo)準(zhǔn) html5 擴(kuò)展的技術(shù)登刺,API 比較新荤懂,開發(fā)人員需要一定的時間熟悉、學(xué)習(xí)其擴(kuò)展的 API(個人認(rèn)為相對 RN/Weex 來說要容易一點)塘砸。
- 在 APICloud 中開發(fā) APP节仿,原則上不提倡使用 JQuery 等傳統(tǒng) Web 開發(fā)常用的庫和框架。習(xí)慣使用框架的前端開發(fā)人員使用 APICloud 開發(fā) APP 時掉蔬,可能還需要花時間去適應(yīng)廊宪。
- APICloud 的技術(shù)引擎和大部分的模塊沒有開源,這其實算是一把雙刃劍女轿,但從開發(fā)者角度講箭启,開源平臺,會降低項目開發(fā)中的一定風(fēng)險蛉迹,尤其是可調(diào)試性傅寡。
就技術(shù)而言,目前 APICloud 的客戶端技術(shù)北救,很像是桌面端的混合開發(fā)方案 electron荐操,立足于 html5,通過統(tǒng)一標(biāo)準(zhǔn)的 API 消除不同平臺珍策、不同操作系統(tǒng)之間的差異托启,達(dá)到 APP 跨平臺的目的。但是相比純技術(shù)方案攘宙,APICloud 是一個 “有產(chǎn)品有生態(tài)有運營” 的商業(yè)級開發(fā)平臺屯耸。今天我們看到的特色拐迁,也主要是因此誕生的。
回到開始的觀點疗绣,APICloud 并不是原生開發(fā)的代替技術(shù)线召,APICloud 實質(zhì)上是一個為移動端 app 開發(fā)提效和賦能的平臺體系《喟基于 APICloud 做應(yīng)用缓淹,還是在原生應(yīng)用中內(nèi)嵌 APICloud,其實是針對不同場景的不同技術(shù)選擇工窍,背后的核心理念就是 “因地制宜”割卖,什么樣的場景,我采用什么樣的技術(shù)能達(dá)到提效和附能的目的患雏,是技術(shù)選擇的唯一標(biāo)準(zhǔn)鹏溯。
多說一句,國內(nèi)大型互聯(lián)網(wǎng)公司普遍采用了 “大中臺” 戰(zhàn)略淹仑,期望建設(shè)強(qiáng)大的中臺去支撐業(yè)務(wù)丙挽。同樣的,作為中小型團(tuán)隊匀借,選擇一種技術(shù)颜阐,并不是說靜態(tài)地去看當(dāng)下這個技術(shù)有哪些好處壞處,而是要放在 “外置中臺” 的角度吓肋,動態(tài)的去審視凳怨。一個技術(shù)棧長遠(yuǎn)的看能決定你的研發(fā)模式和團(tuán)隊構(gòu)成,所以這不是那個工具最省事是鬼。