- 本文為 AriesHoo 原創,未經授權禁止轉載!
- 原文地址
相關文章四:Flutter iOS打包過程及構建上線稽核通過流程總結
前言
Flutter 在 2021.03.04
釋出了 Flutter 2.0
版本 正式進入 全平臺Stable時代
具體可見
【譯】Flutter 2.0 正式版釋出,全平臺 Stable
Freadhub
沒有第一時間升級,但是也在4月
進行了Flutter 2.0
及空安全
的升級並在 2021-04-12
釋出了 1.2.4
版本,後期陸陸續續做了一些小調整,直到最近 公司的專案做了個卡片分享的功能,效果還不錯就同步移植,在此做一個簡單的記錄。---當前最新版本1.2.6
注:還是隻支援Android手機下載
iOS請自行下載執行。
升級Flutter2.0
大家都知道執行flutter upgrade
或者 Tools --> Flutter --> Flutter Upgrade
即可升級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
、微博
、釘釘
、企業微信
、複製連結
、瀏覽器開啟
、更多
。
最新版本:資訊列表及資訊詳情分享頁支援卡片(圖片)分享到微信好友
、朋友圈
、QQ
、微博
、釘釘
、企業微信
、更多
等。--且內建Freadhub卡片
樣式及掘金卡片
樣式兩種效果選擇
注:該功能涉及修改 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元件oktoast
為bot_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