Flutter Dojo设计之道——利用Github打造完善的开源项目

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源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索