原生开发什么意思_原生开发才是王道
之前很多朋友問我這么一個問題,說剛做 Android 開發不久,但是市面上被 H5,React Native 等這些移動趨勢沖擊的不得不考慮要不要轉頭學習 H5 或者 RN ,跟上時代以后才能有更好的發展,今天我就寫篇文章給大家詳細解惑下,并且說下我的看法。
Native App
Native 開發也即原生開發,如果你是做 Android 開發,那么大部分都是用 Java 語言來編寫的,如果你是做 iOS 開發,則是使用 Objecttive C 或者 Swift 來進行編寫的,這些都是官方的標準,好處顯而易見,利用官方提供的 api ,開發的 app 有更好的性能,可以實現各種酷炫的效果,有更好的兼容性,對用戶來說體驗更好。
但是有沒有壞處呢?有,比如你要開發一個 app ,一定是要 Android 端開發一個,iOS 端開發一個,從開發成本來說有點大,而且我們知道一旦程序出現 bug ,我們一般就只有重新發布一個版本來進行更新,對于 Android 端還好,對于需要漫長審核的 iOS 來說簡直是噩夢。所以為了解決這個問題,涌現了各種熱修復框架,但是畢竟都不是官方的,而且難免會有學習門檻,而且不可避免的是這類為修復 bug 而生的熱修復框架本身也有 bug 風險。
H5 App
H5 全稱是 HTML5 ,是 HTML 最新的標準,我們一開始經常看到的微信朋友圈廣告,一些推廣鏈接等大都是 H5 實現的,所以 H5 最近比較火,不過所謂 H5 實現一般都包含有 javascript ,這都是 web 前端工程師的基本技能,這也致使 web 前端工程師職位較火。
不過如果開發一個 H5 應用的話,那很簡單,你只需要在外面包裹一個殼就好了。拿 Android 來說,最簡單的直接包個 WebView 處理下就可以算是一個簡單的 H5 應用了,其他的交給 web 前端工程師就好了。
H5 應用的好處也是顯而易見,跨平臺,因為只需要在 Android 和 iOS 直接寫個殼就好了,大大減小了開發成本,而且 web 是實時渲染的,即使有 bug ,可以直接發布就好了,也解決了熱修復的問題。
但是缺點很大:首先就是性能體驗太差,跟原生 App 的體驗簡直不能比,iOS 相對好些,Android 上的體驗簡直令人發指,而且 Android 本身版本的碎片化嚴重,再加上國內各大手機廠商所謂的「定制」,體驗根本不能看,而且會遇到各種兼容性問題,遠的不說,我在開發 Android 的過程中,就遇到不少適配的坑,有些你甚至都沒法解決,只能眼看著。
React Native
原生 App 體驗最好,但是不能跨平臺,H5 應用可以跨平臺,但是體驗太差。有沒有一種介于兩者之間的解決方案呢? React Native 橫空出世。
React Native 是 Facebook 工程師開源的一個框架,項目開源地址在這里:
它的設計基于 React.js ,通過編寫 javascript 代碼,中間做了一層解釋器,把相關的 js 解釋成原生組件,最終達到跟原生 App 差不多的體驗。注意,React Native 最終運行的不是 web ,這點我們團隊的小伙伴一開始也搞錯了,它最終運行在機器上的是原生的組件。
這解決方案是不是很完美?利用 js 的跨平臺特性,可以達到原生的性能與體驗,聽起來就帥爆了,加上又是 FB 巨頭提出來的方案,所以該項目一經開源,在移動圈就引起了熱烈反響。
但是如今一兩年的時間過去了,看看市面上有多少 App 是完全使用 React Native 來進行開發的,我想原因有下:
雖說性能與體驗比純 web 好多了,但是不管是 js 的執行還是多一層 js 到原生組件的解析渲染,所以性能上肯定是不如原生
React Native 是一種解決方案,但是該方案還不成熟,據我所知還有不少坑,去該 GitHub 項目主頁看下有多少 issue 就知道了,而且國內環境更復雜,你們懂得。
React Native 有不少限制,雖說它是一層 js 到原生組件的映射,但是并不是所有的組件,所有的組件的 api 都支持的,如果你親身之間,你會發現,很多產品經理的需求很難實現,這次真不是產品經理的需求太復雜,而是 RN 的限制確實不少。
所以,RN 是一種解決方案,是一種技術趨勢,但是完全不成熟,不建議在商業項目采用,但我們可以關注下,可以在業余時間學習實踐下。
順便多說句,阿里不是前段時間也開源了一個框架 Weex 么,可以說重新發明了類似 RN 的輪子,只不過它是基于 vue.js ,前幾天宣布 vue.js 的作者以技術顧問的形式加入該項目組,但是我依然不看好該項目,一方面該項目會遇到 RN 上面的一些問題,另一方面阿里的項目大多是為自己的業務服務的,所以 Weex 應該有不少是跟自己的業務綁定緊密的,不一定適合大部分中小公司,我沒有親自實踐過,不過以上就是我個人的一些看法。
總結
所以綜上,我覺得我們時刻保持對技術的敏感性挺好的,但是不要過于杞人憂天,而且國內很多媒體言過其實,稍有點風吹草動,就會被吹的上天了,所以我們要有自己的判斷與實踐。我一直認為原生開發才是王道,無論到什么時候,除非你不做 App 開發,或者說以后 App 死了,微信崛起了,不過起碼目前還看不到苗頭,也別相信什么 App 已死的鬼話,那么什么時候 App 開始沒落呢?我也不知道,給大家一個我自己認為的指標做參考吧,什么時候 QQ、微信、支付寶等推出新的使用方式的時候,可能代表 App 已死,仔細想想,我們從 PC 時代過渡到手機 App 時代,是不是基本上從手Q、支付寶推出移動應用開始的,只不過 App 時代造就了微信,這些巨頭的敏感性總歸要比個人要強吧。
對了,前段時間微信朋友圈推出了原生廣告,微信第一次把廣告體驗提升到了一個新高度,我想某種意義上是不是說明了什么?
所以,建議大家不用再過度擔憂了,可以時刻保持著對新技術的敏感性,只要你目前還在做移動應用開發,現階段你依然需要提升你自己原生開發的能力,把重心放在原生開發上!
PS:以上純屬個人觀點,不見得對,不喜勿噴,歡迎交流。忙中偷閑,原創不易,如果覺得不錯,隨手點個贊支持!
本文原創發布于微信公眾號 AndroidDeveloper「googdev」,不僅是Android原創干貨分享,也許是最有人情味的技術公眾號,轉載請務必注明出處!
「掘金」是一個高質量的技術社區,從 RxJava 到 React Native,性能優化到優秀開源庫,讓你不錯過 Android 開發的每一個技術干貨。各大應用市場搜索「掘金」,技術干貨盡在掌握中。
總結
以上是生活随笔為你收集整理的原生开发什么意思_原生开发才是王道的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端,你要知道的SEO知识
- 下一篇: 小程序推广引导下载app的解决办法