html5将来会成为开发app的主流方向吗?
将来应该是flutter的天下,基本统一web前端,和移动端,包括Android和iOS!
fluttet由Google爸爸开发的UI框架,用C++编写的引擎。自己渲染,语言用Dart开发就行,入门门槛低!
欢迎讨论!
HTML5是相当外行的说法, 不过类似你这样的问题, 其实很早之前就出现了, 历经无数的争论而依旧是毫无定论,未来的事儿谁也说不清楚。我自己的立场, 觉得是PWA更有可能成为主流, 也仅仅是占有率可能会大一点, Native自然有他不可替代的地方, 这里就几个名词,帮你科普一下。
常放在一起讨论的是: Web APP,Native APP, 微信小程序, PWA。
我想你说的HTML5就是指的Web APP, 是运行在浏览器中的网页,当然在PC上依然可以访问, 但是适配不一定这么好。由于canvas以及很多HTML5新兴API的支持, 让Web APP能发挥巨大的功能。而你所说的HTML5, 实际上是指的HTML5的API和规范集合。 其中包括了HTML/CSS/JavaScript的内容, 是泛指,并不是一项技术。
剩下的懒得说啦... 这些都是些很简单的东西。你要有兴趣就自己查资料吧~
哦, 顺便说一句, 不要老是想着这些虚无缥缈的东西, 多看书, 多学习, 不要搞事。
不说未来,现在混合式开发就是主流。未来嘛,不好说,但肯定不是原生开发方式,这种方法只适合少数功能性强的软件,实力雄厚的公司。
flutter不好说,不支持html是flutter的优点和缺点,微信小程序它肯定是不支持的,虽然flutter尽力在尝试支持web,但很难,web是一个大工程。
一个最偷懒的需求,苹果,安卓,小程序,移动网站用一套,改动不想太大,flutter目前这个需求做的一般。
随着HTML5的发展,三年内APP会消失吗?
首先要回答这个问题我们来明晰一下原生开发、Web APP (HTML5)开发和混合开发之间的优劣比较
一、原生开发、H5开发以及混合开发各自优劣
(一)原生开发:主要是两大类平台一个是安卓(Android平台),一个是苹果(iOS),他们的开始都是利用官方所提供的专属语言、类库以及相应的开发工具,比如安卓主要应用的是Java语言,开发工具主要是以Eclipse、Android studio为主,IOS主要是用Objective-C语言开发 和Xcode工具进行开发。优点:1、运行速度快、交互优势强、用户体验好,很少出现卡顿等显现。2、支持大量的动画效果。3、可以直接调用底层硬件的功能。4可以很快捷的使用设备提供的接口,处理速度也相对较快。劣势:主要体现在开发时间长、开发成本高,一个APP需要实现两套不同的界面,可移植性也比较差,APP升级需要重新安装等烦恼。
(二)Web APP (HTML5)开发
Web APP开发其实主要涉及到就是 css、js、HTML语言的综合应用,以及和后台的数据交互,优点:开发成本低,开发应用上线快、兼容性好,不论是IOS还是安卓平台都可以直接打开使用,跨平台较方便,并且后期升级是自动升级不需要用户单独再次下载安装。缺点:由于Web技术本身的限制,H5移动应用不能直接访问设备硬件和离线存储,所以在体验和性能上有很大的局限性。主要体现在用户体验不良好,在一些动画过度实现上经常出现卡顿,占用cpu资源高,并且无法调用底层硬件功能,从而限制了某些应用无法开发的尴尬场面,并且对互联网有着比较高的要求,如果无网络或者离线情况下根本无法做任何操作。
(三)混合(原生+H5)开发
这种开发方式又很好的弥补了以上第二种开发的缺点,比如在原生代码部分利用Web View插件或者其它框架为H5提供容器,程序主要的业务实现、界面展示都是利用与H5相关的Web技术进行实现的。优点:基本和html5开发优势大体类似,主要体现在可以实现更多功能,能够在不同平台之上以原生应用形式运行,通常能够访问设备当中的全部传感器及硬件,但在支持新功能方面可能存在一定滞后。缺点:加载速度完全依赖服务器速度相应,功能和一些界面是固定的无法自定义,并且在安全性上也有一定漏洞。性能表现,特别是在游戏及某些图形及多媒体处理负载较高的场景下,远逊于原生应用。
二、未来发展趋势
就目前来看依照本人实际开发经验及公司未来部署以及客户要求,未来三年内原生APP还是相较于webapp和混合开发有着一定的优势,并且市场占有份额还是处于主导以为,提问者不必过于担心,但是从目前第三方框架及小微企业的市场要求,混合开发也是一种趋势。尤其是在初创公司,资金短缺情况下。但是未来科技发展不确定性也是有的,随着5G网络逐渐普及,以及手机硬件处理速度的不断提升,混合开发在未来也许有着更好的用户体验,以及补齐目前存在的短板。所以面对竞争市场的不断变化,会原生开发和混合开发都掌握的复合型人才会有更大的优势。
欢迎关注我,一个程序员老司机,和你分享编程、运营、需求等等经验和趣事。
之前就在一个知名的APP公司上班,和你聊聊他们的进化史。
第一阶段
我在这个APP公司的时候,第一阶段,他们采用的是原生框架+H5的开发模式,的确,市场上需要什么功能,都能够很快完成,但是因为APP里面有直播功能,并且每次直播的时候,都会有大量用户使用我们公司的APP,于是问题出现了,使用H5开发的APP在体验性方面、窗口切换方面、动画方面等等和原生相比相差有些大。
第二阶段
公司产品经理发现了这个问题,于是就开始将之前H5开发的部分分成几个块,然后每个块逐渐的转变成原生开发,除了一些转变成本非常高的块外,后面基本上都变成了原生的。
H5 VS 原生
H5在目前来看,对于很多公司来说,仅仅是一个过渡阶段,当公司将这个阶段度过之后,都基本上会变成原生开发的,但是对于一些复杂的功能,或许H5开发是优选,不过这个时候,都是采用一些性能高的浏览器内核框架。