Freadhub終於升級Flutter2.0了

AriesHoo發表於2021-05-18
  • 本文為 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

相關文章