iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 8
1
Mobile Development

Flutter---Google推出的跨平台框架,Android、iOS一起搞定系列 第 8

【Flutter基礎概念與實作】 Day8–Package引用與管理

昨天認識了Flutter內的基礎Widget,也提供各位簡單的範例來練習。在範例中有使用到兩個package,「font_awesome_flutter」及「transparent_image」,昨天只有簡單提到如何下載package,今天就來說明得更詳細,並且如何在Dart Pub,Flutter官方的package網站上找到你需要的package。

添加Package到Flutter專案中

雖然開頭說要詳細說明,不過安裝使用Package的步驟實在太簡單了,只要三個步驟。

  1. 開啟pubspec.yaml檔案,在dependencies處添加你所需的Package。
  2. 使用Terminal執行flutter pub get,或是點選工具列會顯示的「Packages get」按鈕來安裝Package。
  3. 在Dart Code裡面使用import 'package:....'來進行引用後就可以使用囉。

管理Package版本

每一個Package都有它的版本號碼例如http 0.12.0+2 url_launcher 5.1.2,如果在添加的時候沒有註明版本Flutter會自動標記為package: anyany代表允許任何版本。另外還有以下幾種指定方式:

  1. 5.1.2:指定使用5.1.2版本
  2. >=5.1.2:大於或等於5.1.2版本皆可
  3. >5.1.2:大於5.2.1的版本皆可
  4. <=5.1.2:需小於或等於5.1.2版本
  5. <5.1.2:需小於5.1.2版本
  6. ^5.1.2:語法稱為「caret syntax」意思等同於'>=5.1.2 <6.0.0'

另外分享版本號碼的意思給大家,若有錯誤麻煩提醒我:
5.1.2分別對應Major、Minor、Patch三個版本號
Major Version:這個號碼的變化表示有和上個版本無法相容的改版
Minor Version:這個號碼的變化表示有增加新功能,且可以向後相容
Patch(Build) Version:這個號碼的變化表示修復了Bug,且可以向後相容

引用未發布的Package

前面使用的引用方式僅能使用有在Dart Pub發布的Package,若想要使用沒發布的Package可以用以下方法。

  1. 使用本地端Package:
dependencies:
    package name:
        path: //可用相對或絕對路徑
  1. 使用Git引用
dependencies:
    package name:
        git:
        // 若package在git專案網址的根目錄
            url: git://github.com/....
        // 若package在git專案網址下的資料夾
            url: git://github.com/...
            path: 資料夾路徑

Dart Pub

Pub is the package manager for the Dart programming language, containing reusable libraries & packages for Flutter, AngularDart, and general Dart programs.

Pub就是在Dart裡面用來作套件管理的工具,Dart Pub上有許多其他人提供的方便套件供社群使用,接著就來看看如何使用Dart Pub來找到我們所需的套件吧。

Dart Pub的首頁非常乾淨簡單,中間有輸入欄你可以查詢關鍵字找尋套件,另外還可以指定只找尋適用於Flutter的套件。
下方則有熱門套件可以讓你參考。
點進其中一個套件來看裡面會有些什麼。


剛進去會是介紹的頁面,熱門的套件通常還會包含使用說明及例子,讓你可以快速上手。
另外也可以在「Versions」查看先前的版本資訊,右側的關於欄可以查看套件的原始碼或是你要回報套件問題也能直接寄信給作者。
Dart Pub特別的是有套件的評分機制,像「http」這個套件的分數是100滿分,表示它是非常良好的套件。
接著來看評分標準有哪些。


根據官方說明評分的標準會分為三項:

  1. Popularity(熱門度):
    根據套件的下載數統計出來的分數,越常被使用分數越高。
  2. Health(健康度):
    會使用dartanalyzer對程式碼進行靜態分析,依照error、warning、hint、platform conflict進行扣分。
  3. Maintenance(維護度)
    這項會考慮包含套件的最後更新日、套件內部引用是否有作更新、是否有提供README等說明文件來作評分。

以http為例,它是個三項都拿100的優秀套件。
另外下方也會顯示分析結果,包含支援的平台以及套件內的引用情形或建議的修正。

推薦幾個Package

這裡列出幾個我有使用過或是看到覺得有趣的Package,他們都有超過90的高分。
特別提一下第9個Bloc,Bloc是Flutter推薦的Design Pattern,用來將Business Logic和Presentation Logic分開,Bloc這個套件則是將Bloc pattern的概念包裝起來,讓我們更易於使用。之後實作專案也會使用到Bloc,到時候會在說明得更詳細。

  1. http
  2. image_picker
  3. url_lancher
  4. permission_handler
  5. shared_preferences
  6. flutter_auth_buttons
  7. pull_to_refresh
  8. animated_test_kit
  9. bloc
  10. flutter_swiper

今日總結

今天介紹Flutter管理套件的方法以及Dart Pub這個網站,建議大家可以花點時間到Dart Pub上逛逛說不定就能找到你所需要的Package。
明天開始進入實作專案的環節,大家明天見。


上一篇
【Flutter基礎概念與實作】 Day7–Flutter Basic Widgets
下一篇
【Flutter基礎概念與實作】 Day9–建立專案與App開頭動畫
系列文
Flutter---Google推出的跨平台框架,Android、iOS一起搞定30

尚未有邦友留言

立即登入留言