开源那些事儿 (二) - iToday开源项目计划

背景

在上一篇 开源(Open Source)那些事儿 (一) 我讲了我接触开源的过程和一些开源的license。关于iToday开源项目,详情可以参考王克伟我在Windows嵌入式系统上的一个绚丽用户界面开源项目(iToday)。这篇讲述iToday的开发计划。

 

远期目标

远期目标由王克伟制定的,是一个集Gesture库,Animation库,控件库,DirectDraw, OpenGL ES, Widget 和 XML-based UI组成的Windows Mobile图像库。该库不仅仅支持iToday的开发,还支持开发吸引人的Windows Mobile应用程序。

开源那些事儿 (二) - iToday开源项目计划

 

短期目标

进过与李森 - listen的沟通,我们觉得实现远期目标需要较长的时间,因此我定了个短期目标。近期目标是实现一个类似于HTC的M2D的today。我使用过三星的today,PointUI和spb shell,我认为HTC的M2D是做得最简洁和方便的,这可能也是为什么HTC的机器卖的最好的原因之一。

 开源那些事儿 (二) - iToday开源项目计划

这是一个HTC的M2D,主要由几方面组成,包括位于下面的导航菜单,这个菜单非常重要,可以转换不同的页面(Panel)。其次有各个页面组成,这些页面包括Home, People, Messages, Mail, Internet, Photos, Videos, Music, Weather, Map Search, Settings, Programs等等。

当点击下面的导航菜单,可以预览当前点击的Panel,如下图,点击Messages菜单。

 开源那些事儿 (二) - iToday开源项目计划

等放开点击后,可以转换到相应的Panel,使用该Panel的功能,下面的点击Weather的预览和进入Weather后的Panel。

开源那些事儿 (二) - iToday开源项目计划

开源那些事儿 (二) - iToday开源项目计划

 

对比当前版本的iToday,和HTC的方向是一致的,在下面是导航菜单条,通过导航菜单更换Panel。下面是Home Panel。

开源那些事儿 (二) - iToday开源项目计划

下面是People Panel。

开源那些事儿 (二) - iToday开源项目计划

下面是Program Panel。

开源那些事儿 (二) - iToday开源项目计划

下面是Photos Panel。

开源那些事儿 (二) - iToday开源项目计划

 

如何实现短期目标

从目前版本到实现短期目标,需要完善导航菜单的功能,完善原有的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,如需转载请自行联系原作者


上一篇:[C++]VC自定义发IP包例子


下一篇:alert文件中出現:Auto-tuning: Shutting down background process GTXd