Flutter与原生交互

Posted 一个小码农的成长史

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flutter与原生交互相关的知识,希望对你有一定的参考价值。

一.什么是Flutter

Flutter是Google使用Dart语言开发的移动应用开发框架,使用一套Dart代码就能构建高性能、高保真的iosandroid应用程序,并且在排版、图标、滚动、点击等方面实现零差异。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。

二.Flutter的特点

Flutter作为一个移动应用程序的软件开发工具包(SDK),具有以下特征:

1.跨平台应用的框架,没有使用WebView或者系统平台自带的控件,使用自身的高性能绘制

2.简化版的浏览器,最大限度在android和ios上统一UI,包括业务逻辑和用户体验

3.开发语言使用dart,结合C, C++, 和Skia(2D渲染引擎)构建

4.支持hot reload,包含着完整的控件和工具链

5.一切皆控件,控件是每个Flutter应用程序的基本构建块。

6.组合大于继承,控件本身通常由许多小型、单用途的控件组成,结合起来产生7.强大的效果,类的层次结构是扁平的,以最大化可能的组合数量。

8.目前只能够运行大部分Dart代码

三.为什么用Flutter

 1.对于用户来说,Flutter能够提供优美的ui和流畅的用户体验
2.开发人员的经验,来自社区的强有力的支持。 因为对Flutter的热情,从Stack Overflow,Google Groups到博客文章的所有内容都是高质量。
3.在Flutter中开发自定义UI非常简单
4.对于android开发用户来说,内置Material Design小部件是Flutter框架的重要组成部分。
5.高效率,用一套代码库就能开发iOS和Android应用
6.可以在应用程序运行时更改代码并重新加载查看效果,也就是热重新加载。
7.修复崩溃时可以从应用程序停止的位置继续调试
8.使用新型的、表现力强的语言和声明式的方法,用更少的代码来做更多的事情
9.支持Windows,Mac和Linux的Headless test runner
10.支持与系统平台和第三方SDK交互的插件API

四.Flutter现阶段存在的问题

1.目前Flutter才preview,还没发第一个release版本,所以可能会有一些或多或少的坑。
2.另外Flutter侧重于UI,在系统能力上还是得靠原生
3.Flutter说的是跨平台,但是没有很完美的解决各个屏幕差异所带来的问题。实际上还是需要去做一些适配;
4.目前看这个问题特别突出,在一些性能低的Android手机上,会出现一些卡顿问题。在一些高端机型上,一些转场动画,效果也不是特别理想,一旦涉及到一些复杂的页面,切换页面就会出现很明显的卡顿问题;
5.插件层对生命周期的监控,是App级别的,无法针对某一个页面。Flutter中控件也没有很明确的生命周期这一概念,就是两三种状态的切换。

四.总结

Flutter是一个很好的多平台开发解决方案框架,可以帮助你节省很多开发时间。但就目前来看,虽然Flutter没有使用javascript桥接器来与native连接,自有一个2D渲染引擎。但对于如今这个需要性能,用户体验的时代来说这并不能达到我们的要求。同时在编译过程中又有各种的问题,最基础的一件事就是当你需要打包的时候,你无法预测会发生什么错误导致打包失败---这主要跟过长的操作过程有关。

1.所以当你是一个初学者要学习编程的时候,这个语言并不是一个能让你节省时间的工具。
2.如果你有一定的移动端开发基础,你可以尝试下使用flutter,尤其当你没领略过响应式框架及链式语法的魅力。

3.如果你想对现有项目做集成可以看下闲鱼的文章,他们已经接入了Flutter,并深度的解读了可行性。
4.如果说你的项目并没有使用大量H5或者集成过其他Hybird框架,那么我不建议你们接入Flutter,这会让你醉生梦死,尤其在你并没有搞清楚Dart做了什么的时候。

以上是关于Flutter与原生交互的主要内容,如果未能解决你的问题,请参考以下文章

Flutter与原生交互

Flutter与原生交互

Flutter 驱动程序与原生元素交互

Flutter与原生混合开发

Flutter与原生混合开发

Flutter与原生混合开发