未来GUI及其应用的研究(1) -- 原型和框架(1)--我们需要什么样的原型
来源:互联网 发布:org.apache.hadoop.io 编辑:程序博客网 时间:2024/06/05 07:13
1. 原型的重要性
原型的重要性在于,对于所有参与者来说,原型就是一个锚,把所有参与者都锚在一个目标之上,不至于出现偏差。
就像我们给葡萄藤搭的架子,是沿着向上延伸到基础和框架。
原型的另外好处是,它可以先行做很多可行性的验证,可以给开发者和客户带来信心和希望。
好的原型,以及可以在该原型基础上衍生的程序和应用,对一个UI组件库的推广和应用,有直接推动的作用。
一个好的开始,更容易让人接受;而原型已经事先考虑了开发中可能遇到的情况,可以从原型提供的各种示例和程序中,找到解决问题的办法,
从而,让开发人员更有信心做出好的界面来。
2 原型要做什么?
一个手机到原型,自然要有主菜单、电话、通讯录、短信等等基本的应用,而一个什么都不针对的原型,它应该包括的有:
- 启动画面
- 主界面,或者是主菜单,能够显示图标,进入到其他程序
- 系统级应用,比如:
- 文件浏览器
- 系统设置,如时间日期,语言设置、主题、用户管理等
- 设备管理,包括设备的查看和管理,如内存或者flash,屏幕、电池管理等
- 应用程序管理,一些应用的安装、卸载等
- 一些常用的应用,如:
- 计算器
- 记事本
- 备忘录
- 闹钟
- 日历
- 相册
- 等等
- 一些领域内常见的应用,如:
- 音频播放器
- 视频播放器
- 收音机
- TV
- 浏览器等
这是从需求的角度上分析。无论这样的系统,是应用在手机(山寨机),MP3、MP4、学习机等民用产品上,还是用于一些工业控制、医疗设备等工业设备上,只要稍微复杂一些,总是是离不开这些东西的。
工业控制和医疗、军工、安全等行业,它们的UI相对简单而且需求各异。我虽然了解不多,但是,除了上面原型中,一些具体应用和这些领域有很大差异外,其余的应用的管理等方面还是一致的。
实际上,界面是容易做的,简单的逻辑也很容易编写,但是,把他们放在一起,形成一个完整的程序,就需要仔细考量了。
从外观看起来,原型相当于一个小的完整的操作系统。但是,它和普通的操作系统还有很大的区别。它实际上是外部的UI和UX的外壳,负责管理所有和UI和UX相关的内容。
3. 原型的框架
除去对具体应用的考虑,一个合理的框架是一个原型或者说一个系统重要的灵魂。
- 这样一个原型的框架,至少应该包括如下内容:
- 对模块和应用的管理,包括应用的安装和卸载
- 管理应用之间的通讯和相互调用
- 构建统一的界面元素,管理统一的外观和主题
- 管理语言及其切换
- 构建统一的应用界面框架
- 为各种系统调用,提供统一的接口
3.1 应用程序的枚举
- Name,应用程序的名字,内部使用
- Version,
- Caption,显示使用提供多种语言
- Description,描述,提供多种语言
- Icons,应用的图标,可以有多个,比如,大、中、小分辨率的图标等
- Path,安装的位置等
3.2 应用程序的安装和卸载
3.2.1 静态安装和卸载
- 系统的基础库(UI库等)以动态库方式编译
- 每个应用(包括启动画面等,都是以应用程序的方式提供)都编译成可执行程序
- 最后安装时,所有应用及其资源都放在统一的目录下
- 系统的基础库(UI库等)以静态库的方式编译
- 各个应用都编译为静态库
- 自动生成静态的应用程序列表
- 最后链接为一个统一的程序
- 编译脚本根据该文件,生成一个Makefile,包括了那些应用应该被编译,应该如何被链接。根据是多进程还是单进程的区别,可以生成不同的脚本
- 生成一个c或者c++的源代码文件,这个源代码文件,定义一个应用程序列表的数据结构,这个数据结构中,除了包含应用程序的名称信息外,还需要包含其入口函数的地址(仅对单进程有效)
3.2.2 动态的安装和卸载
3.3 应用程序间的相互调用
- 一种应用,启动另外的应用,暂时接替自己来运行。如照相程序,拍照后,转入到相册程序中,启动它来浏览拍照的图片等。我们称为父子程序。这种情况下,父程序隐入后台,暂时不在做什么事情,而子程序出现在前台,直到它退出。
- 嵌入式应用。很类似windows的OLE程序,子程序和父程序似乎嵌入到其中,没有区别一样。这种比较常见的是音频和视频播放。如在资源管理器中预览视频等。子程序在父程序的一个窗口内运行。父程序可以随时取消或者杀死对应的程序
3.4 UI应用和非 UI应用的相互调用
- 进程间的数据传递
- 线程/任务之间的数据传递
- 同步传递
- 异步传递
3.5 文件类型的注册和浏览
- 应用程序的名字
- 应用程序希望的参数格式
- 文件的图标,包括多种分辨率
- 获取预览的接口
- 嵌入式浏览的接口
3.6 统一的风格
统一的风格包括两种:
- 界面的元素一致性,比如,所有按钮,其外观和行为都一样
- 统一的界面框架,如统一的背景、大小、标题栏等
但是这不是唯一的。有的时候,也会做一些和统一相背的风格和界面。
3.7 国际化
国际化的支持,是必不可少的。
国际化的支持,主要涉及语言、时间日期格式,货币格式,地址格式等,和国际化相关的内容。
考虑到阿拉伯文等一些从右到左的文本,则需要考虑一些元素的定义,如,文本框默认就要设置为右对齐而不是左对齐。
另外,一些图片,可能带有文字或者国家特色,也是需要更换的。
这些这涉及到资源的管理了。在资源管理中,需要考虑到国际化的支持。
3.8 Timer和Alarm服务
Timer和Alarm是非常重要的服务。比如,显示一个提示框,N秒后自动关闭。或者是增加一个提醒功能等。
Timer服务可能会执行一次,或者多次,需要主动注册,只是当前有效;Alarm则是一旦设置,及时系统退出,也会一直存在。一些设备,如手机,会保存一定的电量,在关机时,也可以启动alarm。
很多GUI库提供了timer服务。但是很多设备也有硬件的Timer。硬件的Timer效果更好些;Alarm也是很多硬件都提供的。
对于我们来说,Alarm的添加、删除以及动作,都是框架需要解决的问题。
3.9 应用程序信息接口
3.10 自动记忆服务
3.11 复制粘贴服务
这没什么好说的。用的很多。
3.12 统一的输入法管理
输入法也是非常重要的一部分。它的管理,也是全局性的。而且,很多情况下,也需要外部代码的介入。
- 未来GUI及其应用的研究(1) -- 原型和框架(1)--我们需要什么样的原型
- 未来GUI及其应用的研究(1) -- 基本的策略
- 我们需要什么样的报表
- 我们需要什么样的游戏
- 我们需要什么样的信息系统
- 我们需要什么样的计算
- 我们需要什么样的“技术”
- 我们需要什么样的开发人员
- 我们需要什么样的机器人
- 什么样的原型更受开发欢迎 ?
- strlen的原型及其定义
- strcpy的原型及其定义
- strcmp的原型及其定义
- strcat的原型及其定义
- 未来需要什么样的软件人才
- 未来企业更需要什么样的管理软件?
- 强大的原型和原型链
- js里面的原型和原型链
- LOTUS NOTES公式归类
- Java 操作 MongoDB
- CursorTreeAdapter
- Flex SDK 4.6和Flash Builder 4.6的新特性
- 用jquery 做自己的tooltips
- 未来GUI及其应用的研究(1) -- 原型和框架(1)--我们需要什么样的原型
- 保函业务
- Lotus Domino 与关系数据库的互操作知识集锦
- 在C#中完成海量数据的批量插入和更新
- 为什么用Lotus Script给读者域或作者域赋值却不起作用
- 如何处理ckeditor获取焦点的问题
- 重新配置Lotus Domino 和 Lotus Notes
- 读者域,作者域的解析
- SQL