基于谷歌Flutter的媒体资讯APP的设计与实现-1608010220-李俊东.docx

上传人:温桑 文档编号:49454412 上传时间:2022-10-08 格式:DOCX 页数:43 大小:2.29MB
返回 下载 相关 举报
基于谷歌Flutter的媒体资讯APP的设计与实现-1608010220-李俊东.docx_第1页
第1页 / 共43页
基于谷歌Flutter的媒体资讯APP的设计与实现-1608010220-李俊东.docx_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《基于谷歌Flutter的媒体资讯APP的设计与实现-1608010220-李俊东.docx》由会员分享,可在线阅读,更多相关《基于谷歌Flutter的媒体资讯APP的设计与实现-1608010220-李俊东.docx(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、基于谷歌Flutter框架媒体资讯App的设计与实现摘要:当今社会,随着经济和科技的发展,人们的生活节奏也愈来愈快,人们生活的阅读时间也越来越少,越发的流行碎片化阅读,而同样的对于互联网的客户端开发者,需求的版本迭代也愈发频繁,同一个移动端的App,起码要发行两个平台,同样也因为这不同的平台,不同的系统,导致在寻多的业务场景中,传统的原生开发效率已经满足不了日益增长的业务需求,如Androi端 和 IOS 端 ,一旦需求上的变更,两个平台上都要进行更新,重新发布版本,这对于一个公司两个终端的开发成本都需增加许多的,这其中主要表现为:(1).动态化内容需求增大:当需求发生变化,传统原生应用需要进

2、行版本迭代来更新内容,但应用上架审核都是要周期的。(2).业务需求变化快,开发成本高:由于原生开发一般都要维护Android、iOS两个开发团队,版本迭代时,无论人力成本,还是测试成本都会变大。这样的情况下,开发者们开发App的成本不断上升,上架流程以及版本迭代流程的繁琐,对此很多IT巨头都推出了很多跨平台的框架,如Facebook的React Native,阿里的WEEX,但都因为存在性能上的缺陷和难以实现复杂的操着,从而导致普及率远没有原生开发的普及高,而Google于2015年推出的Flutter跨平台的框架,如今经历了5年多的发展,Flutter自身的许多的问题也不断在修复中,到现在可

3、谓颇为成熟了,因此以此作为跨平台技术的首选框架,开发此类跨平台资讯应用,研究和学习Flutter之时,也为Flutter的软件生态作出一点添砖加瓦,也为广大的IT网民提供一款不受平台系统限制的资讯应用。Flutter媒体资讯App 将实现一个跨平台的媒体资讯阅读软件,是广大的互联用户不拘束于平台的限制,能够随时随地利用碎片化的时间,来浏览阅读资讯,同时作为一个Flutter开发者可以参与学习的开源项目关键词:跨平台,资讯阅读 Design and Implementation of Media Information App Based on Google Flutter FrameworkA

4、bstract: In todays society, with the development of economy and technology, peoples pace of life is becoming faster and faster, peoples reading time is becoming less and less, and fragmented reading is becoming more and more popular. For the same client developers of the Internet, version iterations

5、 are becoming more and more frequent. For the same mobile app, at least two platforms should be released, because of these different platforms, Different systems lead to the fact that traditional native development efficiency can no longer meet the growing business requirements in multiple business

6、scenarios, such as Androi and IOS. Once the requirements are changed, both platforms need to be updated and re released. This will increase the development cost of both terminals of a company. The main performance is as follows:(1) . dynamic content demand increases: when the demand changes, the tra

7、ditional native application needs to carry out version iteration to update the content, but the application on the shelf audit is periodic.(2) . the business demand changes rapidly, and the development cost is high: because the native development generally needs to maintain two development teams, An

8、droid and IOS, when the version is iterated, both the labor cost and the test cost will increase.In this case, the cost for developers to develop apps is rising, and the process of putting them on the shelf and version iteration is tedious. Many IT giants have launched many cross platform frameworks

9、, such as Facebooks react native, Alibabas weex, however, is far less popular than the native development due to its performance defects and difficult to achieve complex operation. However, the cross platform framework of flutter launched by Google in 2015 has experienced more than five years of dev

10、elopment. Many problems of flutter itself are also being repaired, and now it is quite mature, so it is used as a cross platform The first choice framework of technology is to develop this kind of cross platform information application. When researching and learning flutter, it also makes a little c

11、ontribution to the software ecology of flutter and provides an information application that is not limited by the platform system for the majority of it netizens.The flutter media information app will realize a cross platform media information reading software, which is not restricted by the platfor

12、m, and enables the vast number of Internet users to use fragmented time to browse and read information anytime and anywhere.Keywords: News App;Dart;目录第1章 绪论11.1 App的开发背景及意义11.2国内外研究现状21.3系统的主要研究内容31.4系统开发环境与开发工具4第2章 系统需求分析52.1可行性分析52.1.1经济可行性52.1.2技术可行性52.1.3操作可行性52.2 APP的总体需求62.3 App功能的需求分析62.4.1 A

13、pp功能分析62.5 UML系统建模72.5.1用例图72.5.2用例图规约表82.6本章小结15第3章 系统设计163.1 App功能设计163.1.1类的关系图173.2 App顺序图173.3 App活动图223.4 DAO类设计223.5 网络接口设计283.6 本章小结28第4章 App实现294.1界面实现294.2 本章小结32第5章 系统测试335.1 系统测试的目的335.2 系统测试的意义335.3 测试用例及结果335.4 本章小结35第6章 结束语366.1 全文总结366.2 课题展望36参考文献37致 谢38第1章 绪论1.1 App的开发背景及意义 当今社会迅猛发

14、展,信息的流动也越发频繁,人们获取信息的渠道也变多种多样,物联网时代的兴起,移动互联网的如日中天,不同平台,不同系统下的App也层出不穷,同样也因为这不同的平台,不同的系统,导致在寻多的业务场景中,传统的原生开发效率已经满足不了日益增长的业务需求。在这种碎片化阅读流行的时代,通过跨平台框架开发一款跨平台的媒体资讯阅读的应用,为人们带来更加富有内涵,更深层次的碎片化阅读。此App的开发意义旨在在研究和开发基于的Flutter1的媒体资讯应用,以及Flutter开发在广大移动端的应用,对原生开发的影响以及适用性。为什么我们要选择跨平台?如今的移动端已经发展非常的迅猛,同样的,也诞生了许多的移动端的

15、应用开发者,IOS和Android占据了整个移动市场的主流,两个平台系统的差异性,导致一个应用的开发需要用不同的编程语言,不同的编程生态,这对开发者乃至于企业公司来讲,都需要花费更多的成本,对此有没有存在更好的选择呢?答案是存在的,那就是基于跨平台技术框架的开发, 何为跨平台? 是软件开发中一个重要的概念,即不依赖于操作系统,也不信赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。 Flutter 是什么? Flutter是一款移动应用程序SDK2,一份代码可以同时生成iOS和Android两个高性能、高保真的应用程序。 Flutter目标是使开发人员能够交付在不同平台上

16、都感觉自然流畅的高性能应用程序。我们兼容滚动行为、排版、图标等方面的差异。 为什么要使用Flutter?1. 提高开发效率(1) 同一份代码开发iOS和Android(2) 用更少的代码做更多的事情(3) 轻松迭代 在应用程序运行时更改代码并重新加载(通过热重载) 修复崩溃并继续从应用程序停止的地方进行调试2. 创建美观,高度定制的用户体验(1) 受益于使用Flutter框架提供的丰富的Material Desig3和Cupertino(iOS风格)的widget(2) 实现定制、美观、品牌驱动的设计,而不受原生控件的限制 基于跨平台Flutter框架开发的媒体资讯应用有如下意义:(1) 研究

17、和进一步推广Flutter应用的开发(2) 给广大网民提供一个不受系统差异影响的媒体资讯应用(3) 为如今正稀缺的Flutter应用生态做出贡献。1.2国内外研究现状目前Flutter作为一种新兴的跨平台的技术框架,与老一辈的跨平台技术框架相比,其通过在不同平台实现一个统一接口的渲染引擎来绘制UI,而不依赖系统原生控件,就使得它可以做到不同平台UI的一致性,能够实现其他跨平台技术框架做不到的复杂的动画交互效果,或者复杂的前端交互。在 StackOverflow 2019 年的全球开发者问卷调查中,Flutter 被选为最受开发者欢迎的框架之一,超过了 TensorFlow 和 Node.js。

18、 图 1.1 StackOverflow2019最受欢迎框架 其在Github上的热度,star数达更是可见开发者对其前景的一片看好 图1.2 flutterGIthub热度 而在Flutter中午官网上线后,Flutter中文网也很快被传播开,百度搜索排名迅速蹿升到前三,截止目前,Flutter中文官网4日PV在7万左右,每日独立访问人数近一万多。在中国,Flutter 的开发者社区非常活跃。社区贡献了大量高质量的技术文章,Flutter 官方文档的翻译,还组织了许多线上线下的活动。在今年 I/O 前举办的全球 Flutter Create 大赛中,来自中国广东的胡泽标凭借一个特别精致的罗盘

19、应用摘得了全球大奖。1.3系统的主要研究内容基于Flutter开发的媒体资讯App主要研究是开发跨平台的媒体资讯阅读应用,使人们不拘束任何平台系统的限制,随时随地用何种系统设备都能够用此应用来阅读媒体资讯将会降低和利润将会提高。用户交互界面、网络数据处理以及本地数据存储是一个完整的App的基本组成部分,所以Flutter媒体资讯App的主要研究内容可以分为以下几步:首先用户交互界面应该如何设计好,如何让用户有一个UI体验,一个APP必须要有良好的用户交互界面,就必须遵从一定的设计,因此本App采用的是Material Design,而在用户交互界面设计上,紧接着的是媒体资讯阅读源的爬取,这里决

20、定的数据采集源有:网易的热点新闻,知乎日报每天的推送,以及果壳科技的文章,以及可供考虑的ReadHub,接着的本地数据的存储,可以用数据库或者第三库的SharedPreference5。1.4系统开发环境与开发工具8GB的win 10 x64操作系统。 Android Studio被作为系统Android客户端的开发工具, Flutter SDK 的版本是1.15.3,dev , 同时通过HttpCannary,Fiddler来抓取网络数据,App 采用的第三库有以下这些:(1) 闲鱼的fish rudex6(2) Rxdart(3) Json序列化json_annotation(4) 事件总

21、线 event_bus(5) 网络请求的Dio(6) 图片缓存的Cached_network_image(7) liquid_pull_to_refresh(8) google_nav_bar第2章 系统需求分析2.1可行性分析2.1.1经济可行性基于Flutter媒体资讯App的设计与实现是本人的毕业设计,从整个App的设计到开发都由本人自己完成,在开发过程设计的爬取的数据都是来自于第三方,还有一些第三方的接口,是只能每天请求固定数次的,如聚合数据和极速数据等提供的API,超过固定的请求就要进行收费,但幸好的是本App暂时只作为毕业设计的演示项目,并不打算商用,且后续打算进行开源,因而经济上

22、暂时还没有太大的阻力,且很多时候爬取数据的API很多也是从官方那边爬取,没有过多进行付费API的请求2.1.2技术可行性该系统作为本人的毕业设计,而本人已修完所有在校课程,且已经利用业余时间不断的学习Flutter技术框架,更有国内开源电子书Flutter 实战7的指导,且通过Google Flutter 开设的学习项目上手演练,以算是具备一定的Flutter开发基础,主要编程语言为Dart8而对于原生平台的语言,我本身以及有过Android开发的经验,可以保证的是能够在解决Android平台的上的适应性和兼容性的问题,而于IOS来说,本人并没有IOS的开发经验也没有相应可供调试的设备,所以I

23、OS端的兼容性无法保证,确定兼容的有Android端,虽然说Flutter的桌面端已经有实验性项目,但终究还是在实验性的阶段,所以Linux,Window,Mac os等桌面端有待以后在成熟时进行兼容性适配2.1.3操作可行性本App的开发的UI是基于Material Design 设计。简洁明快,拟物9的风格,在基本元素的设计处理上,借鉴了传统的印刷设计、字体版式、网格系统、三维空间、比例、色彩、阴影,图像使用。在这些设计基础上下功夫,从而能够构建出更深层次,更富有吸引力的视觉层级、视觉意义以及视觉聚焦。精心选择色彩、图像、选择合乎比例的字体、留白,力求构建出鲜明、形象的用户界面,将使得设计

24、的GUI将会变得更加具有吸引力,以及更好的上手操作指引。整体UI设计一看就懂,不存在困惑的操作2.2 APP的总体需求Flutter媒体资讯App的设计,旨在给热点新闻,关注全球时事热点新闻,关注国际形势,社会当下的热点,以及提供精选的资讯的浏览,其中包括知乎日报,果壳科技,Readhub等深度资讯热点话题平台,这将极大的开阔的用户的视野,极大的提升的用户的文化知识。2.3 App功能的需求分析App功能模块图如图2.3。图2.1 Flutter 媒体资讯App功能模块图2.4.1 App功能分析(1) 今日要闻:爬取网易新闻官方的时事热点,社会当下的热点资讯,国际的社会形势,新闻跟网易新闻同

25、步,每时每刻以供用户选择自己的感兴趣的时事资讯阅读。(2) 精选聚合:此功能模块,爬取了国内富有深度内涵的媒体杂志号的文章,以供选择性浏览,更具趣味内涵的文章,此功能模块有三个子功能模块,分别是:1. 知乎日报部分,正如其标题所言,每日三次,每次七分钟,爬取供用户浏览的是,知乎日报每天推送的文章,主题日报包括动漫、设计、大公司、游戏、财经、电影、电子音乐、互联网安全等丰富内容,为业内人和资深爱好者推荐各领域最精彩文章,满足高质量阅读需求。2. 果壳科技,果壳网是一个泛科技主题网站,提供负责任、有智趣、贴近生活的内容,你可以在这里阅读、分享、交流、提问。果壳网致力于让科技兴趣成为人们文化生活和娱

26、乐生活的重要.部分,此处为爬取果壳网几个公众号每日推送的消息,以供用户阅读浏览3. ReadHub,其每天都推送互联网行业里发生的事情,以供读者了解互联网和科技在未来的走向,以及所处的变化,此处爬取readhub精选的科技资讯以供人民阅览(3) 一刻:一刻功能功能模块,作为用户休闲放松浏览的模块,此处的子功能如下:1. 赏图模块,赏图模块主要抓取是必应一天推送的七张精致美图,并且配上优雅的文字解说,令用户欣赏美图美景的同时,能理解其表达的内容,景色的讲解2. 一言模块,主要为用户提供一句话服务,不论在哪里,总有那么几个句子能穿透你的心。把这些句子汇聚起来,传递更多的感动。此模块就是为用户所提供

27、这样的服务(4) 收藏模块:主要是查看用户收藏的资讯。2.5 UML系统建模2.5.1用例图用例模型的基本组成部分有用例、角色(或参与者)和系统。Flutter 媒体资讯App用例图所示。图2.2 Flutter 媒体资讯App用例图2.5.2用例图规约表表2-1查看今日要闻用例规约表用例编号2-1用例名称查看今日要闻功能描述给用户提供当日热点资讯,时事要闻,以供浏览执行者用户前置条件网络正常,且接口获取数据正常后置条件热点新闻列表正常展示用户看到新闻资讯信息涉众利益无基本路径1. 用户进入App2. App发送网络请求,根据热点新闻API获取数据3. 获取成功3.1 加载热点新闻列表3.2

28、点击选择感兴趣的资讯浏览4. 获取失败4.1 下拉刷新,重新获取资讯4.2 重新加载新闻列表4.3 点击选择感兴趣的资讯浏览4.4 浏览新闻详情扩展无字段列表热点新闻:标题,描述,新闻图片业务规则无备注无表2-2查看精选聚合用例规约表用例编号2-2用例名称查看精选聚合功能描述精选聚合功能模块,提供更深度,更科学的文章资讯给用户浏览,此部分三个子功能模块,分别是:1. 知乎日报2. 果壳趣事3. Readhub执行者用户前置条件网络正常获取数据API接口正常后置条件正常展示三个子功能模块信息涉众利益无基本路径1. 用户进入App 2. 点击精选聚合模块3. 点击相应子功能模块4. 查看知乎日报4

29、.1详看 2-3 查看知乎日报用例规约表5. 查看果壳科技 5.1 详看 2-4 查看果壳科技用例规约表6. 查看Readhub资讯 6.1 详看 2-5 查看ReadHub资讯用例规约表扩展无字段列表详见子功能模块用例规约表业务规则无备注无表2-3查看知乎日报用例规约表用例编号2-3用例名称查看知乎日报功能描述提供知乎日报每天的文章推送,供用户浏览执行者用户前置条件网络正常知乎日报每日文章API正常后置条件正常加载知乎日报每日文章涉众利益无基本路径1. 用户进入App2. 点击精选模块3. 选择知乎日报模块4. 网络发送请求,根据知乎日报API获取数据5. 获取成功5.1 加载知乎日报文章列

30、表5.2 点击选择感兴趣的日报文章浏览6. 获取失败 6.1 下拉刷新,重新获取资讯 6.2 重新加载知乎日报文章列表 6.3 点击选择感兴趣的日报文章浏览扩展无字段列表知乎新闻:高清图片,小图片,文章,文章URL,文章ID,文章阅读时间 业务规则无备注无表2-4查看果壳科技用例规约表用例编号2-4用例名称查看果壳科技功能描述爬取果壳科技网,几个人气的公众号的文章,提供给用户阅读浏览,其文章内容包含来自生活的的许多个方面,极具实用性执行者用户前置条件1. 网络正常2. 果壳公众号API正常后置条件1. 正常接收数据展示2. 用户可以正常浏览涉众利益无基本路径1.用户进入App2.点击精选模块3

31、.选择果壳科技模块4.网络发送请求,根据果壳科技API获取数据5.获取成功5.1 加载果壳科技公众号文章列表5.2 点击选择感兴趣的文章浏览6.获取失败 6.1 下拉刷新,重新获取资讯 6.2 重新加载果壳科技公众号文章列表 6.3 点击选择感兴趣的文章浏览扩展无字段列表1. 公众号标题 2.推送的标题 3.推送的图片 业务规则无备注无表2-5查看ReadHub资讯用例规约表用例编号2-5用例名称查看ReadHub资讯功能描述提供用户浏览Readhub上的科技资讯,了解每天一天发生的互联网资讯执行者用户前置条件1. 网络正常2. Readhub api 可用后置条件1. 正常接收readhub

32、 资讯并展示2. 用户正常浏览到结果涉众利益基本路径1.用户进入App2.点击精选模块3.选择Readhub模块4.网络发送请求,根据Readhub API获取数据5.获取成功5.1 加载Readhub 资讯列表5.2 点击选择感兴趣的资讯浏览6.获取失败 6.1 下拉刷新,重新获取获取数据 6.2 加载Readhub 资讯列表 6.3 点击选择感兴趣的资讯浏览扩展无字段列表资讯ID,资讯标题,资讯简述业务规则无备注无表2-6查看一刻用例规约表用例编号2-6用例名称查看一刻功能描述一刻功能模块,是提供用户休闲放松时,所观赏的功能模块,其分两个子功能模块,分别是必应的赏图,一言执行者用户前置条件

33、1. 网络正常2. 必应赏图和一言API接口没有问题后置条件正常展示子功能模块涉众利益无基本路径1. 用户进入App2. 点击查看一刻模块3. 选择查看必应赏图 3.1 详见必应赏图用例4. 选择查看一言 4.1 详见查看一言用例扩展无字段列表详见子功能模块业务规则无备注表2-7必应赏图用例规约表用例编号2-7用例名称必应赏图功能描述提供用户观赏必应官网每天会更新的高质量的图片。执行者用户前置条件1. 必应推图API接口正常2. 用户手机网路正常后置条件1. App顺利根据接口拿到数据2. 用户正常浏览涉众利益无基本路径1. 用户进入App2. 选择点击查看一刻模块3. 选择必应赏图模块4.

34、点击图片观赏扩展无字段列表 图片链接,文字描述业务规则无备注无表2-8查看一言用例规约表用例编号2-8用例名称查看一言功能描述查看一言,旨在随机提供那先美好的句子或者文章散句供用户去思考执行者用户前置条件1. 一言API正常2. 手机网络正常后置条件1. App 接受并展示数据涉众利益无基本路径1.用户进入App2.选择点击查看一刻模块3.选择一言模块4.浏览一言扩展无字段列表1. 句子 2.配图业务规则无备注无表2-9 查看收藏用例规约表用例编号2-8用例名称查看收藏功能描述提供用户在浏览资讯过程中收藏的资讯执行者用户前置条件3. 一言API正常4. 手机网络正常后置条件2. App 接受并

35、展示数据涉众利益无基本路径1. 用户进入App2. 拉开侧栏,点击选择收藏选项3. 浏览收藏信息扩展无字段列表无业务规则无备注无2.6本章小结本章首先通过功能模块图展示了的功能需求,接下来对App各方面的可行性进行了分析;最后,为了更加直截了当向用户展示App的功能,Flutter 媒体资讯App给出了用例图并对各个用例用表格进行简单明了的说明。第3章 系统设计3.1 App功能设计(1) 查看今日要闻:在进入App后,主界面直接显示的模块,以列表展示当日当时的时事热闻,上拉刷新可以重新加载数据,每天用户浏览到表尾的时候,会自动请求网络,将下一页的资讯列表加载进去,今日要闻的资讯采用的是Fut

36、ure Builder 来初始化,采用异步构建的好处,能够安全的加载到的数据,以免加载空数据的异常,上拉刷新使用动画刷新库Liquid Pull To Refresh,如其标题所言“ A beautiful and custom refresh indicator ”,这个加载库,能够在加载数据时,给与用户非常舒服的过度体验(2) 查看精选聚合:用户进入App,可于底部导航栏,点击精选聚合标签,进入精选聚合资讯模块,此功能模块,顶部Appbar,设计三个扁平的标签按钮,开区三个子功能模块,分别是:1. 知乎日报,日报每天推送的数量有限,不似新闻资讯模块接受的数据这么多,因而在UI上可以设计的精

37、致一些,通篇日报展示,采用的卡片拟物风格的进行设计,使之更具美观2. 果壳科技,果壳科技相较于其他资讯模块,接受的数据容量较中等,整体UI设计偏向于一种杂志号的设计,果壳推送者名作标题,下方以文章横幅流的形式展示3. Readhub资讯,Readhub上的科技资讯居多,采取类似与今日要闻的形式展示,不过较之不同,新闻文章条,增加一些简短的描述,以便用户快速的了解信息,迅速过滤筛选(3) 查看一刻功能模块:此功能模块,供用户休闲放松时观赏的内容,主体采用的Tabview的形式,展示信息,目前确定的子功能模块有两个,其他以后可以进行版本迭代扩展,子功能有1. 必应赏图,根据必应每天推送的图片,其接

38、口推送的图片只有七张,且都为高质量的图片,搭配文字解说,UI采用卡片堆叠的形式,采用手势监测,用户只需滑动手指,就可以看下下一张图片,整体阅览采用过度推叠,上升浮现,过度体验相当舒服2. 一言,一言即跟一言API接口的随机美文妙句或者令人思考的句子,以供用户品味,整体背景颜色或采用贝塞尔曲线的水浪浮动效果,以作一个观赏舒服句子页(4) 收藏模块,用于显示存储用户浏览资讯收藏到的资讯整体UI将于今日要闻相似,不过多了分类的标识,以表名资讯的来源方3.1.1类的关系图图3.1 类的关系图3.2 App顺序图1. 查看今日要闻顺序图用户进入App查看今日要闻根据今日要闻API,请求数据接受返回的今日

39、要闻资讯数据初始化今日要闻界面 展示给用户图3.2查看今日要闻顺序图2. 查看知乎日报顺序图用户进入App;查看精选聚合页面查看知乎日报页面根据知乎日报API请求数据接受处理返回的知乎日报主题文章数据初始化知乎日报页面 展示给用户图3.3查看知乎日报顺序图3. 查看果壳科技顺序图用户进入App;查看精选聚合页面查看果壳趣事页面根据果壳趣事API,请求数据接受处理返回的果壳趣事文章数据初始化果壳趣事页面 展示给用户图3.4查看果壳趣事顺序图4. 查看Readhub资讯图用户进入App;查看精选聚合页面查看ReadHub页面App根据ReadHubAPI,请求数据接受处理返回的ReadHub资讯数

40、据初始化ReadHub页面 展示给用户图3.5 查看Readhub图5. 查看必应美图顺序图进入App;查看一刻页面查看必应美图页面根据必应图片API,请求数据接受处理返回必应美图图片数据初始化必应美图页面 展示给用户图3.6 查看必应美图顺序图6, 查看一言顺序图用户进入App;查看一刻页面查看一言页面根据一言API,请求数据接受处理返回的一言数据初始化一言页面 展示给用户图3.7 查看一言顺序图6. 查看收藏图用户进入App;查看抽屉页查看收藏展示给用户。图3.8 查看收藏顺序图3.3 App活动图用户进入App后,选择点击在底部的导航栏的三个tab,访问用户想访问的功能的模块,要闻tab

41、访问也即是用户进入App即可看到的今日要闻页。聚合tab访问的是精选聚合模块,其有三个子活动模块,分别是知乎日报,果壳科技,readhub资讯,一刻tab可供范问,休闲的文字图片区域,其有两个子功能模块,分别是必应赏图和一刻。图3.9 App用户活动图3.4 DAO类设计APP在网络请求的时候,处理服务器发送过来得数据时,必须有能够与之可以能够相转换得数据类型,把服务器得返回得数据交换格式,如XML和JSON,然后将其映射至我们对应得处理数据擦操作的Dao类,以下在处理获取网络数据时所设计使用得Dao类,因为在App爬取得资讯来自各个不同得网站,因此设计不同得Dao类1、 今日要闻API请求返

42、回如下,映射至3-1 ResultDataNew类属性: ResultDataNew类用来装载请求网易热门新闻API返回的json的数据的 转换,code指示HTTP的状态码,其中200 表示服务器已成功的处理了请求, 相对的500表示网络错误,message是对当前网络状态的描述,result里包含着返回的信息内容,也是客户端展示的数据源。表3-1 ResultDataNew类属性属性名数据类型是否为空描述codeintNot null网络状态messageStringNot null网络描述resultListNot null新闻集合 New类作为页面新闻数据的容器,今日要闻的每一个子新闻

43、的数据的容器, path表示新闻详情内容的url,image指代新闻的展示图片的链接地址,title 表示新闻的标题,passtime 指新闻在网站发布的时间。 表3-2 News类属性属性名数据类型是否为空描述pathStringNot null新闻详情地址imageStringNot null新闻图片titleStringNot null新闻标题passtimeStringNot null新闻发布时间2、 知乎日报API请求返回如下,映射至3-3 ResultZhihu类属性:ResultZhihu是作为请求知乎今日日报API返回的json数据的容器,Date是服务器处理请求返回的日期,知

44、乎日报的当日包的内容发布的日期,也是请求知乎日报每日内容的一个参数,根据日期请求每日日报的主题文章,stories表明当日文章的内容的集合。表3-3 ResultZhihu类属性属性名数据类型是否为空描述dateintNot null今日日期 storiesListNot null日报主题集合 ZhihuDay 在这里我是作为表示知乎日报里的每一个文章主题的内容,image_hue表示的是其文章的高清图片,其中返回还有的标清和超清图片,但这边是移动端,考虑了一下用户的体验,折中的攫取了image_hue,title 指代文章标题,url是文章内容详情的链接,hint本应指代标签或是提示,但返回的数据中,多为null,故没有选择作为页面展示上的内容,ga_prefix 同样在返回的数据大多为null,意义指代不明,images 是一个图片的集合,指内容的图片集,type 指文章的内容类别,id 指当前文章信息在数据库的id表3-4 ZhihuDay类属性属性名数据类型是否为空描述image_hueStringNot null高清图片ID titleStringNot null主题标题urlStringNot null主题详情UrlhintStringNot null阅读提示ga_prefixStringNot null未知image

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