Break it Down
这里转贴
|
Milestone |
No |
Task |
Feature |
Remark |
Owner |
|
1 |
文件管理 |
||||
|
Alpha |
1.1 |
程序运行在后台时可以从itunes中导入文件。实现在AppDelegate中 |
左斌 |
||
|
Beta |
1.2 |
可以用wifi导入文件 |
N/A |
||
|
Alpha |
1.3 |
程序启动时/恢复运行时,从用户文件夹中读取所有的PDF文件,存入数据库。从AppDelegate的相应方法中调用FileManager的相应功能实现。 |
左斌 |
||
|
Alpha |
1.4 |
需要保存PDF id,文件名(程序用,唯一,建议用hash值),用户看见的文件名(用户设定/初始文件名,可重复),tags(如无,设定一个默认初始tag),PDF内容等等。此处需要申请一个数据库接口,即给出PDF文件的属性和内容,保存到数据库中。完成后从用户文件夹中删除所有文件。 |
ZB |
||
|
2 |
文件管理UI |
||||
|
Alpha |
2.1 |
用户从界面进入文件管理部分时显示文件。第一次启动程序时首先显示的界面(FileManagerViewController,这应该是一个NavigationController且是整个程序的视图栈的基础)。如果之后再启动程序考虑直接显示上次的PDF即可。 |
左斌 |
||
|
Alpha |
2.2 |
首先显示tag列表(TagsViewController),依然需要请求一个数据库接口,返回所有tag列表。 |
界面设计建议使用标准Navigation-TableView模板的方式,简单易用。参考实现目标:Papers的文件管理UI。 |
左斌 |
|
|
Alpha |
2.3 |
用户点击任何一个tag则显示(push)所有此tag下的文件列表(PDFListViewController),需要数据库接口返回所有该tag下的文件列表。 |
左斌 |
||
|
Alpha |
2.4 |
用户点击任何一个文件则转入(push)PDF显示部分(PDFViewController)。 |
左斌 |
||
|
3 |
PDF 显示UI |
||||
|
Alpha |
3.1 |
PDFViewController,负责显示的是PDFView |
左淞 |
||
|
Alpha |
3.2 |
通常用户从文件管理部分选择打开一个PDF时进入PDF显示部分。文件管理部分将传入PDF ID。从数据库根据pdf id申请文件内容和所有相关笔记列表,需要数据库接口。(在viewDidLoad中填写) |
左淞 |
||
|
Alpha |
3.3 |
对所有PDF内容渲染显示 |
这部分是用户体验的重点,一定要做好。 |
左淞 |
|
|
Alpha |
3.4 |
对PDF进行手势交互。 |
参考fastPDF |
左淞 |
|
|
Alpha |
3.5 |
对所有笔记内容渲染显示 |
参考Diigo |
李可骞 |
|
|
Alpha |
3.6 |
用户点击编辑按钮/长按(交互方式由dy定)触发了添加笔记操作后显示添加笔记相关的界面。这里需要几个子view,实现编辑笔记界面。用户完成编辑后点击保存,将笔记存入数据库。 |
参考Diigo |
李可骞 |
|
|
Alpha |
3.7 |
对PDF的文字进行选择(iOS放大镜风格的选择文字),并把选择后的文字Highlighting。 |
这部分的实现有一定复杂度,因为根据Quartuz 2D有限的PDF Scanner 函数,我们必须自己计算出,每行的坐标来定位。可以参考其他开源代码。 |
ZZD, GZQ。 |
|
|
Beta |
3.8 |
后期的分享等操作也将在这个部分中集成,目前暂时不用管。 |
N/A |
||
|
4 |
数据库 |
在实现之前各位相关实现者请先自己fake一个假的来使用。例如:- (NSArray *)getTags { return [NSArray arrayWithObject:@”defaultTag”];}这样用先。左斌可能需要fake一个直接读取本地文件的接口。 |
ZB,ZS,LKQ |
||
|
Alpha |
4.1 |
数据库接口 DataManager.h。以上需要数据库接口的部分,由相关实现者自己定出需要的接口。例:显示PDF列表的接口类似这样:- (NSArray *)getPDFListWithTag:(NSString *)aTag; |
参考服务器端的数据库,使用sqlite3建表保存本地需要保存的数据。 |
GYH |
|
|
Alpha |
4.2 |
数据库 DataManager.m的接口实现。接口定义之后,实现接口(即调用相应的数据库功能完成接口的功能。 |
GYH |
||
|
Alpha |
4.3 |
所有PDF信息应当保存在一张表中,列信息分别是PDF ID, tags, filename(hash), userFilename, content(bin data)等等,方便查询。 |
GYH |
||
|
Alpha |
4.4 |
所有笔记信息应当保存在一张表中,列信息分别是commentID, groupIDs, PDFIDs,type,position(range), content等等。 |
GYH |
||
|
Alpha |
4.5 |
所有的数据库接口都需要查表返回相应的数据。 |
GYH |
||
|
5 |
服务器通信部分 |
||||
|
Beta |
5.1 |
定期/主动同步的时候.向服务器上传最后同步时间戳,在该时间之后服务器端的改动需要下载到本地. 本地遍历所有的PDF和comment,如果没有和服务器同步过的则向服务器上传。完成后提示用户同步成功/出现网络问题等等 |
WD |
||
|
Beta |
5.2 |
服务器端的数据库实现 |
WD |
||
|
Beta |
5.3 |
ipad和服务器间的交互 |
WD |
||
|
Beta |
5.4 |
完成后提示用户同步成功/出现网络问题等等 |
ZYC,WD |
||
|
Beta |
5.5 |
服务器端的HTTP API |
WD |
||
|
Beta |
5.6 |
服务器端的异常处理 |
WD |
||
|
6 |
界面设计 |
杜云 |
|||
|
Alpha |
6.1 |
根据以上的说明希望设计一个用户操作的流程,涉及到我们的应用的每个方面 |
杜云 |
||
|
Alpha |
6.2 |
设计(用photoshop)各个部分的用户界面,让开发人员看图实现效率会高很多的。 |
杜云 |
||
|
7 |
测试 |
||||
|
Alpha |
7.1 |
Scenario 1. 用户开始使用软件。Step 1:打开界面。Step 2:打开一个PDF。Step 3:翻页,放大缩小。Step 4:Highlight。加笔记。Step 5:关闭。 |
张雨辰 |
||
|
Beta |
7.2 |
Scenario 2. 同步. |
王栋 |
posted on 2011-04-20 15:57 take it and go 阅读(363) 评论(38) 收藏 举报
浙公网安备 33010602011771号