关于APP?

恭喜题主,你在追求技术的完备性。但大部分商业公司,技术完备性只能是技术人员的个人追求,从公司层面,业务上的完备性才是重点。技术完备性,将意味着更高的人员水平要求和更多的时间成本。个人建议,明确目标后,少想,马上多找方法多尝试。这是架构,没有统一的最好标准,只有更合适的应用方案。
■网友
分析问题的时候,应该从正反两方面思考,同时分析收益和代价。假如收益大于代价,这件事情就值得去做。假如收益少于代价,这件事情就不值得去做。
现在来分析将 App 改成插件机制。
收益:
安装包会小一点。软件会比较清爽,因为没有那样多用不着的功能。可以快速更新。 .......代价:
需要将整个 App 的架构进行大修改。因为 iOS 不支持下载动态链接库,插件只能使用脚本编写。这样就需要先做出一套脚本引擎,并封装系统的大量功能。用脚本编写,缺少一些 IDE 支持,比如静态检查之类。程序会更加调试困难。 ....... 【关于APP?】 分别将收益和代价列出来,很多时候结论就很明显了。
一个 App 的安装包大小,真的那样很重要吗?现在的网速和手机容量,一个 App 100 M 跟 200 M 没有本质区别。现在微信的安装包大概 138 M,根本不过分。手机空间不够用,主要是音乐、照片、视频、书籍,大型游戏,而不是 App 的安装包大小。
但代价呢?假如插件是使用动态链接库的方式提供,软件编写起来跟原来区别还不算太大。只是动态库的插件需要考虑安全问题。而采用脚本方式,改动代价是很高的,还使得软件的复杂程序,以后的更新维护更麻烦。有这种时间去折腾,可以去做更重要的事情。何必自找麻烦。
你可能会说,安装包当然重要,不重要为什么要压缩安装包大小?安装包大小也是 App 质量的一个衡量因素,假如代价很小就可以压缩安装包大小,当然也乐意去做。比如删除不用的资源,保存清晰度不变压缩图片,修改编译选项,这些工作花费的时间不多,当然值得做了。
那为什么火狐有这样多的插件?
主要的区别在于,火狐的插件是第三方编写,并不是开发火狐那批人编写的。第三方难以直接修改原始代码,这样自然应该采用插件。另外浏览器的 JavaScript 是现成的,不用再重新做一套脚本引擎。另外火狐的插件和插件之间是相互独立的。火狐的插件代码量也比较小。
那游戏,为什么很多时候需要用脚本?
游戏需要运营,需要快速修改,特别是网络游戏。快速动态更新就很重要。
开发一个大型软件(包括 App),也很自然会有这种模块化,插件思路。比如照片处理的每一个滤镜,就可以当成插件。只是它直接将所有代码编译,打包分发。
微信不同功能,比如附近的人,摇一摇之类,其实也可以当成微信团队内部开发的插件,用户可以在设置中打开关闭。而微信的公众号,服务号可以当成第三方编写的插件。
---------
另外,我不喜欢这句话 "现在APP随着更新迭代,体积越来越大。就像找了个越来越胖的女朋友。" 这句话可能本意是想开个玩笑,但却有嫌弃女朋友胖的意味,有点不尊重的。

■网友
微信小程序的出现,对回答题主的问题有帮助


    推荐阅读