在现代繁忙的都市生活中,把读书作为生活的常态,是生命中最美好的习惯。在知识经济时代,书籍是人类已有经验和知识的载体。在开放式创新模式下,出现了很多以计算机为媒介,从外部出发,通过与世界的交互来实现个人认识整合、共享和创新的网络体系。然而,在这个“大融合、大变革、大突破”的时代,空气中尽是“信息爆炸”后的云雾缭绕。各种文化、各种风格、各种书籍层出不穷。当读者疲于图书种类繁多,无从选择的时候,当读者灵魂孤独,有感触,但无处倾诉,没有思想的交流与共鸣的时候,国内外一些书评网站应运而生,为广大读者提供一个思想分享交流的平台,例如国内的豆瓣读书,国外的亚马逊(美国)、goodreads等。
随着移动应用的发展,传统的基于PC端的书评应用开始转移到移动终端上,其中智能手机成为人们读书、评书的一个重要终端。通过手机终端,可以探索自己感兴趣的书,扩展自己的阅读视野,碰撞出思想的火花。借助手机上的读书交流App,用户可以查找和收藏自己喜欢的图书,可以和其他人交流读书心得。当然,服务和数据的来源仍是服务器端,但是客服端的改变也带来了很多新的特点,比如阅读的习惯、终端的智能性等。可以说,实现一个基于移动终端的读书交流软件符合新时代生活发展的需要,会受到大家的广泛喜爱。
读书交流软件主要是给用户提供一个交流的平台,以及书籍的简要信息等, 书籍信息来自国内比较成熟的书籍平台豆瓣. 本软件研究的主要内容是利用当前比较成熟的技术和方案, 以及现有公开的数据,来开发一个移动端APP产品, 其中包含当前主流的一些设计和开发框架,比较成熟的第三方开发服务等.
Android系统是谷歌公司在2008年推出的面向移动设备的一款基于Linux的开源操作系统.
系统主要分为服务器端和安卓移动端,移动端主要是和用户进行交互, 包括一系列功能操作,比如登录,查看图书信息,收藏图书,评论图书等, 服务器端则主要是完成数据爬虫的功能,给移动端提供数据支持.
为方便用户操作,移动端APP采用第三方(微博/QQ)登录, 服务器端只保存第三方平台的授权信息, 这样用户只需简单授权即可登录,降低用户使用成本, 且不存在安全隐私泄露等风险。
移动端通过扫描书籍ISBN条形码或者输入关键字来查找相应的书籍, 查看相应的书籍信息
榜单分为新书榜、热门榜等,不定时更新数据, 用户可以直观的看到相应榜单的数据.
用户登录之后可以收藏和取消收藏书籍, 收藏过的书籍在个人首页查看
可以对书籍进行评论,也可以回复别人的评论, 可以对自己的评论删除.评论可以在个人首页查看 他人回复最近的评论,自己可以收到推送消息.
可以查看热门标签,并可以查看这些标签下的书籍
可以在地图上看到附近其他用户的位置和动态.
[ER图]
- Android Studio 2.0正式版
- JDK1.8
Android 4.0.3以上
由于传统数据库的多样性和复杂性,还有额外的管理成本 和代码维护成本,决定采用当今比较成熟的云数据库方案, 综合考虑了几个产品服务,决定采用第三方存储服务LeanCloud, 与其他服务相比,该服务更加方便, 弱化数据类型,提供多平台SDK.使开发者无需关注后台构架, 从而提高了开发效率.
第三方登录包含QQ和微博登录,第三方分享包含QQ/微博和微信三大主流平台, 首先,需要再这几个平台的开发者服务注册提交应用,申请服务KEY, 然后集成到APP中. 为了简化流程,增加开发效率,使用了比较主流的SharedSDK第三方服务, 该服务是为社交登陆分享提供统一的接口,内部封装了第三方平台的功能, 而开发者不必每个平台单独处理,简化了流程.
推送服务也使用LeanCloud服务,因为该服务的推送和数据存储服务可以无缝连接, 集成起来比较方便.
移动端的地图和定位服务采用国内比较成熟的高德地图, 移动端需要记录用户的经纬度和所在城市区域. 主要流程是,需要在高德地图开发者平台申请KEY, 然后集成高德地图SDK,在需要的地方调用处理, 在本软件中,主要是登录成功之后需要定位,和附近的人需要地图服务.
书籍简要信息来自第三方豆瓣, 书籍简要信息包括书名,作者,出版时间,摘要,作者信息,目录,页数,出版社, 装帧,ISBN码,书籍标签.
[模块图]
数据存储服务采用的第三方服务LeanCloud, 根据其开发文档和说明,主要的数据类型有Number,String,...
由于书籍信息来自第三方豆瓣,爬虫模块分为3个小模块:爬取书籍模块, 爬取新书模块,和搜索书籍模块. 爬虫的任务是爬取某个页面,通过解析返回的HTML数据,获得想要的信息. 解析的过程采用jQuery选择器和正则表达式配合使用, 首先通过jQuery解析DOM,逐个获得目标数据的HTML标签, 再通过jQuery获取标签内容,最后通过正则表达式做过滤处理.
该模块需要输入书籍ID的参数,通过书籍ID去爬取豆瓣相应页面. 主要工作流程是,当收到爬虫某本书的请求时, 通过其传入的书籍ID参数,调用爬虫程序,爬取豆瓣指定页面的信息, 解析相应的信息保存到数据库中,最后将数据或错误信息返回给调用源.
该模块的主要功能是更新新书榜,数据来源于豆瓣新书榜. 主要工作流程是,每天定时爬取豆瓣新书书单页面, 解析页面,通过ID判断是否有新书, 如果有则调用爬取书籍模块.
该模块需要输入查询参数,该参数包括ISBN码和关键字两种, 根据参数返回搜索的结果. 主要工作流程是,
- 参数是ISBN码时,先在已有数据表中查找,如果找到直接返回给调用源, 否则,调用根据ISBN号爬取豆瓣搜索页面, 解析页面,通过ID调用爬取书籍模块,然后返回给调用源.
- 参数是关键字时,先在缓存表中查找该搜索参数有没有对应的记录, 如果有直接返回给调用源,否则根据关键字爬取豆瓣搜索页面, 解析页面,通过ID调用爬取书籍模块,然后返回给调用源. 同时把该搜索参数和结果保存到缓存表中,以便下次相同的请求.
软件采用第三方授权的方式来登录APP,包括QQ和微博两大主流平台, 首先需要在其开放平台申请KEY,申请通过之后,集成到APP中. 主要流程是,当用户点击登录之后,跳转到相应平台的授权页面, 然后判断授权结果,若成功则进入主界面,否则提示授权失败消息. 授权成功之后,会根据授权信息,判断是否已经授权过,如果是, 不处理,否则,产生新用户,生成唯一ID. 第三方登录主要流程如下:
用户分享操作是将看到的书籍信息分享给好友等,目前支持分享到 QQ好友,QQ空间,微博,微信好友,微信收藏,微信朋友圈, 默认分享内容是当前书籍信息和书籍图片.
APP主界面,点击顶部搜索图标进入搜索模块,可以输入关键字, 或者调用摄像头扫描书籍ISBN条形码,然后调用服务器端爬虫搜索书籍模块, 再展示到界面上. 扫描条形码功能,采用谷歌提供的第三方开源包Zxing,
APP侧面栏包含榜单和标签界面的入口,默认是榜单界面, 榜单分为热门榜,新书榜等,标签界面是热门标签, 点击即可查看相应的书籍.
书籍详情页面包含书籍信息显示,收藏书籍,评论书籍.
进入该模块,会定位到地图上,并选取最近的10个用户 显示到地图上,点击对应用户的标记即可打开该用户主页, 查看对方的动态.
用户主页分为最近的收藏和最近的评论,倒序显示