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