flutter 常用開源包

鹿丶羽 發表於 2019-12-06

網路請求

庫名 版本號 連結 描述
http 0.11.3+16 pub.dartlang.org/packages/ht… 該軟體包包含一組高階函式和類,可以輕鬆使用HTTP資源。它與平臺無關,可以在命令列和瀏覽器上使用。
dio 0.0.14 pub.dartlang.org/packages/di… Dart的一個強大的Http客戶端,支援攔截器、全域性配置、FormData、請求取消、檔案下載、超時等。
http_multi_server 2.0.5 pub.dartlang.org/packages/ht… dart:io HttpServer包裝器,用於處理來自多個伺服器的請求

推送

庫名 版本號 連結 描述
jpush_flutter 0.1.0 pub.dev/packages/jp… 極光推送 官網

二維碼

庫名 版本號 連結 描述
qr_flutter 1.1.3 pub.dartlang.org/packages/qr… QR.Flutter是一個Flutter庫,可通過Widget或自定義Paint進行簡單快速的QR碼渲染。
barcode_scan 0.0.4 pub.dartlang.org/packages/ba… 用於掃描2D條形碼和QRCodes的Flutter外掛。
qrcode_reader 0.3.3 pub.dartlang.org/packages/qr… 使用相機讀取二維碼的Flutter外掛。

系統平臺有關的庫:

型別 庫名 版本號 連結 描述
分享(官方的庫) share 0.5.2 pub.dartlang.org/packages/sh… 用於通過平臺共享UI共享內容,使用Android上的ACTION_SEND意圖和iOS上的UIActivityViewController。
獲取本地檔案 path_provider 0.4.1 pub.dartlang.org/packages/pa… 用於獲取Android和iOS檔案系統上的常用位置,例如temp和app資料目錄。
讀寫sp檔案 shared_preferences 0.4.2 pub.dartlang.org/packages/sh… 用於讀寫簡單鍵值對的Flutter外掛。包裝iOS上的NSUserDefaults和Android上的SharedPreferences。
網路狀態有關 connectivity 0.3.1 pub.dartlang.org/packages/co… 用於發現Android和iOS上的網路狀態(WiFi和移動/蜂窩)連線。
裝置資訊 device_info 0.2.1 pub.dartlang.org/packages/de… 提供有關裝置(品牌,型號等)的詳細資訊,以及應用程式正在執行的Android或iOS版本。
藍芽 flutter_blue 0.3.3 pub.dartlang.org/packages/fl… 這是跨平臺的藍芽sdk.
藍芽 flutter_ble_lib 1.0.0 pub.dartlang.org/packages/fl… 這是一個支援藍芽連線的flutter庫。它裡面使用RxAndroidBle和RxBluetoothKit作為本地庫。

圖片載入和快取

使用Image.network,或者使用下面這個庫:

庫名 版本號 連結 描述
cached_network_image 0.4.1+1 pub.dartlang.org/packages/ca… Flutter庫來載入和快取網路影象。也可以與佔位符和錯誤小部件一起使用。

MarkDown

庫名 版本號 連結 描述
flutter_markdown 0.1.3 github.com/flutter/flu… 官方的MarkDown庫,它支援原始MarkDown格式,但沒有內聯Html格式。
markdown 2.0.0 pub.dartlang.org/packages/ma… 用Dart編寫的行動式Markdown庫。它可以在客戶端和伺服器上將Markdown解析為HTML。
html2md 0.1.7 pub.dartlang.org/packages/ht… 將html轉換為Dart中的MarkDown.

訊息傳遞通訊有關

庫名 版本號 連結 描述
flutter_local_notifications 0.3.0 pub.dartlang.org/packages/fl… 一個跨平臺的顯示本地notifications的外掛。
local_notifications 0.0.6 pub.dartlang.org/packages/lo… 這個庫能讓你在Android和iOS上建立Notifications很簡單。
url_launcher 3.0.2 pub.dartlang.org/packages/ur… 用於在Android和iOS上啟動URL。支援網路,電話,簡訊和電子郵件方案。
firebase_messaging 1.0.2 pub.dartlang.org/packages/fi… 一款跨平臺的訊息傳遞解決方案,可讓您在Android和iOS上可靠地傳遞訊息。
event_bus 0.4.1 pub.dartlang.org/packages/ev… 一個使用Dart流進行解耦應用程式的簡單事件匯流排的庫。

視訊 & 音訊

