2024 年 GitHub 上的十大 Flutter 倉庫
根據(jù) 2022 年 StackOverflow 調(diào)查顯示,F(xiàn)lutter 是最受歡迎的跨平臺工具之一。自發(fā)布以來的 16 個月內(nèi),已有超過 200 萬開發(fā)者采用了 Flutter。在本博客中,我們將瀏覽 GitHub 上可用的頂級 Flutter 存儲庫。除了每個存儲庫之外,還提供了對其優(yōu)缺點的深入了解以及 GitHub 鏈接,可幫助您了解它們?nèi)绾卧趹贸绦蜷_發(fā)領(lǐng)域使您受益。
1. Flutter Example Apps
Flutter 社區(qū)的知名人士 Pawan Kumar 創(chuàng)建了 FlutterExampleApps[1] 庫。該資源庫包含一系列 Flutter 示例應用程序,展示了 Flutter 開發(fā)中的各種功能、庫和最佳實踐。他因其 Flutter 教育內(nèi)容(包括教程、課程和 YouTube 視頻)而聞名,并經(jīng)常分享學習 Flutter 的綜合資源。
圖片
優(yōu)點
學習資源:非常適合希望通過實際示例提高 Flutter 技能的初學者和中級開發(fā)人員。
靈感:作為項目的靈感,提供有關(guān)如何實現(xiàn)某些功能或 UI 設計的想法。
社區(qū)貢獻:讓社區(qū)有機會作出貢獻,為每個人提供更多的學習資源。
缺點
維護:根據(jù)資源庫的活躍程度,一些示例可能不會更新到最新的 Flutter SDK 版本,這可能會導致方法或?qū)嵺`過時。
初學者不知所措:Flutter 新手可能會發(fā)現(xiàn),在沒有 Flutter 基礎知識的情況下,各種示例難以理解或難以理解。
2. Awesome Flutter
在 Solido 托管于 GitHub 的 Awesome Flutter[2] 存儲庫中,有一份精彩的 Flutter 庫、工具、框架和軟件的精選列表。它是更廣泛的 “awesome ”系列的一部分--“awesome ”系列是 GitHub 上的一系列資源庫,收集了各種主題的高質(zhì)量資源。
圖片
優(yōu)點
多樣化的資源:無論您是在尋找用戶界面組件、動畫庫還是狀態(tài)管理解決方案,“Awesome Flutter ”都能為您提供。
最新信息:該資源庫的社區(qū)驅(qū)動性質(zhì)意味著會定期添加新資源,從而保持列表的新鮮度和相關(guān)性。
質(zhì)量保證:精心策劃的方法確保只包含高質(zhì)量且與 Flutter 開發(fā)人員相關(guān)的資源。
缺點
讓初學者不知所措:對于 Flutter 的新手來說,海量的信息可能會讓他們不知所措,不知從何下手。
取決于社區(qū)貢獻:名單的質(zhì)量和時效取決于社區(qū)的積極貢獻,而這些貢獻可能隨時間而變化。
3. bloc
Felix Angelov 和社區(qū)創(chuàng)建了 bloc[3] 存儲庫,這是 Flutter 社區(qū)中廣受歡迎的狀態(tài)管理解決方案。它旨在將業(yè)務邏輯與 UI(用戶界面)分離開來,從而促進易于測試、維護和擴展的簡潔架構(gòu)。
圖片
優(yōu)點
干凈的架構(gòu):鼓勵業(yè)務邏輯層和 UI 層之間的清晰分離,提高應用程序的可維護性和可測試性。
社區(qū)支持:擁有強大的社區(qū)和生態(tài)系統(tǒng),提供大量資源、教程和軟件包來擴展其功能。
多功能性:適用于從小型到大型的各種應用,為各項目提供一致的狀態(tài)管理方法。
缺點
難以理解:對于初學者或不熟悉反應式編程的開發(fā)人員來說,流和接收器的概念可能具有挑戰(zhàn)性。
樣板代碼:bloc 可能會引入大量樣板代碼,特別是對于簡單的應用程序,其中更輕的狀態(tài)管理解決方案可能更合適。
4. FlutterFoodBytes
FlutterFoodyBytes[4] 是一個 Flutter 存儲庫,展示了從 Uplabs 設計中汲取靈感的餐廳應用程序用戶界面。它展示了使用 Flutter 實現(xiàn)具有視覺吸引力的餐廳應用程序的過程,重點是用戶界面元素和設計。該項目由 2 個主屏幕組成,展示了 Flutter 在創(chuàng)建自定義用戶界面和動畫方面的能力。
圖片
優(yōu)點
高質(zhì)量的用戶界面:展示 Flutter 創(chuàng)建高質(zhì)量、具有視覺吸引力、引人入勝且用戶友好的用戶界面的能力。
跨平臺效率:與所有 Flutter 項目一樣,F(xiàn)lutterFoodybite 展示了為 iOS 和 Android 平臺維護單一代碼庫的能力,從而減少了開發(fā)時間和資源。
開源:作為開放源碼,它允許其他開發(fā)人員貢獻代碼,從中學習,并在自己的項目中實施類似的設計。
缺點
功能有限:由于該項目主要關(guān)注只有 2 個屏幕的 UI 表示,因此它可能不涵蓋實際應用程序所需的后端集成或復雜功能。
維護和更新:根據(jù)項目的維護情況,如果項目沒有定期更新,可能會出現(xiàn)依賴性或與 Flutter 更新版本的兼容性問題。
5. Flutter Basic Widgets
Pooja Bhaumik 的 Flutter Basic Widgets[5] 存儲庫可作為用戶友好的手冊,幫助您理解和使用 Flutter 中的各種基本 Widget。該存儲庫旨在幫助新的 Flutter 開發(fā)人員熟悉基本的小部件,這些小部件是任何 Flutter 應用程序的構(gòu)建塊。
圖片
優(yōu)點
易于學習:非常適合初學者通過實際示例開始學習 Flutter 的 widget 系統(tǒng)的資源。
互動學習:使用 DartPad 作為示例,學習者可以嘗試使用部件屬性并實時查看結(jié)果。
可視化指導:屏幕截圖有助于將每個示例的結(jié)果形象化,從而增強學習體驗。
缺點
范圍有限:只關(guān)注基本的 widget,因此想要了解更復雜示例的高級用戶可能需要另尋他處。
靜態(tài)內(nèi)容:除非積極維護,否則資源庫的內(nèi)容可能無法反映最新的實踐或小工具更新。
6. Flutter Animate
Flutter Animate 是一個庫或工具包,旨在簡化和增強 Flutter 應用程序中的動畫功能。Flutter 本身附帶了一組強大的動畫工具和小部件,但像 Flutter Animate 這樣的第三方包通常旨在使這些工具更易于訪問、更強大或更易于使用。
圖片
圖片
圖片
優(yōu)點
簡化的動畫 API:像 Flutter Animate[6] 這樣的庫通常會提供簡化的 API 來創(chuàng)建復雜的動畫,使開發(fā)人員可以更輕松地向他們的應用程序添加動作。
預建動畫:通常包含一系列預構(gòu)建的動畫,可以輕松自定義并集成到 Flutter 應用程序中,從而加快開發(fā)速度。
增強性能:可以為動畫提供性能優(yōu)化,即使在復雜的場景中也能確保平滑、無卡頓的運動。
缺點
依賴關(guān)系管理:添加第三方庫會帶來另一個需要管理的依賴關(guān)系,這可能會影響應用程序的大小,并有可能帶來與未來 Flutter 更新的兼容性問題。
開銷:對于非常簡單的動畫,原生 Flutter 動畫工具可能更高效,因為第三方庫可能會帶來不必要的開銷。
7. dio
GitHub 上的另一個 flutter 倉庫是 Dio[7],它是 Dart/Flutter 的強大 HTTP 客戶端,旨在讓 HTTP 請求變得簡單高效。它擴展了現(xiàn)有 Dart http 庫的功能,為更有效地處理請求和響應提供了更多特性。Dio 尤其適用于 Flutter 應用程序,但也可用于任何基于 Dart 的項目。
圖片
優(yōu)點
功能豐富:與默認的 Dart http 包相比,Dio 提供了一組更廣泛的功能來管理 HTTP 請求。
靈活性:它對攔截器、全局配置和請求取消的支持使開發(fā)人員能夠更好地控制他們的 HTTP 請求。
易于使用:Dio 簡化了文件上傳、下載和處理 FormData 等任務,這些任務對于默認的 http 包來說可能很麻煩。
缺點
簡單任務的復雜性:對于非常簡單的 HTTP 請求,與使用 Dart http 包相比,Dio 可能會引入不必要的復雜性。
新用戶使用困難:雖然 Dio 的設計旨在方便用戶使用,但對于新用戶來說,各種功能和選項可能會讓他們不知所措。
8. Flutter Blue
Flutter Blue[8] 是 Flutter 的藍牙插件,旨在為使用 Flutter 開發(fā)的跨平臺應用程序提供藍牙通信。它提供了一個全面的 API,用于掃描、連接藍牙低功耗(BLE)設備并與之交互。
圖片
優(yōu)點
統(tǒng)一API:使用單一代碼庫簡化 iOS 和 Android 上的藍牙開發(fā)。
功能全面:涵蓋各種藍牙功能,包括掃描、連接和數(shù)據(jù)交互。
積極開發(fā):該插件正在積極開發(fā)中,并不斷更新以改進功能和兼容性。
缺點
Alpha版本:由于處于 Alpha 版本,API 可能會發(fā)生變化,這可能會在未來的更新中引入破壞性更改。
需要設備測試:必須在真實設備上進行測試,這會使開發(fā)和測試過程復雜化。
特定平臺限制:某些功能(如 MTU 請求)僅限于 Android,這可能會影響跨平臺功能的平等性。
9. Table Calendar
TableCalendar[9] 是一個高度可定制、功能豐富的 Flutter 小部件存儲庫,專為顯示日歷并與日歷交互而設計。它提供了廣泛的定制選項,允許開發(fā)人員定制日歷的外觀和功能以滿足其應用程序的需求。
圖片
優(yōu)點
高可定制性:提供廣泛的樣式和自定義選項,使日歷與應用程序的設計相匹配。
功能豐富:提供廣泛的開箱即用功能,包括事件標記、多種選擇模式和自定義構(gòu)建器。
良好的文檔:附帶詳細的文檔和示例,讓集成和使用更輕松。
缺點
復雜性:對于初學者或簡單的用例來說,各種功能和自定義選項可能會讓他們不知所措。
性能:根據(jù)定制的復雜程度和事件的數(shù)量,較大的日歷可能會對性能產(chǎn)生影響。
10. Riverpod
Flutter 開發(fā)人員使用 Riverpod[10](一種反應式緩存和數(shù)據(jù)綁定 Flutter 存儲庫)來改進他們在 Flutter 應用程序中處理狀態(tài)管理的方式。它因使異步代碼管理變得簡單而高效而受到認可。Riverpod 通過提供強大且可擴展的解決方案來解決狀態(tài)管理中的常見挑戰(zhàn),例如錯誤處理和數(shù)據(jù)綁定。
圖片
優(yōu)點
改進的錯誤處理:自動管理錯誤和加載狀態(tài),提高應用程序的可靠性和用戶體驗。
增強的可擴展性:通過將業(yè)務邏輯與 UI 代碼分離,促進可擴展應用程序的開發(fā)。
多功能性:支持從簡單到復雜的廣泛用例,具有拉動刷新等功能。
缺點
學習曲線:新用戶可能會發(fā)現(xiàn)理解和實施 Riverpod 的概念具有挑戰(zhàn)性,特別是如果他們不熟悉狀態(tài)管理原理的話。
整合工作:將 Riverpod 集成到使用不同狀態(tài)管理解決方案的現(xiàn)有項目中可能需要大量重構(gòu)。
翻譯自:https://medium.com/solute-labs/top-10-flutter-repositories-on-github-in-2024-423807d1213b
參考資料
[1]FlutterExampleApps: https://github.com/iampawan/FlutterExampleApps
[2]Awesome Flutter: https://github.com/Solido/awesome-flutter
[3]bloc: https://github.com/felangel/bloc
[4]FlutterFoodyBytes: https://github.com/JideGuru/FlutterFoodybite
[5]Flutter Basic Widgets: https://github.com/PoojaB26/FlutterBasicWidgets
[6]Flutter Animate: https://github.com/gskinner/flutter_animate?tab=readme-ov-file
[7]Dio: https://github.com/cfug/dio?tab=readme-ov-file
[8]Flutter Blue: https://github.com/pauldemarco/flutter_blue
[9]TableCalendar: https://github.com/aleksanderwozniak/table_calendar?tab=readme-ov-file
[10]Riverpod: https://github.com/rrousselGit/riverpod