wiki:IOS3/NewSchema

Version 7 (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,提供模板页和数据的下载。

区块分划

3.0 客户端的界面分为四组功能

  • 顶栏,提供上下文菜单和导航等功能
  • 分类导航。位于顶栏之下,由于只出现在特定的内容区中,这个组件应该划入内容区
  • 内容区,主要呈现文章内容或文章列表两种形式,在列表顶部可能有焦点图和分类导航
  • 频道导航栏,位于最下方,提供基础分类的切换。该导航栏的切换引发内容区的资源跳转

服务器

相关面索引

Attachments