Flutter Dojo從最開始就準備打形成一個專業的GitHub開源項目。java
一個好的GitHub開源項目,不只僅是一個開發者專業技術的體現,更是一個自我展現的平臺,專業的GitHub開源項目,能夠吸引更多的開發者參與到項目的協同開發中來,讓項目可以健康持續的發展。android
下面我將根據Flutter Dojo的開發經歷,來說下如何藉助GitHub打造完善的開源項目。git
個性化我的主頁
GitHub主頁給了開發者一個公開的我的展現界面,不用搭建服務器,你就能夠免費得到一個屬於本身的展現頁面,不過這也是GitHub的一個彩蛋功能,首先,你須要建立一個新的repository,並將其命名爲你的用戶名,如圖所示。github

這時候你就會發現,同名的repository是一個GitHub彩蛋,你只須要在這個同名的Repo中的README.md中建立本身的主頁便可,例如個人主頁,如圖所示。web

這個頁面實際上就是經過README.md方式來進行展現的,實際上功能比較有限,可是經過ubuntu
github-readme-stats服務器
這個項目,也能夠給簡單的md界面建立一些有意思的東西,例如個人界面中的GitHub Stats和項目卡片,使用方法在這個Repo中都寫的很清楚了,你們能夠根據本身的須要,搭建屬於本身的GitHub我的主頁。微信
寫好README.md
項目中的README.md文件,是GitHub項目主頁展現的頁面文件,一個好的README文件,是一個好的開源項目的基礎,README的格式並無什麼要求,但和寫做文同樣,我以爲一個好的README文件,應該包含下面幾個部分。app
-
項目的開發經歷,初衷。固然這部分不必定須要,只是爲了給開發者介紹項目的背景,讓你們知道爲何會有這個項目。 -
項目的功能、特點。這點很重要,GitHub上的開源項目多如牛毛,開發者很看一眼項目就知道這個項目是幹什麼的,因此,介紹項目的特點、功能,是讓其餘開發者對你的項目有一個第一印象。 -
項目的接入方式、使用方式。這是讓開發者可以使用你的開源項目的核心,良好的接入文檔,能夠提高開發者對項目的好感度。 -
圖。一圖勝千言,開源項目必定要有一些設計圖,例如項目的截圖、功能的展現圖、流程圖、數據流轉圖等等。 -
CHANGELOG。CHANGELOG是開發者維護版本的重要工具,好的版本記錄,可讓使用者瞭解不一樣版本之間的區別,瞭解項目的開發進程。
Flutter Dojo的README雖然不夠完美,但基本涵蓋了我上面提到的這些點,供你們參考。編輯器
Flutter Dojo的設計之道
Github shields
shields是在README中展現的一些小圖標,在不少的開源項目中都有使用,例如Dojo中的shields。

這些shields的生成,實際上都是一些svg圖片,下面這個網站就是shields的建立網站。
shields
藉助這個網站,能夠很是輕鬆的建立這些有意思的shields,例如輸入Flutter Dojo的項目地址,它會自動生成建議的shields,如圖所示。

把這些連接直接貼到README中便可展現。這個網站的功能很是強大,能夠定義出不少的shields,感興趣的開發者能夠在網站上搭配出本身的shields。
開源協議的選擇
開源協議的選擇,是開源項目的一個重要部分,在國內,可能你們對開源協議的理解還不是很深刻,可是在國外,開源協議的約束是很是重的,開發者會自發的遵照源項目的開源協議,這裏借用阮一峯的一張圖,來簡單的理解下開源協議的種類。

使用Github Action打造自動化CI
GitHub Action是一個很是實用的功能,在咱們企業級的項目中,CI是一個很是重要的部分,它包含了代碼的審覈、提交、自動編譯等流程的自動化,而GitHub Action正是這樣一個簡單的CI功能。

在Flutter Dojo中,正是藉助了這一功能來實如今提交Tag後自動編譯最新的Apk包的功能。

建立項目的Action很是簡單,根據GitHub頁面上的提示一步步完成便可,這裏簡單的介紹下Flutter Dojo的Actions模板。
on: push: tags: - '*'name: Flutter dojo Release apkjobs: build: name: Build APK runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-java@v1.3.0 with: java-version: '12.x' - uses: subosito/flutter-action@v1.3.2 with: channel: 'stable' - run: flutter pub get - run: flutter build apk - name: Create a Release APK uses: ncipollo/release-action@v1 with: artifacts: "build/app/outputs/apk/release/*.apk" token: ${{ secrets.CI }}
有了GitHub Action,Flutter Dojo每次發版的時候,只須要push一個tag,Action就會自動觸發,並編譯出相應的Apk。

根據官方提供的模板,能夠很是輕鬆的完成CI腳本的配置,基本上都是插件化開發,經過uses關鍵字引用相關功能的Action插件,就能夠完成相應的功能。
並且,GitHub還提供了不少現成腳本的市場,可讓絕大部分的項目經過搭積木的方式快速搭建本身的腳本代碼。
官方marketplace
第三方awesome-actions
Flutter Dojo藉助GitHub,實現了一個比較完整的開發流程,除了上面提到的這些部分,Dojo還建立了Wiki和issue模板,Wiki能夠管理更多的項目說明文檔,issue模板,則爲使用者反饋問題提供了便利,同時減小了開發者與反饋者的溝通成本。

固然,Wiki還在編寫之中,因此文檔還在豐富的過程當中,基本會以每週一篇的速度,將Flutter Dojo進行一次完全的分析。

反饋者能夠選擇不一樣的issue模板,並在該模板中瞭解到開發者所須要的信息,這樣能夠完善issue並提升效率。

通過上面的這些打造,Flutter Dojo已經算是一個成熟的GitHub開源項目了,但願它早日能學會本身修bug。
本文分享自微信公衆號 - Android羣英傳(android_heroes)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。