單絲不成線,獨木不成林,一個社區(qū)想要健康蓬勃發(fā)展離不開社區(qū)參與者的持續(xù)貢獻(xiàn)。而社區(qū)貢獻(xiàn)點有很多種,本文以貢獻(xiàn)OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)開發(fā)樣例為例,圍繞以下5個問題,帶大家了解上手并參與社區(qū)貢獻(xiàn)。
1.如何參與社區(qū)?
2.什么是開發(fā)樣例?
3.社區(qū)需要什么開發(fā)樣例?
4.如何開發(fā)樣例?
5.樣例能夠給“我”帶來什么?
如何參與社區(qū)
參與社區(qū)主要分為如下兩種方式: ?提交Issue
Issue指的是一項待完成的工作,中文可以譯為“問題”或“事務(wù)”,例如軟件的bug、功能建議、待完成的任務(wù)、文檔缺失的報告等。
?提交Pull Request
Pull Request(PR)是一種通知機(jī)制。你修改了他人的代碼,將你的修改通知原來的作者,希望他合并你的修改,這就是Pull Request。
因此你可以認(rèn)為Issue是發(fā)布社區(qū)任務(wù)的方式,PR是完成社區(qū)任務(wù)的方式。既然是深度參與社區(qū),必然是要做社區(qū)任務(wù)的“完成者”。
那么該如何提交PR呢?上面也說了提交PR其實就是提交自己的修改/新增的代碼,是基于代碼進(jìn)行的,而代碼則有如下3種提交方式:
?文檔/注釋補(bǔ)充完善
?開發(fā)樣例提交
?OS功能開發(fā)
3種提交方式難度依次遞進(jìn),本文主要講解開發(fā)樣例提交。
什么是開發(fā)樣例
開發(fā)樣例可分為如下兩部分: ?API使用范例的Sample
針對各種SDK API進(jìn)行開發(fā)的樣例,開發(fā)者可以快速熟悉OpenHarmony SDK所提供的API和應(yīng)用開發(fā)流程。
?場景化Demo
生活場景的解決方案樣例。
開發(fā)者通過閱讀、學(xué)習(xí)和運行樣例能夠快速上手應(yīng)用開發(fā),并學(xué)習(xí)到其中的項目技術(shù)點或項目實現(xiàn)方案等。
社區(qū)通過發(fā)布樣例的方式,幫助開發(fā)者快速上手學(xué)習(xí)OpenHarmony,那么作為開發(fā)者我們在學(xué)習(xí)和上手OpenHarmony后,要如何以樣例的方式回饋和提交到社區(qū)呢?
社區(qū)需要什么樣例
在開發(fā)樣例前,需要先知道社區(qū)需要的是什么樣例,那么在樣例提交時才能更好地被社區(qū)所認(rèn)可和接受。
社區(qū)需要的樣例可分為兩大類:
?Samples倉庫未覆蓋到的SDK API Sample;
?基于日常生活的解決方案demo;
那么如何才能發(fā)掘到社區(qū)需求的樣例呢?
Sample
Sample是指針對各種SDK API進(jìn)行開發(fā)的樣例如下圖所示,所以可以對比API文檔進(jìn)行查閱搜索未涉及的API,然后進(jìn)行樣例開發(fā)。
下圖左側(cè)為applications_app_samples倉庫樣例,右側(cè)為JS及TS API文檔,可進(jìn)行對比查閱。
除此之外,還可以通過查詢版本說明,在特性變更中尋找倉庫未涉及到的新特性,對新特性進(jìn)行Sample開發(fā)。下圖為OpenHarmony 3.2 Beta2版本說明。
場景化demo
場景化demo是OpenHarmony知識體系工作組下針對智能家居場景、影音娛樂場景、購物消費場景、運動健康場景、智能出行場景、智慧辦公場景等生活場景進(jìn)行開發(fā)的解決方案樣例。那么我們則可以根據(jù)日常生活的需求,尋找生活場景下的痛點,開發(fā)解決方案樣例。
下圖為知識系統(tǒng)工作組knowledge倉庫
場景倉庫匯總:
智能家居場景
https://gitee.com/openharmony-sig/knowledge_demo_smart_home
影音娛樂場景
https://gitee.com/openharmony-sig/knowledge_demo_entainment
購物消費場景
https://gitee.com/openharmony-sig/knowledge_demo_shopping
運動健康場景
https://gitee.com/openharmony-sig/knowledge_demo_temp
智能出行場景
https://gitee.com/openharmony-sig/knowledge_demo_travel
智慧辦公場景
https://gitee.com/openharmony-sig/knowledge_demo_temp
快速上手場景
https://gitee.com/openharmony-sig/knowledge_demo_temp
其他場景
https://gitee.com/openharmony-sig/knowledge_demo_temp
我有一個idea
基于平時出入門禁和打卡簽到等日常生活場景,發(fā)現(xiàn)生活中有許多與人臉識別相關(guān)的需求,在查閱OpenHarmony社區(qū)后,發(fā)現(xiàn)并沒有類似樣例,于是開發(fā)人臉識別樣例的想法便油然而生,那有了好的idea后應(yīng)該怎么做呢?
如何開發(fā)樣例
如下圖所示,以人臉識別demo為例大致可以將開發(fā)樣例分為5大步驟:
?上手學(xué)習(xí)
通過閱讀官網(wǎng)文檔、在線課程、學(xué)習(xí)路徑和開發(fā)者文檔等,認(rèn)識了解OpenHarmony開源項目,熟悉應(yīng)用開發(fā)/設(shè)備開發(fā)流程等。
?技術(shù)選型
經(jīng)查閱后發(fā)現(xiàn)GitHub上有開源的人臉識別引擎Seetaface2,OpenHarmony 3.2 beta中也有可用的媒體庫和相機(jī)等API,于是便可以基于潤和HH-SCDAYU200開發(fā)套件的硬件平臺,與基于OpenHarmony 3.2 beta、Seetaface2和OpenCV的軟件平臺進(jìn)行項目開發(fā)。
?項目設(shè)計
樣例一共規(guī)劃有4項功能分別為:人臉拍攝、人臉錄入、人臉框選和人臉識別,其中人臉拍攝通過拉起相機(jī)應(yīng)用進(jìn)行拍照,再通過媒體庫API獲取相冊圖片。人臉錄入、人臉框選和人臉識別功能則通過將Seetaface2移植到OpenHarmony中,并利用NAPI組件將Seetaface2接口進(jìn)行封裝和暴露給應(yīng)用來調(diào)用,最終在人臉識別FA中實現(xiàn)這四大功能。
?編碼調(diào)試
根據(jù)項目設(shè)計進(jìn)行相應(yīng)ArkUI代碼和邏輯代碼編寫。
開發(fā)中遇到技術(shù)問題可通過查詢文檔,或在對應(yīng)倉庫搜索相關(guān)Issue,然后提交Issue尋找解決辦法。
樣例最終演示效果:
?代碼提交
參考如何提交代碼
樣例能夠給“我”帶來什么
享受開源,收獲成就
成為OpenHarmony開源共建者,在倉庫共建者名單擁有自己“一席之地”。
OpenHarmony共建者徽章:提交過PR的小伙伴可通過訪問https://metrics.openharmony.cn/#/codeContributor進(jìn)行領(lǐng)取。
優(yōu)秀樣例可申請:
?OpenHarmony官網(wǎng)開發(fā)樣例展出;
?OpenAtom OpenHarmony公眾號展出;
?展會進(jìn)行樣例展出;
提升技術(shù),擴(kuò)展視野
?個人技術(shù)能力與編碼水平的提升;
?參與社區(qū)與更多的技術(shù)專家與開發(fā)者接觸和交流;
成為“社區(qū)大佬”
貢獻(xiàn)樣例作為社區(qū)成長進(jìn)階的敲門磚,可以逐漸參與到OpenHarmony 社區(qū)代碼貢獻(xiàn)、文檔貢獻(xiàn)、技術(shù)方案討論及設(shè)計、解答用戶問題、發(fā)表技術(shù)文章及視頻課程等,最終由社區(qū)用戶逐漸成長為SIG負(fù)責(zé)人或PMC成員,逐漸走向“社區(qū)技術(shù)大佬”。
參考社區(qū)成長路徑。
-
代碼
+關(guān)注
關(guān)注
30文章
4825瀏覽量
69049 -
人臉識別
+關(guān)注
關(guān)注
76文章
4015瀏覽量
82314 -
OpenHarmony
+關(guān)注
關(guān)注
25文章
3744瀏覽量
16580
原文標(biāo)題:如何貢獻(xiàn)OpenHarmony開發(fā)樣例
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論