庫名 版本號 連結 描述
video_player 0.6.0 pub.dartlang.org/packages/vi… 用於在Android和iOS上與其他Flutter視窗小部件一起顯示內嵌視訊。
video_launcher 0.3.0 pub.dartlang.org/packages/vi… 視訊播放器
flute_music_player 0.0.6 pub.dartlang.org/packages/fl… 基於Flutter的材料設計音樂播放器與音訊外掛播放本地音樂檔案.
audioplayer 0.5.0 pub.dartlang.org/packages/au… 一個播放遠端或本地音訊檔案Flutter音訊外掛
audioplayers 0.5.2 pub.dartlang.org/packages/au… 這是rxlabz的audioplayer的一個分支,不同之處在於它支援同時播放多個音訊並顯示音量控制。

型別編解碼的庫

庫名 版本號 連結 描述
html_unescape 1.0.0 pub.dartlang.org/packages/ht… 用於解決HTML編碼字串的Dart庫。支援所有命名字元引用(如 ),小數字符引用(如á)和十六進位制字元引用(如ã)。
gbk2utf8 github.com/jzoom/gbk2u… 官方的http還不能支援中文gbk的解析,這個專案就是為了解決gbk轉成utf-8編碼的。

序列化

  • 手動序列化

      使用 dart:convert 的內建解碼器。包括傳入 JSON 原始字串給 JSON.decode() 方法,然後從 Map<String, dynamic> 中查詢你需要的資料。
    複製程式碼
  • 自動序列化

庫名 版本號 連結 描述
json_serializable 0.5.7 pub.dartlang.org/packages/js…
built_value 5.5.1 pub.dartlang.org/packages/bu… runtime依賴項
built_value_generator 5.5.1 pub.dartlang.org/packages/bu… dev依賴項
built_value_test 5.5.1 pub.dartlang.org/packages/bu… test依賴項

json解析

庫名 版本號 連結 描述
codable 1.0.0-beta.2 pub.dartlang.org/packages/co… 用於將動態結構化資料(JSON,YAML)轉換為Dart型別的庫。
json_to_dart github.com/javiercbk/j… 根據json生成Dart實體類
JSONFormat4Flutter github.com/debuggerx01… 這是一個AS的輔助外掛,將JSONObject格式的String解析成Dart的實體類
Dson 0.13.2 pub.dartlang.org/packages/ds… Dson的github地址 github.com/drails-dart… DSON是一個將Dart物件轉換為JSON的庫。(用於web)這個庫是Dartson的一個分支,但又有不同。
Dartson是一個Dart庫,可用於將Dart物件轉換為JSON字串。 github.com/eredo/darts… (用於web)

幾個Json庫的比較:github.com/drails-dart…

方式 大小 (js) 序列化 (dart) 反序列化 (dart) 序列化 (js) 反序列化 (js)
json_serializable 80 KB 9.09 ms 6.61 ms 8.23 ms 8.12 ms
Serializable 79 KB 6.1 ms 6.92 ms 4.37 ms
DSON 94 KB 12.72 ms 11.15 ms 16.64 ms 17.94 ms
Dartson 86 KB 9.61 ms 6.81 ms 8.58 ms 7.01 ms
Manual 86 KB 8.29 ms 5.78 ms 10.7 ms 7.9 ms
Interop 70 KB 61.55 ms 14.96 ms 2.49 ms 2.93 ms
Jaguar_serializer 88 KB 8.57 ms 6.58 ms 10.31 ms 8.59 ms
Jackson (Groovy) 496 ms 252 ms n/a n/a

編解碼、加密解密有關的庫

庫名 版本號 連結 描述
ninja 1.0.0 pub.dartlang.org/packages/ni… 在Dart的Converter和Codec介面上完善的AES以及RSA加密解密演算法的庫。
archive 2.0.0 pub.dartlang.org/packages/ar… 為各種存檔和壓縮格式提供編碼器和解碼器,如zip,tar,bzip2,gzip和zlib。(不知道移動端能否用得到,文件說服務端和web端可以用。)

國際化和本地化:

庫名 版本號 連結 描述
intl 0.15.6 pub.dartlang.org/packages/in… 這個包提供國際化和本地化功能,包括訊息翻譯、複數和性別、日期/數字格式和解析以及雙向文字。

資料儲存、快取有關的庫

庫名 版本號 連結 描述
sqflite 0.10.0 pub.dartlang.org/packages/sq… SQLite的Flutter外掛,一個自包含的高可靠性嵌入式SQL資料庫引擎。
file_cache 0.0.1 pub.dartlang.org/packages/fi… 為flutter package專案快取Json,Buffer,FileCacheImage。

UI庫

庫名 版本號 連結 描述
font_awesome_flutter 7.0.0 pub.dartlang.org/packages/fo… 圖示字型的一個庫
fluttertoast 2.0.3 pub.dartlang.org/packages/fl… 用於Android和ios的toast庫。
image_picker 0.4.5 pub.dartlang.org/packages/im… 用於從Android和iOS影象庫中選擇影象,並使用相機拍攝新照片。
camera 0.2.1 pub.dartlang.org/packages/ca… 用於在Android和iOS上獲取有關和控制相機的資訊。支援預覽相機饋送和捕捉影象。

