1.2 为什么选择Flutter
这一节主要讲述为什么选择Flutter框架来开发App,也就是Flutter的优势、特性及发展。
1.2.1 Flutter的优势
Flutter的优势如图1.1所示。
图1.1 Flutter的优势
快速开发和迭代。Flutter自身具有热修复(热重载)的功能,尽管有使用的限制,但是它依然能够为开发过程提供更高的效率。另外,Flutter SDK还允许我们修复崩溃和继续从应用程序停止的地方进行调试。
界面流畅,样式美观。对于不同的平台(Android和iOS),Flutter提供了风格不同的控件,以满足不同平台的设计理念。
提供原生性能。Flutter提供了一种响应式视图,无须JavaScript做桥接;强大的API使得实现复杂的界面效果成为可能;高性能的渲染机制使得120 FPS(frames per second,帧每秒)的高帧率(在120Hz刷新率的设备上)可以轻而易举地实现。当界面上的图片数量越来越多时,与React Native相比,Flutter的优势会越来越明显。
灵活的跨平台开发。Flutter可以单独作为开发框架完成整个App的开发,也可以与现有原生代码相结合实现Hybrid混合模式的开发。
1.2.2 Flutter强大的跨平台特性
Flutter支持iOS,Android及Fuchsia平台的App开发。正如前文中提及的那样,Flutter的优势之一就是灵活的跨平台开发。
Flutter具备统一的应用开发体验。它拥有丰富的工具和库,正是这些工具和库使得开发者可以同时在iOS和Android平台上尽情挥洒自己的创意。
同时,Flutter又可以访问本地功能和 SDK。它可以复用现有的代码,虽然各平台有所区别,但它仍能很好地处理iOS平台和Android平台的差异,实现原生和Flutter框架之间的无缝对接,甚至可以满足和NDK之间的通信。
此外,Flutter保持了不同平台的UI设计理念,如对于iOS平台使用Cupertino风格、对于Android平台使用Material Design风格,这很好地处理了不同UI设计语言的差异性,确保用户能有Pure iOS和Pure Android的体验,而不是简单粗暴地使用一种UI风格来满足不同平台。
图1.2是Flutter官网列出的适用于iOS平台和Android平台不同UI风格的组件的一部分。
图1.2 iOS平台和Android平台不同风格的组件库
Flutter的目标是用来创建高性能、高稳定性、高帧率、低延迟的Android和iOS应用。
1.2.3 Flutter的明天
目前,阿里巴巴、谷歌、京东、腾讯等越来越多的厂商使用Flutter技术。在Flutter官方网站的Showcase页面上,展示了众多使用Flutter技术开发的产品,如图1.3所示。
与此同时,Flutter自身一直在快速发展、迭代更新,截止到2019年4月,GitHub上的Flutter代码仓库已经有超过13 500次的提交,超过140个Release。而且从issues的处理反馈上看,解决数量之多、响应速度之快,令人称赞。再加上背靠Google这座大山,相信未来Flutter开发技术会得到开发者越来越多的青睐,会有越来越多的App使用Flutter SDK进行开发;Flutter SDK自身也会日趋完善,功能日益丰富。
图1.3 Flutter官网的Showcase页面