app开发

1.原生开发

   优势:

1)可访问平台全部功能

2)速度快、性能高、可实现复杂的动画及绘制、整体用户体验度好

 

缺点:                                                                                                                                                                

1)平台特定、开发成本高;不同平台必须维护不同代码

2)内容固定、动态化弱,有新功能更新时只能发版。

 

 

2.跨平台开发

1)H5+原生混合开发(CordovaIonic、微信小程序)原理就是将APP的一部分需要动态变动的内容通过H5来实现,通过原生的网页加载控件WebView (Android)或WKWebView(iOS)来加载 【运行在WebView中,而webView实质上就是一个浏览器】

优:动态内容是H5web技术栈、社区及资源丰富

缺:性能不好、对于复杂用户界面或动画、WebView不堪重负

 

2)JavaScript开发+原生渲染(React NativeWeek、快应用)

 

JavaScript开发+原生渲染的方式主要优点如下:

  1. 采用Web开发技术栈,社区庞大、上手快、开发成本相对较低。
  2. 原生渲染,性能相比H5提高很多。
  3. 动态化较好,支持热更新。

不足:

  1. 渲染时需要JavaScript和原生之间通信,在有些场景如拖动可能会因为通信频繁导致卡顿。
  2. JavaScript为脚本语言,执行时需要JIT(Just In Time),执行效率和AOT(Ahead Of Time)代码仍有差距。
  3. 由于渲染依赖原生控件,不同平台的控件需要单独维护,并且当系统更新时,社区控件可能会滞后;除此之外,其控件系统也会受到原生UI系统限制,例如,在Android中,手势冲突消歧规则是固定的,这在使用不同人写的控件嵌套时,手势冲突问题将会变得非常棘手。

 

3)自绘UI+原生(QT for mobileFlutter)

 

Flutter发展:

2017 年 Google I/O 大会上,Google 首次推出了一款新的用于创建跨平台、高性能的移动应用框架——Flutter。

2018年2月,Flutter发布了第一个Beta版本,同年五月, 在2018年Google I/O 大会上,Flutter 更新到了 beta 3 版本。

2018年6月,Flutter发布了首个预览版本,这意味着 Flutter 进入了正式版(1.0)发布前的最后阶段。

 

观其发展,在2018年5月份,Flutter 进入了 GitHub stars 排行榜前 100 名,已有 27k star。而今天(2019年5月29日),已经有65K的Star。经历了短短2年多的时间,Flutter 生态系统得以快速增长,由此可见,Flutter在开发者中受到了热烈的欢迎,其未来发展值得期待!

优点:

生态:从Github上来看,目前Flutter活跃用户正在高速增长。从Stackoverflow上提问来看,Flutter社区现在已经很庞大。Flutter的文档、资源也越来越丰富,开发过程中遇到的很多问题都可以在Stackoverflow或其github issue中找到答案。

技术支持:现在Google正在大力推广Flutter,Flutter的作者中很多人都是来自Chromium团队,并且github上活跃度很高。另一个角度,从今年上半年Flutter频繁的版本发布也可以看出Google对Flutter的投入的资源不小,所以在官方技术支持这方面,大可不必担心。

开发效率:Flutter的热重载可帮助开发者快速地进行测试、构建UI、添加功能并更快地修复错误。在iOS和Android模拟器或真机上可以实现毫秒级热重载,并且不会丢失状态。这真的很棒,相信我,如果你是一名原生开发者,体验了Flutter开发流后,很可能就不想重新回去做原生了,毕竟很少有人不吐槽原生开发的编译速度。

 

 

posted @ 2019-09-30 14:36  生如逆旅,一苇以航  阅读(277)  评论(0编辑  收藏  举报