Freadhub终于升级Flutter2.0了

  • 本文为 AriesHoo 原创,未经授权禁止转载!
  • 原文地址

相关文章一:用Flutter给Readhub写一个App

相关文章二:Flutter版本Readhub开源

相关文章三:Flutter iOS真机调试及打包过程记录

相关文章四:Flutter iOS打包过程及构建上线审核通过流程总结

相关文章五:Freadhub终于升级Flutter2.0了

前言

Flutter 在 2021.03.04 发布了 Flutter 2.0版本 正式进入 全平台Stable时代 具体可见

【译】Flutter 2.0 正式版发布,全平台 Stable

【译】Flutter 2 正式版的新功能,一睹为快

Flutter 升级 2.0 填坑指导,带你原地起飞

Freadhub没有第一时间升级,但是也在4月进行了Flutter 2.0空安全的升级并在 2021-04-12 发布了 1.2.4版本,后期陆陆续续做了一些小调整,直到最近 公司的项目做了个卡片分享的功能,效果还不错就同步移植,在此做一个简单的记录。—当前最新版本1.2.6

扫码下载

注:还是只支持Android手机下载

iOS请自行下载运行。

开源地址-flutter_readhub

升级Flutter2.0

大家都知道执行flutter upgrade 或者 Tools --> Flutter --> Flutter Upgrade即可升级Flutter到最新版本。

Flutter升级
但是在升级前还是建议copy 一份 以免出现意外情况–当然还有其它方式可以复原,自己习惯的即可。

迁移空安全

官网文档中文文档空安全 迁移大概有下面几个步骤:

1、 执行flutter pub outdated --mode=null-safety ,检查自己项目依赖的库是否都支持空安全

比较给力的是Freadhub所用到的三方库大多都已升级了空安全版本,唯一不支持的分享插件flutter_share_plugin已使用官网分享库 share替换 ?–大家在升级过程中也可尝试。如果是使用频度较高的库,大概率会很快升级的。不然就找下替代库即可。

全支持会出现 All your dependencies declare support for null-safety. 提示

全部支持空安全

有不支持空安全

如果还有不支持空安全的库–那就再等等。因为自己下载下来修改成本太高,且后期维护成本也不小。

2、 如果都支持了,执行 dart migrate --apply-changes。执行完毕之后,你的 Dart SDK 版本会自动改为大于2.12.0

注意:执行 dart migrate 命令必须确保 SDK 是小于 2.12.0 的;
不加 --apply-changes 的话,会有一个浏览器地址,打开之后,可以在浏览器中进行修改

3 、工具执行完成一定会有一些 错误,根据自己的业务场景对代码进行更正。

使用官方分享库

前文提到:Freadhub之前版本使用的分享插件为flutter_share_plugin,遗憾的是该库未升级 空安全支持。故使用官方分享插件share替换。
其实之前使用flutter_share_plugin的原因在于官方的share插件功能太单一了只支持分享文本不支持分享文件。如今官方插件支持分享文件且支持空安全换回来何乐不为。—0.6.5版本开始增加分享文件功能。

丰富分享效果

之前版本Freadhub只支持列表长按分享卡片模式,且不支持分享指定App(常见的QQ、微信、微博等)

之前版本分享功能

最新版本支持:资讯详情页分享文本链接到微信好友QQ微博钉钉企业微信复制链接浏览器打开更多

资讯详情分享文本链接- Android

资讯详情分享文本链接- iOS

最新版本:资讯列表及资讯详情分享页支持卡片(图片)分享到微信好友朋友圈QQ微博钉钉企业微信更多等。–且内置Freadhub卡片样式及掘金卡片样式两种效果选择

Freadhub卡片样式- Android

掘金卡片样式- Android

掘金卡片样式- iOS

注:该功能涉及修改 share插件-版本2.0.1当前最新版,且只修改了Android部分,iOS未找到相应实现方式,且网上实现方式均是2017年左右代码,拷贝运行未调起相关App。–如有大佬知道iOS如何使用系统自带分享功能指定App的麻烦不吝赐教,感谢?!

Android只支持64位cpu

Freadhub最初版本Android设置 armeabi-v7a这样可支持市场绝大多数32及64位cpu手机。现在最新版本1.2.6 设置arm64-v8a 即:只支持64位cpu手机

其它小优化

1、全局增大圆角效果原先的6增大到12-包括AlertDialog、更多信息Dialog、底部ModalBottomSheet、卡片圆角线及Card、选择主题Button圆角

2、优化选择主题方式-将原来的折叠形式改为底部弹出ModalBottomSheet模式

3、修改toast组件oktoastbot_toast,并修改ToastUtitl默认使用悬浮通知卡片模式

4、去除文本段前段后的空白字符,优化显示更多资讯逻辑。

5、资讯详情页增加底部分享FloatingActionButton,方便单手操作

当前版本运行环境

使用三方库

environment:
  sdk: '>=2.12.0 <3.0.0'

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.3
  #  国际化支持
  flutter_localizations:
    sdk: flutter
  # 状态管理State
  provider: ^5.0.0
  #  吐司toast
  bot_toast: ^4.0.1
  #  设备信息
  device_info: ^2.0.0
  #  应用包信息
  package_info: ^2.0.0

  # WebView
  webview_flutter: ^2.0.4
  #  网络请求相关dio
  dio: ^4.0.0
  #  加载网络图片
  cached_network_image: ^3.0.0
  synchronized: ^3.0.0
  #  下拉刷新
  pull_to_refresh: ^2.0.0
  #  本地缓存sp
  shared_preferences: ^2.0.5
  #用于做骨架屏-闪光效果
  shimmer: ^2.0.0
  #跳转系统浏览器/打电话等
  url_launcher: ^6.0.3
  #二维码-生成
  qr_flutter: ^4.0.0
  #工具类
  flustars: ^2.0.1
  #动态权限申请
  permission_handler: ^7.1.0
  #文件路径
  path_provider: ^2.0.1
  #分享文字及文件-注意保存文件位置
  #注意0.1.2以后的版本分享图片微信提示获取资源失败,分享到其它平台正常
#  flutter_share_plugin: 0.1.2
#  share: ^2.0.1
  # 使用官网分支增加分享特定App/App某个方法 增加判断App是否安装方法-Android
  # 参考官网 https://flutter.dev/docs/development/packages-and-plugins/using-packages
  share:
    git:
      url: git://github.com/AriesHoo/plugins.git
      path: packages/share
      ref: change_share
      version: 2.0.1
复制代码

运行环境

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.6, on macOS 11.3.1 20E241 darwin-x64, locale zh-Hans-CN)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[✓] Xcode - develop for iOS and macOS
[✓] Chrome - develop for the web
[✓] Android Studio (version 4.2)
[✓] IntelliJ IDEA Ultimate Edition (version 2020.3.3)
[✓] Connected device (2 available)

• No issues found!
复制代码

主要功能一览

浅色主题 深色主题
资讯详情 分享链接
Freadhub卡片 Freadhub卡片-深色模式
掘金样式卡片 掘金样式卡片-深色模式
分享微博效果 分享邮箱效果
更多资讯来源 应用设置
选择主题 快速回到顶部

结语

该App为笔者学习Flutter练手开发的 ,权当抛砖引玉了,万望各位不吝赐教

关于我

掘金: AriesHoo

简书: AriesHoo

GitHub: AriesHoo

Email: AriesHoo@126.com

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享