圖示有關的開源庫

庫名 版本號 連結 描述
cupertino_icons 0.1.2 pub.dartlang.org/packages/cu… Cupertino的圖示元件庫
flutter_launcher_icons 0.6.0 pub.dartlang.org/packages/fl… 或者github地址https://github.com/fluttercommunity/flutter_launcher_icons 一個命令列工具,簡化了更新Flutter應用程式啟動圖示的任務。 完全靈活,您可以選擇要更新啟動圖示的平臺,如果需要,可以選擇保留舊的啟動圖示,以防將來某個時候還原舊圖示。

富文字

庫名 版本號 連結 描述
flutter_html_view 0.5.2 pub.dartlang.org/packages/fl… Flutter沒有預設的支援來顯示html,所以需要三方的包來顯示。這個包可以將html呈現給原生的Widget。(目前支援的標籤比較少)
flutter_html_textview 0.2.6 pub.dartlang.org/packages/fl… 將html呈現為一個Widget,在textview中呈現html。

動畫

庫名 版本號 連結 描述
flutter_villains 1.0.1 pub.dartlang.org/packages/fl… 頁面切換動畫的一個庫,簡化動畫操作,你只需要管理好UI就可以了。

針對Android和ios平臺的UI適配庫

庫名 版本號 連結 描述
platform_aware 0.4.0 pub.dartlang.org/packages/pl… 為自動適應當前平臺而包裝的Flutter元件,不需要對iOS和Android進行程式碼更改。所有小部件都依賴於Theme.of(context).platform來確定當前活動平臺的平臺。你可以使用Flutter Inspector動態地更改平臺。
native_widgets 0.0.3 pub.dartlang.org/packages/na… 為避免重複程式碼,只編寫一次程式碼就可以支援兩個平臺並自動根據平臺自動使用對應風格元件,Android將使用材料設計,iOS將使用Cupertino風格的小部件。

日曆庫(主要是用於顯示和操作日曆)

庫名 版本號 連結 描述
flutter_calendar 0.0.4 pub.dartlang.org/packages/fl… 適用於Flutter的日曆小元件。
calendarro 0.0.1 pub.dartlang.org/packages/ca… Flutter的日曆元件庫。 這個庫提供了多種自定義元件的方法。

日期,時間,日期時間,icon,自定義資料的選擇器(很全面)

庫名 版本號 連結 描述
flutter_picker 0.0.3 pub.dartlang.org/packages/fl… 一個日期,時間,日期時間,icon,自定義資料的選擇器,可以居中彈窗,也可以在底部彈出。(目前來看是最全面的一個選擇器控制元件。該外掛支援ios和android平臺,使用的是ios的風格的UI效果。)

圖片選擇的庫

庫名 版本號 連結 描述
image_picker 0.4.5 pub.dartlang.org/packages/im… 適用於iOS和Android的Flutter外掛,用於從影象庫中拾取影象,並使用相機拍攝新照片。(功能正在完善中)
flutter_multiple_image_picker 0.0.1 pub.dartlang.org/packages/fl… 一個新的Flutter外掛,用於從相簿中選擇多個影象。

聯絡人選擇的庫

庫名 版本號 連結 描述
contact_picker 0.0.2 pub.dartlang.org/packages/co… 使用此外掛,Flutter應用程式可以地址簿中選擇聯絡人,並將聯絡人資訊返回給應用程式,並且不需要使用者的任何特殊許可權。目前該外掛僅支援選擇電話號碼。

顏色選擇的庫

庫名 版本號 連結 描述
flutter_color_picker 0.0.1 pub.dartlang.org/packages/fl… 一個簡單的顏色選擇器,類似於安卓的selector的功能,可以在點選控制元件時,給控制元件設定選擇器效果。
material_color_picker 0.0.1 pub.dartlang.org/packages/ma… 這個是Flutter的顏色選擇器,基於Google Docs顏色選擇器。這個用於選擇顏色,你想用哪一個顏色,可以彈窗自由選擇。
material_pickers 0.0.2 pub.dartlang.org/packages/ma… 這個是Flutter的顏色選擇器,基於Google Docs顏色選擇器。這個用於選擇顏色,你想用哪一個顏色,可以彈窗自由選擇。
flutter_colorpicker 0.0.5 pub.dartlang.org/packages/fl… 這是一個HSV的顏色選擇器

輪播圖有關的庫(以及Tab PagerView有關的庫)

