4

引言

20200404日,庚子鼠年,清明,这注定是不平凡的一天。

瘟疫,国丧,除了五星红旗,一切都没有了色彩。全民志哀,全网皆灰。

打开手机,大部分软件都变灰了,还是在用户从未更新过APP的情况下。作为程序员,假设存在这样一个需求,我们怎么实现呢?

探索

原生开发

原生开发即使用Java / Kotlin / OC / Swift并结合官方套件去开发Android/iOS应用。

很明显,如果要使用原生开发技术的话,APP变灰需要更改原生代码,重新打包,发布,审核,上架。

等这一系列都通过的话,清明早就过去了。

原生应用性能是最好的,但需要Android / iOS两端开发,开发效率低,且因为苹果的审核机制,应用上架更新也比较耗时。

在各大企业的竞争过程中,部分金融企业用户数据共享,早推出产品意味着早抢占用户群,在对性能要求不高的前提下,不建议使用原生开发。

H5应用

因为Web天生跨平台,开发H5应用,可降低Android / iOS两端的开发成本,且应用更新时,直接发布到前台服务器即可。

image.jpg

直接加行js,判断日期是不是2020-04-04,是就给根标签加灰色滤镜,节前偷偷部署到服务器,节时访问就变了,节后又恢复正常。

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


张喜硕
2.1k 声望423 粉丝

浅梦辄止,书墨未浓。