背景
在上一篇 开源(Open Source)那些事儿 (一) 我讲了我接触开源的过程和一些开源的license。关于iToday开源项目,详情可以参考王克伟的我在Windows嵌入式系统上的一个绚丽用户界面开源项目(iToday)。这篇讲述iToday的开发计划。
远期目标
远期目标由王克伟制定的,是一个集Gesture库,Animation库,控件库,DirectDraw, OpenGL ES, Widget 和 XML-based UI组成的Windows Mobile图像库。该库不仅仅支持iToday的开发,还支持开发吸引人的Windows Mobile应用程序。
短期目标
进过与李森 - listen的沟通,我们觉得实现远期目标需要较长的时间,因此我定了个短期目标。近期目标是实现一个类似于HTC的M2D的today。我使用过三星的today,PointUI和spb shell,我认为HTC的M2D是做得最简洁和方便的,这可能也是为什么HTC的机器卖的最好的原因之一。
这是一个HTC的M2D,主要由几方面组成,包括位于下面的导航菜单,这个菜单非常重要,可以转换不同的页面(Panel)。其次有各个页面组成,这些页面包括Home, People, Messages, Mail, Internet, Photos, Videos, Music, Weather, Map Search, Settings, Programs等等。
当点击下面的导航菜单,可以预览当前点击的Panel,如下图,点击Messages菜单。
等放开点击后,可以转换到相应的Panel,使用该Panel的功能,下面的点击Weather的预览和进入Weather后的Panel。
对比当前版本的iToday,和HTC的方向是一致的,在下面是导航菜单条,通过导航菜单更换Panel。下面是Home Panel。
下面是People Panel。
下面是Program Panel。
下面是Photos Panel。
如何实现短期目标
从目前版本到实现短期目标,需要完善导航菜单的功能,完善原有的Panel,增加没有的Panel。我把主要任务列出来。一旦实现了所有这些功能,短期目标实现,版本V1.0发布。
功能模块 |
详细功能 |
责任人 |
导航菜单 | 完善导航菜单的功能,实现M2D的预览,和支持多个Panel。 | 李森 - listen |
编码规范 | 编码规范 | 李森 - listen |
完善Photes Panel | 图片压缩预览等功能。 | 王克伟 |
新增Weather Panel | 实现WebService的封装,实现下拉框控件的封装。 | Jake Lin |
完善Home Panel | 实现未接电话、未读短信等通知,简单的时间和日期。 | Roy |
完善People Panel | 完善类似九宫个的布局,这个可以与Programs Panel一起做,封装编辑框等控件。 | |
新增Messages Panel | 封装POOM的功能。 | 余锦峰 |
新增Mail Panel | 封装SMTP的功能。 | |
新增Internet Panel | 调用默认浏览器。 | |
新增Music Panel | 封装Windows Media Player。 | |
新增Video Panel | 封装Windows Media Player。 | |
新增Map Search Panel | 调用google map api的功能实现。 | |
新增Settings Panel | 封装选择框控件。 | |
完善Programs Panel | 完善类似九宫个的布局。 |
如果兼顾远期目标
我考虑的短期目标的时候也考虑了如何兼顾远期目标。在远期目标中,Gesture库是必须实现的,非UI库,例如POOM,XML,WebService等等也会实现,同时实现了GDI,Immaging呈现功能,实现部分控件库功能,我把这个过程作为积累过程,是实现远期目标的积累,这些功能成为远期目标的一部分。其他功能,例如DirectDraw, OpenGL ES, Widget 和 XML-based UI和控件库,现阶段我把他们作为experiment,实验功能,他们位于的命名空间experiment下,他们的实现与否和iToday的Version 1.0无关。我考虑把这些功能作为一个Panel来做,例如Widget Panel,当Widget Panel实现完善了,可以推广到其他Panel中。再如OpenGL ES Panel,开始把他作为一个Panel,但是成熟了以后可以作为呈现的基础部分,修改其他Panel去支持OpenGL ES。
关于团队
一个规模大的开源项目单靠一个人很难完成,需要有共同志向的一队人来完成,这些人包括开发者,测试者和推广者,开发者完成设计,开发和实现功能。测试者负责测试和定位问题。推广者负责产品的推广,包括到blog,论坛上的推广。同时还需要项目协调人,做做打打扫扫的工作,我现在就是做这个工作。同样的iToday也需要上述的角色,但是是不是人越多越好呢?我并不这样想,开源参与者一般被称为 Contributor,贡献者。参与开源是贡献,没有直接的回报。如果想参与iToday得到什么经济上的回报,我诚实的告诉你,我们给不了这样的回报给你。那能得到什么,学习的过程,能力的提升,可能附带写知名度的提升之类的。直接的金钱上的利益是得不到的。如果明白了这个道理可以考虑加入,参与模块的开发,产品的测试和产品的推广。
下一篇讲环境搭建,代码规范那些....
本文转自Jake Lin博客园博客,原文链接:http://www.cnblogs.com/procoder/archive/2010/02/05/About-Open-Source-2.html,如需转载请自行联系原作者