疫情下的 App 開發技術探索

引言

20200404日,庚子鼠年,清明,這注定是不平凡的一天。程序員

瘟疫,國喪,除了五星紅旗,一切都沒有了色彩。全民志哀,全網皆灰。安全

打開手機,大部分軟件都變灰了,仍是在用戶從未更新過APP的狀況下。做爲程序員,假設存在這樣一個需求,咱們怎麼實現呢?服務器

探索

原生開發

原生開發即便用Java / Kotlin / OC / Swift並結合官方套件去開發Android/iOS應用。微信

很明顯,若是要使用原生開發技術的話,APP變灰須要更改原生代碼,從新打包,發佈,審覈,上架。架構

等這一系列都經過的話,清明早就過去了。框架

原生應用性能是最好的,但須要Android / iOS兩端開發,開發效率低,且由於蘋果的審覈機制,應用上架更新也比較耗時。性能

在各大企業的競爭過程當中,部分金融企業用戶數據共享,早推出產品意味着早搶佔用戶羣,在對性能要求不高的前提下,不建議使用原生開發。微信支付

H5應用

由於Web天生跨平臺,開發H5應用,可下降Android / iOS兩端的開發成本,且應用更新時,直接發佈到前臺服務器便可。spa

image.jpg

直接加行js,判斷日期是否是2020-04-04,是就給根標籤加灰色濾鏡,節前偷偷部署到服務器,節時訪問就變了,節後又恢復正常。3d

H5雖然開發效率高,可是性能表現卻很差。

混合應用

原生開發與H5開發相結合,需求效率的時候使用H5,調用系統級API和須要性能的時候使用原生。

混合應用屬於開發的理想狀態,但開發難度較大,但也是主流的開發架構。

新聞類APP屬於經典的混合應用,點開一條新聞,其實打開是一個網頁,不然後臺沒法控制排版。

React Native

因混合應用開發難度較大,很多企業採用React Native進行APP開發。

使用React技術棧編寫代碼,兼顧Android / iOS兩端,可使用JavaScript編寫二者公用的組件,編譯成原生代碼,兼顧開發效率與性能。但若是遇到Android / iOS兩端不一樣的狀況,須要很長的時間進行開發與適配。

同時React Native的熱更新也能解決上架審覈慢的問題。

但也存在諸多問題,打包須要React相關的包,致使APP打完包動輒幾十M,很大。

同時,由於官方React Native的庫須要進行版本適配,因此像最新iPhone這類的適配問題,須要等待React Native官方的更新。

瑕不掩瑜,React Native仍然是主流開發技術之一。

其餘技術棧

支付寶可謂業內巨頭(雖然我喜歡用微信支付,可是支付寶確實厲害),其APP內,遠不止支付這麼簡單,好比安全、日誌等等模塊都通過多年積澱。

假設我要去開發一款安全的支付產品,但卻沒有那麼強的技術積澱,爲了保證安全性,咱們會直接向螞蟻金服採購安全框架,官方會提供技術支持。

總結

2020-04-04,歷史會記得今天!

image.png

相關文章
相關標籤/搜索