哈喽,我是老刘
老刘做Flutter开发6年多了,在手机端的案例见到很多,PC端的确实比较少。
Flutter也的确不是PC端开发的首选。
不过前段时间无意见发现一个Flutter跨Windows、Mac、Android和iOS四个端的典型例子,百度输入法。
事情是这样的,春节前一段时间,搜狗输入法上线了一个AI助手,我觉得挺烦人的还很难彻底关掉,就决定换一个输入法,于是下载了百度输入法。
万万没想到,这个浓眉大眼的家伙也有AI助手。
可是装都装了,想着先试试能不能把AI助手禁用。
就在进程管理器里面看到了Flutter
但是只是名字可能是巧合,所以还需要确认一下是否真的使用了Flutter进行开发。
如何判断一个PC端应用采用了Flutter
看有没有相关文件
打开百度输入法的安装目录,可以很容易找到Flutter相关的文件
这回Flutter的基础文件都有了,如果不放心还可以看看flutter_windows.dll的内容
到这里基本上可以判断百度输入法的这个AI助手是Flutter开发的了。
但是我又产生了一个疑惑:为啥要选择Flutter?
因为在pc端我们有太多的选择了,而对于AI助手这类以聊天界面为主的UI,其实一个基于Web技术的开发框架是很不错的选择。
既然如此,那选择Flutter一定就是为了跨平台考虑。
于是我去百度输入法官网看了下,确实是一个跨平台的App:
又去下载了一个Android端的安装包,在里面确实也找到了Flutter的相关文件。
因此我推测百度输入法本身应该是在各个平台采用原生技术开发的,但是新增的这个AI助手,采用了Flutter作为主要的开发框架。
Flutter的典型应用场景
其实前面那些动作大多出于一个Flutter开发者的好奇心,但是仔细想想,这确实是Flutter的典型应用场景。
单纯看PC端,我觉得开发一个AI助手用Web框架是不错的选择。
但是考虑百度输入法的场景,需要同时开发手机和PC两种共四个平台。
另外这不是一个全新的App,还需要和原有的输入法一定程度进行结合。
因此开发框架的选择就需要满足以下三个条件:
-
足够好的跨平台能力。要能提供非常高的多端一致性体验。
-
足够好的性能。出于AI助手的定位,未来很有可能需要增加文档分析、画布甚至生成图片的能力。在PC端可能问题不大,但是考虑到手机端,就需要开发框架能提供非常高的性能支撑。
-
和原生App的无缝融合。如果后续这个AI助手做大做强很有可能会和输入法本身进一部融合,这时开发框架和原生无缝衔接的能力就会显得无比重要了。
基于上面三个条件要求,特别是多端一致性和手机端性能的要求,相信留给开发者的选择已经不多了。
而Flutter恰恰是能比较理想的满足这三个条件的开发框架。
考虑到未来这个App可能的变化,即使后续这个AI助手需要部署端侧的轻量级模型,Flutter的原生融合能力和性能也能提供有效的支撑。
所以我说这是一个典型的Flutter跨四端开发的应用场景。
总结
无意中发现这样一个Flutter的典型应用场景,相信对一些选择困难症的朋友有帮助。
另外对于希望在AI应用上做一些尝试的开发者,这也是一个很好的案例。
不管是在已有的应用中增加AI相关的功能还是开发全新的应用,都可以考虑Flutter作为核心开发框架。
另外说一下百度输入法的使用体验:
输入便利性上略微比搜狗差一点,但是差距不大,总体比微软拼音好用不少。
从性能上,微软拼音最好,百度和搜狗差不多。偶尔百度输入法会有卡顿的场景个人分析可能是后台在更新。
如果看到这里的同学对客户端开发或者Flutter开发感兴趣,欢迎联系老刘,我们互相学习。
点击免费领老刘整理的《Flutter开发手册》,覆盖90%应用开发场景。
可以作为Flutter学习的知识地图。
覆盖90%开发场景的《Flutter开发手册》