第一次作開源項目,從0到1024個star數量經歷了一個多月的開發和維護,重新手到入門(至於以後的階段,我也還在摸索中)。在這裏我就來分享一下個人經歷吧,但願可以對想作開源可是沒行動的小夥伴有所幫助。git
項目地址:https://github.com/CymChad/BaseRecyclerViewAdapterHelpergithub
最近一段時候在編寫項目(APP應用)的時候使用列表控件頻率很是高,寫着就發現不少代碼冗餘了,因而就想封裝一下,開始作起了代碼優化,以前作過相似的優化,因而根據以前的優化經驗,最終代碼量獲得了大幅度的優化。只要原有代碼量的30%便可完成顯示功能,後來隨着項目需求的增長不斷的完善封裝,使得只須要簡單的幾行代碼就能夠完成的需求(如:添加頭部尾部、添加列表動畫、等等)。最終造成了一個還不錯的基類,本着分享的精神就上傳到了GitHub上面。框架
目的:讓更多開發者加入開發,把這個項目作的更強大,使更多人受益。佈局
在github上面沒有查找到有知足個人需求的開源項目,我才造輪子的。優化
解決實際問題動畫
優化Adapter代碼(減小百分之70%代碼)spa
添加點擊item點擊、長按事件、以及item子控件的點擊事件.net
添加加載動畫(一行代碼輕鬆切換5種默認動畫)事件
添加頭部、尾部、下拉刷新、上拉加載(感受又回到ListView時代)ip
設置自定義的加載更多佈局
添加分組(隨心定義分組頭部)
自定義不一樣的item類型(簡單配置、無需重寫額外方法)
設置空佈局(比Listview的setEmptyView還要好用!)
除了解決問題,還有就是讓更多人知道,因此接下來就是「推廣」。
個人方法是經過寫做平臺去推廣,寫一些文章關於該項目的
使用方法(便於讓開發者理解它的簡單使用以及強大的功能)
原理分析(讓更多開發者學會它,加入開發,也能夠收到更好的反饋)
我用的寫做平臺有(你也能夠選擇更多,多多益善):
寫完以後再發連接到分享平臺(你也能夠選擇更多,多多益善):
開發者頭條 http://toutiao.io/
乾貨集中營 http://gank.io/
這些都是開發者平時比較關注的平臺(你也能夠選擇更多,多多益善)。
推廣後,開發者就會進入你的項目首頁因此接下來看的就是「README.md」的編寫。
個人README(英語版、中文版),它的結構:
gif案例效果
demo下載方式
框架導入方式
框架使用方式
效果(看)=》demo(玩)=》源碼(用)
當開發者使用事後就要想到後續的「開發及維護」
有任何需求能夠在github提issue,(bug我一般在24小時內就會解決)可是很重要的一點是,因爲每一個人的精力都是有限的,作開源項目都是用的業餘時間,因此要尋找小夥伴一塊兒來維護項目,因此我就建了一個Q羣(目前134人),讓感興趣的開發者加入進來,一塊兒來完善,造成一個圈子,這樣遇到問題的人多了,天然解決方法就多了,最開始也許都須要問我,可是到了如今,已經有不少成員會主動的去幫助新入羣的小夥伴解決問題了,造成了一種解決問題的氣氛。
入羣門檻:star個人項目,爲何呢?
有門檻,都有人加入的話證實加入者求知慾強。
肯定star了個人項目,確定看過源碼或者用過個人項目,這樣入羣后纔有更深刻技術的交流,羣裏面內容質量纔可以獲得保障。
選拔人才,從使用者中選擇,讓他們加入開發或維護,這樣才能把這個東西作好作大。
幫助本身的同時,幫助了別人
結交志同道合的朋友
收穫反饋,技術提高
其實作開源項目並不難(我行,你也行!)主要是要邁出第一步,而後及時接受反饋,不斷知足用戶需求!我建議你們都去開源實踐,不管你的技術如何,分享是互聯網的一種精神,獻出本身的一份代碼,幫助更多人吧,也許你曾經使用過別人的開源框架,而如今你也開源以一樣的方式獻出本身的一份力量,不管結果怎樣,你總會有收穫。
若是你是Android開發者,歡迎加入個人開源項目:[傳送門]