像美团外卖这样的APP用一种开发语言,能开发得出来吗?

像美团外卖这样的APP用一种开发语言,能开发得出来吗?,第1张

像美团外卖这样的APP用一种开发语言,能开发得出来吗?答案是不能。

美团发展到现在可以说已经是一个【巨无霸】了,里面集成了很多很多功能,除了核心的外卖,还有 旅游 、 娱乐 、购物、出行,金融等等业务线,那么这么多复杂的业务根本不可能用同一种开发语言实现。

那么美团都用到哪些开发语言和技术了呢?下面就根据我的理解详细说一下。

前端是把产品的核心服务交给用户的呈现者,它的表述方式、展示形式以及交互逻辑都跟用户息息相关,都影响着用户使用产品的体验,也就是说直接影响产品的用户留存。

前端开发主要分为三大类型:Andriod、IOS和PC(H5) ,Android开发语言是Kotlin和Java,IOS开发语言是Object-c和Swift,PC(H5)开发语言就比较杂了,有JS、CSS、HTML,还有很多第三方的前端框架,比如Angular.js、vue.js、Bootstrap、JQuery等等。

关于后端的功能,这一点可以说是众说纷纭,主要需要考虑的是如何实现功能、数据的交互流程和存取、平台的稳定性与性能等。

那么后端都用到哪些开发语言和技术呢?

根据后端技术选型的标准,后端可选的开发语言和技术是非常多的。

比如Java体系的话,可以选用SpringMVC、Spring cloud、Hibernate,Mybatis、Mysql、Redis、Memcache、zookeeper、Kafka......;

比如Python体系的话,可以选用Django、Flask、Tarnado、Web2py等,中间件都是通用的,Redis,MQ、MySQL、Kafka等都可以用在python体系中;

当然还有PHP、C、Perl等开发语言。

综上所述,美团这个巨无霸公司,随着业务线的扩展用到的技术肯定会越来越多,而且越来越复杂,技术快速变革的时代,适者生存的竞争性也会越来越激烈。

俗话说:罗马不是一日建成的,任何事都不可能一蹴而就,包含技术。在以后的发展中美团也会逐步更新自己的技术和开发语言的。

至少三种语言。后端一种语言(比如Java丶Go丶Python丶PHP等),后端语言及生态比较成熟。下面重点聊前端App开发。

前台两种语言(Android和iOS是不同的开发环境。比如Android用Java或者Kotlin,iOS采用Object C++或Swift),称之为Native开发。

当然创业公司可以用一种前端语言写App前端,这样就不需要Android和苹果分两种语言写,写一次代码可以编译成Android和iOS的App,现在通行的方案有Vue之类的DOM渲染模式,以及ReactNative方案(RN)。性能上RN优于DOM渲染但低于用Native开发的App。所以美团这种公司,一定是Native方式写App,但RN是初创项目不错的选择。

与RN竞争的还有一种新贵flutter,是google推出来的,但设计原理与RN不同,性能方面优于RN,只是目前生态不够健全,国内有闲鱼app是采用此技术。未来可能会占一席之地。

最后,其实App开发已经是强努之末,我觉得主流应该是朝PWA和小程序方向发展。

你好,开发譬如美团这种APP,用一种语言是实现不了的,一个APP有安卓和苹果两个 *** 作系统,开发能在安卓iOS端应用的APP主流的开发语言和技术是很多的,如后台有JAVA、C++、PHP、Python等多种开发语言,前端有kotlin、HTML、css、jquery、ajax、bootstrap、angular.js、react、vue.js、node.js、swift、object-c等多种语言和框架。

一个APP的开发是需要前端技术和后台技术共同配合完成,这样的APP不论是功能还是性能都给用户很好的体验,单一开发语言毕竟技术支持有限,所以即使能开发出来,APP的用户体验也是不理想的。

一般APP有这几种开发组合模式:1、原生安卓iOS开发,前端:JAVA、kotlin、swift、object-c后台:JAVA、PHP、C++等后台技术,这种模式开发周期长,成本高,性能好;2、混合APP开发即hybrid app,前端以网页技术为主,穿插原生开发功能,兼具原生APP和web app的优点,如淘宝、微信等应用都是走的这个技术;3、web app,前端纯网页技术,后台为主流开发语言,这种模式开发速度快,成本低,界面体验可能弱一些。

可见开发一款APP大多数都是多种语言配合完成,谢谢阅读。

看完之前的评论,依然好奇为什么一个语言不能完全胜任。

前端跨平台的方案有react native,cordova,flutter等,如果需要兼容开发小程序,h5页面,可以采用taro来开发,一套代码,所有平台通吃。

后端的方案有服务端运行时nodejs,大数据背景下运用而生的数据库mobgodb,缓存解决方案redis,搜索工具elasticsearch,负载均衡ngix,基本上是需要什么就有什么

所以总结下来,一句话,一种语言可以实现类似美团这样的app和小程序。为什么美团使用的语言那么多,一大原因估计是美团app开发的早,当时前端技术不成熟,工具没现在这么多。

使用混合开发与C++ 进行跨平台开发,有好有坏。

C++ 进行跨平台开发

编写一次,随处运行。早在 2013 年,Dropbox 就采用上述策略进行移动开发,这背后的想法很简单:用 C++ 编写一次代码,而不是用 Java 和 Objective-C 编写两次。那时,整个移动工程团队相对还比较小,但需要支持快速增长的移动路线图。因此,公司希望找到一种方法,使这个小团队可以快速交付大量 Android 和 iOS 代码。

