GUI的开发,从来都不是一件简单的事情。它涉及很多很复杂的关系,尤其是和用户交互的时候,涉及很多状态。
一个产品,往往花费大量的时间用在GUI的开发上。对于一些企业级的应用--如OA等--来说,有大量的GUI设计工具,这些工具提供了足够多的
标准控件、数据绑定、数据源等等功能。在界面要求不必绚丽,用户体验要求不高的应用场合,GUI已经非常方便了。
而且,随着硬件的加强和分布式开发的需求,这些应该都首选B/S架构,甚至,C/S架构已经寥寥无几了。
但是,在嵌入式和其他应用场合,考虑到性能、速度等要求,仍然是以C/C++语言开发为主,虽然也有使用WebOS的设备,但是大多属于高端。
尽管在未来,WebOS及其变种,可能会大行其道。但是,毕竟WebOS不是为本地应用定制的,而且,js和本地接口的绑定,设计和开发起来,仍旧很困难。
而且,WebOS不能解决所有GUI产品开发的整个流程。
从我做GUI的一些定制类项目的经验看,开发一个完整的产品,不仅仅是GUI一方面的问题,而且还涉及到很多方面。
通常来讲,开发一个GUI的产品,我们是这样做的:
- 进行需求分析,做产品设计
- 架构师开始做整个产品的设计,同时,UI工程师,对界面进行设计
- 开发者根据UI工程师的设计,做界面的实现
- 合并UI、数据管理等各个方面,成为一个统一的产品
首先,用户的需求往往是不明确的。尤其是在定制项目中,很多客户可能在其他领域很在行,但是在UI和产品开发上,却不行。一开始,他们自己可能都不知道应该作成什么;
其次,及时客户清楚做成什么样子,在开发过程中,根据开发的结果和进度,也会产生很多别的想法;
第三,很多时候,为了拿下单子,UI工程师常常会脱离实际,设计一些很难实现或者很不常见的界面,导致开发者在实现时,费尽心力的去想方设法的实现
第四,由于设计和实现的脱节,当实现效果和设计效果有差距时,客户往往会按照实际显示效果重新做出调整
第五,UI工程师的设计,往往只针对一个页面一种场景,没有