像美团外卖这样的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开发模式。
移动应用开发的方式,目前主要有三种:
几种模似都可以开发出应用,小应用无所谓,但是大流量应用,对图形要求高的如 游戏 等原生开发的效果还是最好
支付宝打开很慢,就是因为采用混合开发,使用人多了不如原生开发
不行的哦。任何你看到的应用和网页,都需要多个语言开发的,大的分比如前端和后端,用的语言都是不一样的
全球范围内App开发者数量有增无减,你选择哪种编程语言来开发App呢?你得研究过跨平台app设计,你得知道一些app开发的常见缺陷。这取决于你的受众和你所选择的平台,然后选择一门合适的语言。你会选择哪种语言来开发app呢?你选择它的理由是什么呢?
Objective-C
Objective-C被认为是iOS app开发的标准语言,通过苹果的Xcode集成开发环境(IDE)使用Objective-C来开发。
Objective-C具有以下优点:开发的高效能性,可以让你充分利用手机的各项功能。使用Objective-C进行编码可以让app在所有iOS设备上获得相差无几的体验,适配性比较高,比如iPhone和iPad。
不过,Objective-C使用起来也有一些难点,比如不是那么容易学习,使用Xcode可能比普通开发更难一些,更要到的一点是通过Objective-C开发的app很难适用到其他平台上,比如Android phones和Windows phones。
不过,也不用这么悲观,iPhone app可以被写成web app,web app不需要像Objective-C那么精细复杂的语言,你可以使用HTML、 CSS或者JavaScript。另外,web app还可以使用iPhone的某些功能,你可以使用HTML5,针对iPhones的web app可以使用位置功能。但是,目前情况是web app开发比较有限。
Web app开发不能整合设备的核心功能,比如发文本信息,也不能充分使用App Store进行销售和更新。
一些人认为移动web app避免了可扩展性问题,因为它可以跨平台使用。同时,web app也绕开了App store严格的提交和更新审查规则。相比较Objective-C而言,HTML、CSS以及JavaScript学起来更容易些。
JavaScript (Plus CSS和HTML)
JavaScript主要用来进行web浏览器和app的开发,性能方面有待进一步改进和完善。web浏览器开发不完全需要一门新的语言,使用和开发方面没有太大问题,套用一句话说,也就是没有坏的时候不用去修理它。
Node.js
Charlie Robbins(Nodejitsu CEO)说:“我认为你完全没有办法让Google、Apple、 Microsoft、Mozilla以及Opera在开发语言上达成一致,这是需要数百万美元来实行的。”JavaScript是相对比较简单的语言,同时还是一种比较有趣的语言,可以用在浏览器开发方面。最重要的是CSS和HTML可以一起使用,允许结构和归档的分离。
Robbins主要从事Node.js语言的研究,他以前是一个.NET和Ruby程序员,在他看到类似Silverlight和Flex这类程序/项目失败于前端编程的时候,他看到了Node.js的机会。
Robbins开始全职从事JavaScript开发,并且6个月后成立了Nodejitsu公司,为app开发提供高效的云服务。Robbins表示Node.js绕开了通用的开发步骤,使用起来更为简单。他说:“Node.js可以为你提供大部分你想要的实用函数,并且可在NPM (node package manager)中使用,我觉得这是个优势而不是劣势。”
Ruby:一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言
Robbins先前使用过Ruby, 他并不肯定Ruby,他说:“Ruby面临的一个问题是工程师看到函数成为语言的一部分,他们认为使用起来也非常快,他们并未对函数作为语言的执行进行深入挖掘。”
Robbins推荐使用第三方函数来代替,这样可以对app开发有个更综合更全面的理解。他说:“使用第三方函数的时候你会持很重的怀疑心态,你会仔细去看代码,看哪些运行的快哪些运行的慢,最终你对app的运行情况会有更深刻的理解。”
在app开发过程中创建一门新的语言或者提高现有语言的健康竞争能力,开发者需要知道哪种语言适合自己,尤其要明白各种语言的效能和功能。
1. 用ionic和ng(angular)不需要服务器电脑能上网就行(本回复只计入android )2.你需要安装node环境(建议用4.2.6版本) 贴上网址:Node.js 还有java的 安装C++ 环境,一般电脑都装有.
3.安装npm ,npm (cmd命令行 npm -v出版本号代表安装成功 或者 npm version)
4.通过cmd命令行依次安装 npm install ionic cordova (记得命令行cd切换到你的项目文件夹中再执行命令 ,不然你找不到安装的东西)
5.创建项目模板startmyAppsidemenu/ tabs/blank (列举了三种其中tabs比较常用)
6.生成的www文件中用index修改内容和路由,然后添加项目平台 ionic platform add android
7.打包 ionicbuildandroid 可以在platforms ->android->build ->outputs->apk 就成功了