iT邦幫忙

2021 iThome 鐵人賽

DAY 13
0
Mobile Development

30 天從麻瓜變 Android 工程師系列 第 13

Day 13:第三方套件、授權

  • 分享至 

  • xImage
  •  

前言


以前很經常使用 GitHub 上的各種套件,
不管是大到頁面,小到按鈕,深到語法,都喜歡用自己覺得好看又厲害的,
也遇過趕工的時候直接聯絡作者請求授權,或是公司上市前盤點使用所有套件的授權,
套件跟授權分不開,所以一起討論吧。

第三方套件


第三方套件包山包海,網路、圖像、語法糖、...。
讓我們回到十年前(2011),Android 2 ~ 4 左右的那個年代,
Android 每天都有很多開發人員上傳自製套件到 GitHub 上,
多到那時候有很多地方專門寫套件的整理,像是 awesome-android-ui
但是現在缺少了很多,我想原因是:

  • 任何東西一開始都是百家爭鳴,好的東西才會被留下。
  • 好的東西用的人多,維護的人就多,支援多、bug 少,後面的人要想寫新套件,必須要顛覆傳統,並說服大家使用,是很困難的。
  • 大家經常遇到套件宣佈停止維護、新舊版本不支援等問題,這會讓人失去信心,如果自己刻或是官方給的東西也能做到,可能就不會賭上這把。
  • Android 官方可能會推薦使用某套件,或是官方自己實作了類似的功能。
  • 官方有越來越明確的 design guidelines,使用者也已經習慣官方、app 生態的 UI。

總結下來,一種功能的實踐方式變得更單純,每個位置、每種元件都有明確的操作與表達,而官方每年 Google I/O 出的功能也越來越多且全面。

授權


任何創作如文字、圖像、程式碼等即使不聲明任何東西,都是有著作權的。
如果想要開放自己的作品供他人使用,就會訂授權方式讓使用的人遵守,
程式領域有許多特有的授權方式,這邊列幾個主要的授權,使用者應盡義務從多到少是:

如果是想要開源,但不知道該選什麼授權,這邊也有網站可以協助挑選 choosealicense

如果看不懂或沒有耐心看完,網路上也有很多整理比較,但一定要了解,像是使用了採用 GPL License 的套件,就必須跟著開源,公司可能因此陷入危機。

如何盤點公司使用了哪些套件


就像食物的成分標示一樣,軟體也可以標出自己的成分,這叫做 SBOM
而要做 SBOM,有些工具可以完成:

要注意的是,因為最後會產出結果,公司不同部門使用的程式語言不同,需要找能支援不同語言的工具,且還要注意專案內的不同套件引用方式是否都能列出。

創用 CC (Creative Commons)


上面提到的幾種授權都跟程式相關,
如果是圖、文、音樂等內容,一般最常見的就是 CC
這裡也有協助選擇的工具,中研院授權精靈

結語


前面比較多篇幅是在說如何使用別人的心血,
其實自己提供開源也有很多好處:

  • 使用的人遇到問題會提出問題。
  • 甚至會有人主動協助維護。
  • 在圈子中提升自己的能見度,如:Jake Wharton
  • 也有不少工具被收購、商轉的例子。

上一篇
Day 12:UI / UX
下一篇
Day 14:第三方 SDK / API
系列文
30 天從麻瓜變 Android 工程師30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言