简书首发:http://www.jianshu.com/p/f2483bd8da43
我以后的文章都会在简书首发,喜欢我的文章的同学,可以关注我的简书,http://www.jianshu.com/users/f958e66439f0/latest_articles
文章图片
第一次做开源项目,从0到1024个star数量经历了一个多月的开发和维护,从新手到入门(至于之后的阶段,我也还在摸索中)。在这里我就来分享一下我的经历吧,希望能够对想做开源但是没行动的小伙伴有所帮助。
项目地址:[传送门]
文章图片
为什么做这个项目?
最近一段时候在编写项目(APP应用)的时候使用列表控件频率非常高,写着就发现很多代码冗余了,于是就想封装一下,开始做起了代码优化,之前做过类似的优化,于是根据之前的优化经验,最终代码量得到了大幅度的优化。只要原有代码量的30%即可完成显示功能,后来随着项目需求的增加不断的完善封装,使得只需要简单的几行代码就可以完成的需求(如:添加头部尾部、添加列表动画、等等)。最终形成了一个还不错的基类,本着分享的精神就上传到了GitHub上面。在github上面没有查找到有满足我的需求的开源项目,我才造轮子的。
- 目的:让更多开发者加入开发,把这个项目做的更强大,使更多人受益。
切入点 解决实际问题
- 优化Adapter代码(减少百分之70%代码)
- 添加点击item点击、长按事件、以及item子控件的点击事件
- 添加加载动画(一行代码轻松切换5种默认动画)
- 添加头部、尾部、下拉刷新、上拉加载(感觉又回到ListView时代)
- 设置自定义的加载更多布局
- 添加分组(随心定义分组头部)
- 自定义不同的item类型(简单配置、无需重写额外方法)
- 设置空布局(比Listview的setEmptyView还要好用!)
除了解决问题,还有就是让更多人知道,所以接下来就是「推广」。
推广 我的方法是通过写作平台去推广,写一些文章关于该项目的
- 使用方法(便于让开发者理解它的简单使用以及强大的功能)
- 原理分析(让更多开发者学会它,加入开发,也可以收到更好的反馈)
我用的写作平台有(你也可以选择更多,多多益善):
- 伯乐在线 http://www.jobbole.com/
- CSDN http://www.csdn.net/
- 简书 http://www.jianshu.com/
写完之后再发链接到分享平台(你也可以选择更多,多多益善):
- 掘金 http://gold.xitu.io/
- 开发者头条 http://toutiao.io/
- 极客头条 http://geek.csdn.net/
- 干货集中营 http://gank.io/
【学习感悟篇|我的开源项目从0到1024的过程】这些都是开发者平时比较关注的平台(你也可以选择更多,多多益善)。
推广后,开发者就会进入你的项目首页所以接下来看的就是「README.md」的编写。README(自述文件) 我的README(英语版、中文版),它的结构:
- gif案例效果
- demo下载方式
- 框架导入方式
- 框架使用方式
效果(看)=》demo(玩)=》源码(用)
当开发者使用过后就要想到后续的「开发及维护」开发及维护
有任何需求可以在github提issue,(bug我通常在24小时内就会解决)但是很重要的一点是,由于每个人的精力都是有限的,做开源项目都是用的业余时间,所以要寻找小伙伴一起来维护项目,所以我就建了一个Q群(目前134人),让感兴趣的开发者加入进来,一起来完善,形成一个圈子,这样遇到问题的人多了,自然解决方法就多了,最开始也许都需要问我,但是到了现在,已经有很多成员会主动的去帮助新入群的小伙伴解决问题了,形成了一种解决问题的气氛。入群门槛:star我的项目,为什么呢?
- 有门槛,都有人加入的话证明加入者求知欲强。
- 确定star了我的项目,肯定看过源码或者用过我的项目,这样入群后才有更深入技术的交流,群里面内容质量才能够得到保障。
- 选拔人才,从使用者中选择,让他们加入开发或维护,这样才能把这个东西做好做大。
开源项目的好处
- 帮助自己的同时,帮助了别人
- 结交志同道合的朋友
- 收获反馈,技术提升
其实做开源项目并不难(我行,你也行!)主要是要迈出第一步,然后及时接受反馈,不断满足用户需求!我建议大家都去开源实践,无论你的技术如何,分享是互联网的一种精神,献出自己的一份代码,帮助更多人吧,也许你曾经使用过别人的开源框架,而现在你也开源以同样的方式献出自己的一份力量,无论结果怎样,你总会有收获。如果你是Android开发者,欢迎加入我的开源项目:[传送门]
推荐阅读
- android|走穿java23种设计模式-2工厂方法模式详解
- CoroutineContext源码分析
- Android(记录“立即购买”短暂的一生(上))
- Android IO流程你真的清楚了吗|硬核科普
- android|android 监控id代码,茗伊插件 剑三技能监控代码
- eng|Github - 第一篇(Github安装与配置)
- eng|Github - 第三篇(分支操作案例)
- Android|摄像头 - 对焦算法实现总结
- FIT2081讲解