如今,Dropbox 完全放弃了这个策略,转而使用各个平台的原生语言(主要是 Swift 和 Kotlin ,这两种语言在刚开始制定移动策略时还不存在)。

Hybrid App混合开发

Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。Hybrid App兼具了Native App良好用户体验的优势,也兼具了Web App使用HTML5跨平台开发低成本的优势。

目前已经有众多Hybrid App开发成功应用,比如美团、爱奇艺、支付宝等知名移动应用,都是采用Hybrid App开发模式。

移动应用开发的方式,目前主要有三种:

几种模似都可以开发出应用,小应用无所谓,但是大流量应用,对图形要求高的如 游戏 等原生开发的效果还是最好

支付宝打开很慢,就是因为采用混合开发,使用人多了不如原生开发

不行的哦。任何你看到的应用和网页,都需要多个语言开发的,大的分比如前端和后端,用的语言都是不一样的

*** 作分成电脑和手机(或模拟器)两个部分, *** 作流程如下:在手机上打开“设置|开发者选项|USB调试”。对于低版本的android,直接打开即可,对于4.4以上,“开发者选项”菜单被隐藏掉了,打开的方法是在“设置|关于手机”界面中双击“版本号”项(注意,不是“Android版本”项),一般需要连续双击两次,这时候你会看到一个提示说开发者选项已经打开了。在手机上打开chrome浏览相应网站或打开hybrid程序。把手机通过USB线连到电脑上,在问你是否打开USB调试是选择“是”。如果是模拟器,那么请在命令行输入adbconnect在电脑上打开chrome,并访问chrome://inspect/#devices,这是一个chrome的内部页面,在这里,你会看到设备的列表,列表中列出了它所包含的WebView。在这个WebView下会有一个超链接按钮:“Inspect”,点它,就打开了一个DevTools的页面,和在电脑上调试页面时使用的是同一个。甚至当你在它的Element页把鼠标悬停在某个节点上的时候,手机chrome中也会向电脑版chrome一样对该节点进行高亮(但有可能反应会慢些)。剩下的事情就不用我教你了吧……我用的Hybrid框架是cordova,如果你用的不是cordova,那么可能需要在程序的入口点添加如下代码:WebView.setWebContentsDebuggingEnabled(true)当然,要把它包裹在if条件里,免得发行版也被别人“调试”了。iconic中的相应代码如下,供参考:finalStringpackageName=this.cordova.getActivity().getPackageName()finalPackageManagerpm=this.cordova.getActivity().getPackageManager()ApplicationInfoappInfoappInfo=pm.getApplicationInfo(packageName,PackageManager.GET_META_DATA)if((appInfo.flags&ApplicationInfo.FLAG_DEBUGGABLE)!=0&&android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.KITKAT){setWebContentsDebuggingEnabled(true)}

现在我使用angular5开发了一个工程。现在业务需求,希望程序能够以app的形式发布到市场上。为了方便就,直接将现有的程序使用cordova进行封装。

我的 *** 作系统版本是:mac os High Sierra 10.13.1

我安装的androidstudio的版本是:android-studio-ide-171.4443003-mac.dmg

首先安装jdk。

然后在androidstudio里面安装android的sdk。注意cordova支持的版本号。具体查看:

https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html#requirements-and-support

最后在.bash_profile文件里面配置JAVA_HOME。最后效果是

首先安装cordova

然后创建一个工程:

其中hello是工程文件夹的名字,com.example.hello是android需要的id,HelloWorld是应用的名字。

进入这个工程,添加需要平台

检测环境是不是配置对了

在检测cordova需要的环境是不是安装,之后出现这样的提示。

Could not find an installed version of Gradle either in Android Studio,

or on your system to install the gradle wrapper. Please include gradle

in your path, or install Android Studio

这是因为在android studio2.3.1 gradle的位置变了,导致找不到了。

这个时候需要手动安装了。

这样android的环境就配置好了。

将angular工程中所有的文件合并或者拷贝到cordova工程中。合并package.json文件的时候要小心,不要遗漏了什么。

我的package.json文件太长了,就不往上传了。借用一下别人的图片。

使用 ng serve 运行一下工程,发现报错:

Cannot read property 'config' of null TypeError: Cannot read property 'config' of null @angular/cli/tasks/serve.js @angular/cli/commands/serve.js

那是因为angular工程里面的一个隐藏文件.angular-cli没有拷贝到cordova里面去。拷过去之后,再次运行就好了。

在index.html文件里面添加

<script type=”text/javascript” src=”cordova.js”></script>

将index.html里面的base修改成:

<base href=".">

安装插件

cordova plugin add cordova-plugin-device

将.angular-cli.json的outDir属性改为“www”.

"outDir": "www"

打开android模拟器,运行命令

就可以出现步骤二的结果了。

img的src所对应的图片没有加载出来。那是因为cordova把img的src转成:

file:///assets/img/check-box-unchecked.png 在android手机里面没有找到这个图片,就报错了。

file:///assets/img/check-box-unchecked.png Failed to load resource: net::ERR_FILE_NOT_FOUND

可以使用插件: cordova-plugin-file 来解决问题

https://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html

https://medium.com/@nacojohn/convert-your-angular-project-to-mobile-app-using-cordova-f0384a7711a6

https://github.com/henotia/Angular5-Cordova


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11475441.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存