作者:empty 页数:143 出版社:empty |
Flutter不一样的跨平台解决方案Evalua in Warning的Hco ou ment was created with Spire.PDF for NET.本文主要介Flutter相关的东西, 包Fuchs ln.Dart.Flutter特性安以及整体架构等内容,简介Flutter作为谷歌最近推出的跨平台开发框架, 一经推出便吸引了不少注意。关于Flutter, 目前我们知道它是一个跨平台开发框架。但是它本身并不止于此, 例如Fuchsia、Dart等, 我们也都需要去了解。Fuchsia说到Flutter, 绝对绕不开Fuchsia, 这个是谷歌开发的一款全新的操作系统, Git Hub地址以及Google source主页。Fuchsia内核是Magenta Kernel, 一个基于Little Kernel的项目。该系统与Android相比, 无论是存储器还是内存之类的硬件要求都大帖降低,外界推论是一款面向物联网的系统。笔者倒是没有查到谷歌开发这款操作系统的目的,如果有知晓的,也烦请告知。就像很多博客主说的那样, 如果只是取代Android, 那无疑是一种很不好的做法。任何技术的推动, 都得靠背后的商业驱动,尤其是这种涉及到手机厂商利益的技术。FlutterFlutter是Fuchsia的开发框架, 是一套移动UI框架, 可以快速在iOS、Android以及Fuchsia上构建高质量的原生用户界面。目前Flutter是完全免费、开源的, Git Hub地址, 其官方编程语言为Dart, 也是一门全新的语言。所以说,上手成本比较高,对于移动端开发人员,语言以及框架都是全新的,整个技术栈的积累也都得从头开始。可以看下其官方介绍的特性:·快速开发:Flutter的热重载可以快速地进行测试、构建UI、添加功能并更快地修复铝误。·富有表现力, 漂亮的用户界面:自带的Material Design和Cupertino(i0S风格) widget、丰富的·响应式框架:使用Flutter的现代、响应式框架, 和一系列基础widget, 轻松构建您的用户界面·访问本地功能和SDK:Flutter可以复用现有的Java、Swift或Objc代码, 访问iOS和Android上的原生系统motion API、平滑而自然的滑动效果。功能和系统SDK
统一的应用开发体验:Flutter拥有丰富的工具和库, 可以帮助开发者轻松地同时在10S和Android系统中实现想法和创意。·原生性能:Flutter包含了许多核心的widget, 如滚动、导航、图标和字体等, 这些都可以在10S和Android上达到原生应用一样的性能,其实从官方特性来看,唯一有点吸引力的就是统一的应用开发体验。一套代码运行在多个平台,做到真正的跨平台。像热加载, 目前Android开发本身就支持了, 响应式框架以及访问本地功能和SDK, 对于Native来说, 本身并没有多大的吸引。至于漂亮的用户界面, 国内的商业项目, 哪一个会去按照Material Design去设计,跨平台本身, 往往意味着性能受损, 通用性解决不了的问题, 又得回到Native去实现。所以这些因素也是跨平台从移动端诞生之初就开始提,到现在也没有被很好解决的一个原因。至于谷歌能够做到什么程度,或者说开发者该保持什么期许,我觉得都不好说,或许谷歌解决了一个多年的难题,或者又像被谷歌放弃掉的其他项目一样。抛开商业层木文档使用书栈(BookStack.CN) 构建面,对于技术人员,我们更多的是应该去关注它的思想,谷歌是如何去解决这些实际存在很久的问题的,至于技术本身的发展,这个是个人开发者无法去左右的,技术的更选,保持一种学习的状态,然后努力锻炼身体,就能够保证不被淘汰掉。
市面上的跨平台解决方案,可以大致归结为两类:·使用平台支持的web技术:这些解决方案基本上加载了应用程序中的移动浏览器, 并在该浏览器中执行所有的逻·本地跨平台:程序员编写的代码自动转换为Native代码, 这种方式的优点是近乎原生的性能, 例如RN、这些方案是否真正的解决了跨平台问题呢?从目前的状况来看,很显然是没有的,因为它们都始终逃不开性能、包大小、流畅性、内存、平台特性等问题。RN单独拧出来说,是因为它们并不是追求的一次写到处跑,FB自己也知道不现实,所以把号改成一次学到处写,去考虑平台的特性,去考虑这个被跨平台方案经常忽略的问题,但是RN也并没有被广泛的接纳,从阿里开始使用到放弃,里面的很多坑都绕不过去。写一次到处跑确实很诱人,从企业角度讲,可以节省大量的人力,但是却忽略了一个很基础的问题,不同平台是否希望如此,苹果是否会愿意自己的生态被打破,不同平台的特性是否应该被归为一致。上面简单说了传统跨平台解决方案, 我们再回过头看看Flutter的解决方案, Flutter跨平台最核心的部分, 是它的高性能渲染引擎(Flutter Engine) 。Flutter不使用浏览器技术, 也不使用Native的原生控件, 它使用自己的说到widget, 就要说一句Flutter的一切为uid get理念, widget是Flutter应用程序用户界面的基本构建块。每个widget都是用户界面一部分的不可变声明。与其他将视图、控制器、布局和其他属性分离的框架不同, Flutter具有一致的统一对象模型:widget。在更新widget的时候, 框架能够更加的高效。