| Version 13 (modified by liuxin2, 15 years ago) (diff) |
|---|
第三版新架构项目文档
概述
面对 PCGroup 网站门户接入越来越多的需求,我们决定设计一个统一的客户端架构,使之可以做到数据驱动,快速开发,将重复开发工作降到最低,消灭散落在代码中的硬编码宏。
层次分划
按从前向后,新的客户端架构可以分为UI层、消息处理(功能逻辑)层、数据存储层、网络访问层、服务器层。
UI 层
UI 层是 3.0 架构与之前的版本变化最大的地方,也是最根本的升级动机。第三版的 UI 细节不写在代码里,而是读取服务器端数据,生成本地界面。 UI 层只负责将数据套入模板 View,呈现给用户。
UI 层按目前资讯客户端的业务,可以分为几种不同的 VIEW。由模板驱动。
消息层
各区块之间松耦合,互不依赖(在内部可以紧耦合)。消息层应该有一个或若干消息处理模块,对一些消息实施分检和再发送,类似于没有view的controller。
数据存储层
数据存储层提供本地数据缓存,为客户端提供环境上下文和缓存功能,分为文件存储、SQLite和Socrates三种服务。
文件存储直接使用框架功能,可以参考2.x的Sandbox沙盒代码。
SQLite使用第三方组件 fmdatabase。
Socrates 组件实现一个通用 Socrates模型的特化实现。Socrates 的通用机制参见 http://www.slideshare.net/marchliu/socrates-used-postgresql-and-sqlalchemy
网络访问层
网络访问层提供独立的网络访问机制,异步、消息驱动,面向HTTP。
服务器层
服务器层依托 mrobot,提供模板页和数据的下载。
UI 组织
UI 界面由一个 ContextCotroller? 承载,它维护一个uiview序列,根据uri消息切换必要的view,如果uri不在缓存的view序列内,则构造一个新的view,否则取缓存view。
列表view的区块分划
3.0 客户端的界面分为四组功能
- 顶栏,提供上下文菜单和导航等功能
- 分类导航。位于顶栏之下,由于只出现在特定的内容区中,这个组件应该划入内容区
- 内容区,主要呈现文章内容或文章列表两种形式,在列表顶部可能有焦点图和分类导航
- 频道导航栏,位于最下方,提供基础分类的切换。该导航栏的切换引发内容区的资源跳转
顶栏
顶栏主要元素包括:
- 回退按钮或LOGO占位符
- 上下文菜单
分类导航
分类导航栏只在特定的内容区出现,应设定为内容区的子组件,但是它有自己的逻辑。分类导航栏由特定的数据驱动生成,可由用户定制,点击其中元素可触发内容区资源跳转。
该组件可使用 three20 或 cocoa 组件实现。
内容区
内容区是最重要的核心区域,呈现从服务器获取的,用户感兴趣的内容。内容区主要呈现列表页或
内容区的切换,会改变整个客户端的上下文环境,可能会引发上下文菜单等区域的改变。
内容视图
内容视图主要是内容区的 webview 组件,涉及顶栏的上下文菜单、后退功能,和底部的工具栏(提供分页等功能)。
内容页也可能是定制的本地化功能view,视uri而定。
服务器
服务器基于mrobot环境,提供模板页和数据下载。
相关面索引
Attachments
-
CategoryDesign.png
(15.0 KB) -
added by liuxin2 15 years ago.
-
ArticleDesign.png
(9.4 KB) -
added by liuxin2 15 years ago.
![(please configure the [header_logo] section in trac.ini)](http://www1.pconline.com.cn/hr/2009/global/images/logo.gif)