庫名 版本號 連結 描述
flutter_swiper 1.0.4 pub.dartlang.org/packages/fl… 對應的github地址https://github.com/best-flutter/flutter_swiper
infinity_page_view 1.0.0 pub.dartlang.org/packages/in… Flutter無限頁面檢視。
carousel 0.1.0 pub.dartlang.org/packages/ca…
page_transformer 0.0.1 pub.dartlang.org/packages/pa… 用於在Flutter中建立漂亮的PageView視差效果的示例專案。

導航欄有關的庫

庫名 版本號 連結 描述
navigation_bar 0.0.1 pub.dartlang.org/packages/na… 一個簡易的底部導航欄。

列表有關的庫

庫名 版本號 連結 描述
flutter_pagewise 0.2.0 pub.dartlang.org/packages/fl… 一次載入一頁(或批處理)內容(也稱為延遲載入)
lazy_load_scrollview 0.0.2 pub.dartlang.org/packages/la… ScrollView的包裝器,可以啟用延遲載入,當到達頁面底部時將觸發回撥。

路由

庫名 版本號 連結 描述
fluro 1.3.1 pub.dartlang.org/packages/fl… 最好用的路由導航框架。功能:簡單的路線導航;函式處理程式(對映到函式而不是路徑);萬用字元引數匹配;查詢字串引數解析;內建常用轉換;簡單的定製轉換建立。

rx系列

庫名 版本號 連結 描述
rxdart 0.17.0 pub.dartlang.org/packages/rx… RxDart是一種基於ReactiveX的Dart反應性函式程式設計庫。Dart自帶了一個非常不錯的流API;RxDart沒有嘗試提供這個API的替代方案,而是在它上面新增了一些功能。
rx_widgets 1.0.3 pub.dartlang.org/packages/rx… rx_widgets是一個包含基於流的Flutter Widgets和Widget幫助程式/便利類的程式包,它們有助於反應式程式設計風格,特別是與RxDart和RxCommands結合使用。
rx_command 2.0.0 pub.dartlang.org/packages/rx… RxCommand是針對事件處理程式的基於Reactive Extensions(Rx)的抽象。它基於ReactiveUI框架的ReactiveCommand。它大量使用了RxDart包。

地圖(地圖顯示、定位、經緯度等)

庫名 版本號 連結 描述
map_view 0.0.12 pub.dartlang.org/packages/ma… 一個用於在iOS和Android上顯示谷歌地圖的Flutter外掛
flutter_map 0.0.10 pub.dartlang.org/packages/fl… 基於leaflet的Flutter地圖包
location 1.3.4 pub.dartlang.org/packages/lo… 這個外掛 處理Android和iOS上的位置。它還提供位置更改時的回撥。
latlong 0.5.3 pub.dartlang.org/packages/la… LatLong是一個計算通用的緯度和經度的輕量級庫。

WebView

庫名 版本號 連結 描述
flutter_webview_plugin 0.1.6 pub.dartlang.org/packages/fl… 允許Flutter與原生Webview進行通訊的外掛。

圖表庫

庫名 版本號 連結 描述
charts-common 0.3.0 pub.dartlang.org/packages/ch… Material Design風格的圖表庫
charts-flutter 0.3.0 pub.dartlang.org/packages/ch… 通用的圖表庫元件
flutter_circular_chart 0.0.3 pub.dartlang.org/packages/fl… 一個讓你使用flutter輕鬆建立的動畫圓形圖控制元件的庫。

許可權庫

庫名 版本號 連結 描述
simple_permissions 0.1.5 pub.dartlang.org/packages/si… 用於android和ios的請求許可權的庫
flutter_simple_permissions 0.0.1 pub.dartlang.org/packages/fl… 許可權申請的庫

分享

庫名 版本號 連結 描述
share 0.5.1 pub.dartlang.org/packages/sh… 支援分享的flutter外掛

統計

庫名 版本號 連結 描述
flutter_umeng_analytics 0.0.1 pub.dartlang.org/packages/fl… 這個庫整合了友盟統計sdk

登陸

庫名 版本 號 連結 描述
flutter_qq 0.0.1 pub.dartlang.org/packages/fl… 這個庫整合了QQ登入、QQ分享、QQ空間分享。
flutter_wechat 0.1.2 pub.dartlang.org/packages/fl… 這個庫整合了微信,支援微信登入、分享、支付。

支付

庫名 版本號 連結 描述
flutter_alipay 0.1.0 pub.dartlang.org/packages/fl… 這個庫繼承了支付寶,相容android和ios

視訊播放(本地視訊、線上視訊、或者rtmp格式)

庫名 版本號 連結 描述
my_aliplayer github.com/hyz1992/my_… 整合了aliyun播放器,可以用來播放視訊,也可以播放rtmp格式。

一個好玩的庫

庫名 版本號 連結 描述
pwa 0.1.10 pub.dartlang.org/packages/pw… 基於Dart的PWA應用程式的庫