一、APP
1.1. 行业现状
传统互联网企业一般开发一套APP需要iOS、Android两大平台,而对应的软件工程师至少需要2位(iOS和Android各一位)。
即使采用主流的跨平台方案(ReactNative、Flutter)也至少需要1位软件工程师。目前的跨平台方案不仅用户体验没有原生好,还会受制于系统不一致导致的额外开发(比如iOS和Android的蓝牙系统、推送系统等需要单独开发)。尤其对定制化要求比较高的企业来说,跨平台也仅仅是解决了人员的支出成本。
不论是原生开发还是跨平台开发,每次评审产品需求都需要工程师直接参与,否则就会出现信息不对称导致开发结果不一致的问题(在设计稿和业务流程方面尤为突出)。由于产品相关人员大部分不懂代码(即使懂也不可能去直接看代码),因此验证代码逻辑的工作就交给了测试人员,最终测试通过后才能发布上线。
软件工程师的流动性也会给业务方带来很多隐患,流动性意味着每一个新参与的工程师需要先熟悉现有的业务和代码,之后才能继续开发。但是每个工程师的经验层次不齐,部分代码需要不断的优化才能让其健壮性越来越好(行话:踩坑填坑)。
1.2. 解决方案
为了解决开发人员成本支出、产品流程可视化、系统不一致等问题,我们团队内部提出利用小程序进行现有项目的升级改造,目的是:只关注业务,让非技术人员也能开发APP。
经过长期的开发和积累,终于实现了其基本框架,现在团队内部将其作为中台的一部分开始大量使用。
由于面对的是非技术人员,所以我们采用了可视化拖拽方式进行界面搭建(类似于搭积木)。后端使用最流行的微服务体系,并提供了最常用的服务。真正做到了技术小白也能开发APP。
补充:目前不仅可以开发APP,还可以开发H5、Web,并且支持后端API。更多内容请关注官网:https://orang.cloud
二、小程序
小程序是跨平台的(iOS、Android)一种APP展现方式,具有出色的使用体验。相比普通网页开发,小程序具有高效制作、快速加载、原生体验、热更新等优势。
2.1. 高效制作
由于共享一套核心代码资源,所以小程序的业务流程在iOS和Android上是统一的,构建者只需要关注业务本身即可,小程序构建完成后通过一键发布即可得到iOS和Android两个独立的程序。
在制作过程中,平台还提供了桌面端预览、手机端预览等辅助工具,制作者可以快速的以使用者的角度进行预览或测试。
2.2. 原生体验
内部自研系统(零壤OR)为小程序提供了丰富的原生API(含蓝牙、相机、定位等硬件API),因此小程序的终端用户(消费者)在使用过程中和原生体验无差别。
网页开发渲染线程和脚本线程是互斥的,这也是为什么长时间的脚本运行可能会导致页面失去响应,而在小程序中,二者是分开的,分别运行在不同的线程中,因此小程序的加载速度非常快。
2.3. 热更新
Android系统的APP一直有热更新能力,但苹果平台为了自身生态的良好发展,一直在禁止APP热更新,虽然后续的一些热更新方案能够通过审核,但是一旦被苹果发现,对于APP提供方来说将会是毁灭性的打击。
小程序的单体更新,不仅有效避免了苹果的审核机制,而且能够让Android和iOS达到版本一致性。
2.4. 隔离和组合
每一个小程序都是一个单体APP,每个单体又可以组合为一个更复杂的APP。组合式应用之间可以通过内置的数据库进行资源共享。