Flutter学习第五篇之flutter_boost路由框架

上篇博客讲了官方的路由方案,但是缺点是引擎渲染较慢,出现黑屏卡顿。作为国内Flutter技术引导者的咸鱼对路由做了优化,得成一套自己的开源路由框架——flutter_boost 官网Github

我刚开始学习flutter的时候很痛苦,首先不知道怎么才能实现native和flutter混编,其次不知道如何使用flutter_boost,网上的博客一大堆但是没有一个完整而又简单的demo可以提供给我,所以我就开始着手写一个Flutter学习的系列

开始集成flutter_boost之前你需要知道两点基本知识:

1 本文的demo建立在混编的基础上面
如果你还不知道Native和Flutter如何混编的话,先去看下Flutter学习第三篇之Android Flutter混合编译,混编双工程(一个Native工程,一个是Flutter工程)是最方便有效的开发方式,flutter_boost官方提供了一个可以直接运行的demo但是却是单工程(native和flutter耦合在一起)的项目——逻辑不分离,代码太混乱是我采用双工程的原因。

2 flutter_boost和 flutter_sdk的匹配
在Flutter学习第一篇之环境搭建中我提到了下载fluttersdk,flutter团队真的是更新一个版本就丢弃一部分api,这样的结果就是每个版本都需要我们开发者使用不同的api,对于flutter_boost也是一样,为了能够实现flutter_boost的全能性,flutter_boost对大部分fluttersdk做了兼容处理,怎么兼容处理?看下图~
Flutter学习第五篇之flutter_boost路由框架_第1张图片
也就是说每一个fluttersdk版本都对应一个flutterboost版本,这样才能保证flutter版本不同,flutter_boost都可以有效。所以我们在依赖flutter_boost的时候一定要找到和自己flutter_sdk对应版本的flutter_boost版本
Flutter学习第五篇之flutter_boost路由框架_第2张图片
运行flutter doctor查看到自己的flutter版本是 v1.12.13+hotfix.9,所以我的flutter_boost版本应该是1.12.13版本

3 如果你只想"吃鱼"的话:

FlutterBoostDemo git地址

4 如果你想"学渔"的话:

那么请你认真的看下去,因为稍有遗漏就会出错。

大致思路:

  1. 从flutter_boost官网对应的分支上下载代码,分别拷贝进Native项目和Flutter项目
  2. Flutter项目打包出产物,Native混编代码即可实现路由跳转

之前混编的博客中有写如何同一级目录下创建两个工程,在这里不再赘述了
Flutter学习第五篇之flutter_boost路由框架_第3张图片
因为上文中我查到我的fluttersdk是v1.12.13+hotfix.9,而我又是支持androidx的,那么我的flutter_boost版本也是v1.12.13+hotfixes,所以去官网切换到对应的分支展示对应的代码。
Flutter学习第五篇之flutter_boost路由框架_第4张图片
将此工程克隆或者下载下来,打开example文件夹
Flutter学习第五篇之flutter_boost路由框架_第5张图片
这个example就是我们的示例代码
Flutter学习第五篇之flutter_boost路由框架_第6张图片
将android里面的代码拷贝到Native里面,lib里面的代码拷贝到flutter_module中,pubspec.yaml里面的flutter_boost依赖不要忘记添加,按照混编的方式构建flutter产物,就可以运行了。

如果flutter项目遇到下面的报错是因为官方使用的是单工程,我们使用的是双工程找不到而已,把

import 'package:flutter_boost_example/platform_view.dart';

改成

import 'platform_view.dart';

这样就可以运行 flutter build aar 啦
Flutter学习第五篇之flutter_boost路由框架_第7张图片

项目地址如下:

FlutterBoostDemo git地址

你可能感兴趣的:(Flutter)