没错,你没有看错,博客园Android客户端开源了!
我在上一篇博客中说到会开放这个应用的源代码,现在,这个首款博客园Android版客户端正式开源了。
一些废话
关于应用我前两篇已经基本上介绍了一下,这里要特别说一下背后的一些故事。我做这个应用的最开始是想开发一个自己用的,于是我把这个想法跟dudu沟通了一下,dudu很支持,接口这边就没有什么问题了,我从毕业后基本上是一直做asp.net,2011年上半年曾经接触过一点点的Android开发,于是想借这个机会也可以熟悉一下手机客户端的开发,而恰好同事这边也有专门做Android开发的,于是天时地利人和,我又找到了一个设计师mm来帮我忙设计了简单的UI,很快,框架就搭起来,一个还算像模像样的应用就安装到了我的手机上,感到很兴奋,于是决定把它做成完善,更强大。
大概一个半月的时间,第一个版本就编码结束并且发布了,我对这个速度还是比较满意的,因为白天上班而且比较忙,完全是利用晚上和周末时间来做开发,虽然辛苦但是很有激情,常常忘记时间坐到凌晨两三点!
第一个版本发布后有一个严重的问题没有解决,就是在图片加载的地方没有使用异步加载,导致刚打开时UI线程和后台线程是同时进行的,会感觉很慢,当时时间比较紧,以为这个功能可能是需要较长的时间才能解决,所以打算放到下一个版本去解决。后来找到了bug,原来是一个字符串判断为空的地方疏忽了……这个功能一直让我感觉很不完善,于是新的版本很快就再次启动开发了,这次的主要工作一是解决上一个版本的bug,第二是增加离线阅读的功能,同时在设计产品时发现对具体一个博客园用户来说将它做成RSS本地订阅的方式会更好,因为可以离线下载完该博主的全部文章然后阅读,这样,一个简单的RSS阅读器就产生了,功能虽然没有网易阅读、Zaker那样复杂,但基本上是能满足一部分人的需求。
如我上一篇博客所说,第二个版本的开发持续了较长一段时间,主要是个人有些事情要处理,这段时间也产生了将这个应用开放源码的想法,一个人的力量毕竟是渺小的,或者你自己在使用这个应用时感觉某个功能觉得并不完善,或者你感觉代码或者UI太烂,那么你可以跟我一起把这款应用做得更好。
另外我还专门为这个应用拍摄了一个宣传片,视频地址见这里:http://news.cnblogs.com/n/139303/(我现在可是编导演三栖啊),特别感谢几位可爱同事的帮忙。
视频如下:
我希望是将这款应用打造成属于所有博客园园友的一款最为强大易用的Android客户端,如实说,我虽然做程序员将近4年的时间,但是总觉得自己一直处理初中级程序员这个级别,能熟练使用语言,能快速解决一些问题,但水平是“但手熟尔”,离高级程序员和架构师的级别还差得很远,也是打算借助这个机会向更优秀的人学习交流,一起进步。
关于开源的一些说明
1、是否加入此开源项目完全自主自愿,不加入也可以自由下载和使用源码,但如果你是以下其中一种或几种人,我建议你加入该开源项目:
a、对Android开发很感兴趣,学习借鉴一下其他项目的经验;
b、觉得这个Android客户端用着很不爽,想加入自己想要的功能和想法;
c、觉得UI好丑!来设计一下更好的UI;
d、重构达人,看不惯蹩脚的代码,要让应用的性能大幅度提升。
2、我之前也做过几个开源的项目,但都是自己一个人的开源作品,也是头一次做多人协作的开源项目,很多都还没有摸到北,园子里人才济济,肯定潜伏着各种牛人,请多多指教。
3、版本控制使用的是git,托管空间是github;葛大爷不是说了吗,哪家人多我去哪!同样惭愧的是,前几天才刚学会一些git最简单的操作,目前还在熟悉git中,虽然还不太清楚它的好处,但是,感觉很高深的样子!
一些细节和技术的东西
下图是代码的大致架构:
包名基本上都能望文知义,其中parser包主要是用来解析博客园接口的xml文件,一些细节性的和大家有疑问的地方,我将整理出来,放在下篇博客中详解。
代码中重要的地方基本上都做了注释,同时源码中也包含了数据库设计文档。
开发时推荐的工具:
1、PC端SQLite管理工具SQLite Expert:这个软件个人版是免费的,我主要使用的是它可以生成SQL脚本,这样就可以将SQL直接粘贴到Eclipse中,而不需要一个字母一个字母来敲了,另外就是如果你使用模拟器仿真设备,可以将sqlite文件导出来,使用SQLite Expert来管理这个sqlite文件,SQLite Expert的主页地址是: http://www.sqliteexpert.com/。
2、Android开发还是建议使用直机连到电脑上开发,打开调试模式,因为那个仿真器真的是太慢了!手机上建议安装的是R.E.管理器(也就是Root Explorer,下载地址)和SQLite编辑器(下载地址),好像这两个软件是同一个作者,R.E.管理器用于管理手机上的文件,尤其是使用SharedPreferences生成的xml文件,非常方便易用,SQLite编辑器可以管理数据库文件,可以查看、编辑和删除记录,非常强大。
进一步开发的计划
目前第二个版本还有一些不是很完善的地方,比如有的时候会异常退出,字体调整功能等等,因此第一步的计划是先这些bug先消除掉,同时加入比较要紧的功能,这个之后开始进行代码重构,然后等待官方用户接口的开发,将用户登录、用户收藏、用户评论等功能加上,最后会考虑pad版的开发。
最后还是要再次声明一次,我只是一个小小程序员,代码很烂,请轻拍,我更需要大家的指点和参与。
应用主页:http://android.walkingp.com/cnblogs/
项目地址:https://github.com/walkingp/AndroidCnblogs
讨论小组:http://home.cnblogs.com/group/AndroidCnblogs/
我的邮箱:walkingp#126.com