用什么编程语言编写大型app?
我从事安卓开发。以安卓为例。目前大型安卓app以本土语言为主,辅以其他语言,属于混合开发模式。
以java/kotlin语言为主的Android本土开发,以微信为例
通常,大型应用程序将首先建立框架。当然,如果框架建立得不好,就不必移动。它将随着业务的发展而不断重构和演变。
让我们来看看微信APP架构,分别使用组件化和模块化技术,了解APP开发的人应该一眼就知道。
组件化有什么好处?
组件主要分为三层:业务组件、基本业务组件和基本组件,组件之间只能通过接口耦合,即依靠倒置原理,每个组件都提供外部接口文档来描述组件提供的功能。
其次,组件化有很多好处:解耦、平台化、单一职责、复用性、编译集成等。。
由于强大的技术,没有解释,简而言之,组件将使应用程序开发非常灵活,如推送服务组件,现在使用小米推送,如果你需要用华为推送,非常简单,写一个华为推送组件,替换原始,界面定义一致,调用人不需要重写任何代码。
模块化有什么好处?
模块化的最大优点是多人协同开发,互不影响。
模块化更多地用于业务层面,分为基本业务模块和业务模块。
基本业务模块是指为业务代码开发提供服务的一些功能,并将其绘制成一个模块,以便于统一开发。例如,标志日志,我相信许多开发人员有不同的方式,所以你可以将日志功能包装成模块,形成一个便于管理的标准。
业务模块是每个人开发的具体功能,比如朋友圈功能开发迭代,直接新建模块,独立开发调试,不会与其他人员发生冲突,测试合格后可以引入主项目。
要建立一个框架,你必须使用本地语言。目前,Android的第一种开发语言是kotlin,而不是java,因为java是甲骨文,甲骨文必须向谷歌收取java使用费。kotlin的语法糖真的很甜。如果你开始kotlin,我相信你不想再写java了。
辅助语言也分为两种,C++和JavaScript
Android还支持C或C++语言,以SO库的形式引入项目。
C++到底能写出什么样的功能?
例如,音视频编码/解码功能,C语言可以直接操作硬件。如果您使用java级封装功能,效率将不如c语言高。
事实上,有很多功能,如图片背景高斯模糊、扫描代码分析等,这样的大型应用程序将优化和提高使用体验,即使只有1秒,也不容易。
其次是JavaScript或类似JavaScript的解析引擎,例如,小程序和H5页面都是由JavaScript引擎分析的。随着技术和网络的发展,小程序和H5页面的体验几乎赶上了本土。
总结
如今业务发展迅速,作为一款大型APP,必然需要与其他有利于业务发展的语言兼容,因此不能只使用原生语言。以安卓系统微信APP为例,兼容C//C++,JavaScript。现在谷歌的另一个UI框架flutter也很受欢迎,可以跨平台。目前咸鱼团队使用flutter,感兴趣的可以体验咸鱼APP(这里绝不是广告)。
我是一只著名的攻城狮。我希望我的回答对你有用。感谢您的关注和支持!