毕设开题报告-基于Ionic+Cordova开发框架的HTML5移动WEB博客app

1 研究意义、国内外研究现状、水平和发展趋势

1.1 研究意义

自2007年第一代iphone发布以来,智能手机在世界范围内快速发展,逐渐占领了近乎90%的手机市场。而智能手机的“智能”则体现在其开放的应用平台与层出不穷的优秀移动应用上。在如此庞大的用户群体下,移动应用的开发与革新也呈现出指数形态的增长曲线。而在几年之前,移动操作系统的主要份额主要掌握在iOS、Android、Windows等几大操作系统提供商手中,而开发应用也只能按照平台选择不同的语言与开发方式,平台之间不互通。要制作一款能用在各个平台上的app,厂方要承担巨大的经济压力,开发人员也要承受学习压力。之后,Web技术飞速发展,各种形态的Web app开始涌现,当人们把Web app移植到手机中时,一切都变的不一样了。利用Web技术,在同样的开发难度下,可以做到一次学习、全端运行。所以,基于Web的全栈式移动app开发将是未来的一大趋势。

本课题利用Web技术,开发一个运行在全端的移动app,使之可以完成像原生应用一般的交互功能,力争在用户体验上更进一步。

1.2 国内外研究现状、水平和发展趋势

以Web开发语言为基础的移动应用分为三种:

  1. 纯Web app,又叫离线web app,利用html5的web sql、localstorage等浏览器端存储,以及使用javascript构建交互,依托于移动端的浏览器。代表的产品如FT中文网等。
  2. 使用javascript语言编写,但实际上是框架调用原生UI,写出来的界面并没有web的东西,而是实实在在的原生。此类框架的代表便是Facebook的React Native。
  3. Hybrid app,即混合app,也是这里要重点讨论的。此类app的开发框架调用了原生应用做了其外壳,如WebView控件或框架自带的web控件,交互部分是利用html+css+js的方式开发的web app。此类框架有之前比较火的PhoneGap(现更名为Cordova),国产的H5builder,和使用Angular框架的ionic等。

目前,以Web技术作为开发技术栈的技术还处于萌芽阶段,但以npm为首的技术社区相当活跃,框架和个人开源项目层出不穷,并且类似Facebook、google等巨头也参与其中,发展极为迅速,大有Javascript一统全栈的架势。并且,目前资金不算充裕的创业型公司也越来越多地采用了Web app的开发方式来节省资源,更加说明了此类技术的价值所在。

但是,有优点也有缺点。目前的Web app缺点主要集中在如下几点:

  1. 采用Html+css+javascript方式开发的app,由于硬件水平的不过关,在大部分手机上的交互体验并不如纯原生开发的优秀。
  2. 如果采用react native的原生开发方式,除了要学习Javascript(ES6语法)以外,还需要对原生语言有相当的了解,有时甚至还必须利用oc或java写原生组件然后调用,学习曲线极大。
  3. 调用某些第三方库,如动画库、引擎等较为困难。

但是,我们非常高兴地看到活跃的技术社区及氛围给我们带来了什么——在个人与巨头的共同努力下,使用node中间件、css硬件优化、css flex等技术,用户交互体验也越来越好,在较新的ios设备下(如我的ipad mini retina),Hybrid app的用户体验已经很难与原生app分辨。所以,我相信这项技术会迅速普及到每个开发人员的知识库里。

2 本课题的基本内容和要求,关键问题及其解决的方法和措施

2.1 基本内容

对于本课题,考虑到实际应用及需求,我准备制作一款移动博客App。首先,博客系统作为一种最为经典的应用系统有它自身的经典之处,便于演示。并且,博客系统的可延展性特别强,可以添加丰富的应用——当然,开发难度也会直线上升。

作为Hybrid app,我选择国外的Ionic+Cordova开发框架,最大限度保证交互的流畅性。

要开发的博客系统初步分为如下模块:用户系统、文章系统、标签与推荐系统、搜索系统以及实时通讯系统。

  1. 用户系统
    • 用户管理:包括用户的注册和登录、用户自身信息的修改等。
    • 操作管理:用户可以查看自己的操作,包括发表文章、评论等。
  2. 文章系统
    • 文章的发布、修改、删除等
  3. 标签与推荐系统
    • 为文章添加标签
    • 按照不同用户的喜好推荐不同标签的文章
  4. 搜索系统
    • 按照关键字搜索
    • 按照标签搜索
  5. 实时通讯系统(难度过大,选择性放弃)
    • 实时聊天

2.2 基本要求

  1. 按照基本内容所说,制作如下界面:
    • 首页
    • 登录注册页面
    • 个人页面
    • 搜索页面
    • 发布页面
    • 修改页面
    • 聊天页面
  2. 内容方面,除公告外,其余均由用户自己提供。
  3. 安全性方面,密码加密,确保用户个人信息的安全。
  4. 其他:界面美观,交互流畅,逻辑清晰。

2.3 关键问题及其解决的方法和措施

  1. 安全性问题:密码使用md5加密,api使用cripto加密,确保万无一失。
  2. 服务器端及逻辑采用node.js,使用nginx服务器作为反向代理,保证请求速度。

3 本课题拟采用的研究手段(途径)、可行性分析和进度安排

3.1 研究手段

  • 本课题使用螺旋模型开发。
  • 开发工具:windows7+Atom/OS X+Sublime/Gulp+less+npm
  • 开发框架:Ionic(Angular)+cordova
  • 开发语言:Html+CSS+Javascript
  • 数据库:Mongodb

开发过程采用螺旋模型,不断进行迭代,遭遇难度过大的需求时力求减小损失。开发的具体步骤如下:

  1. 需求分析,并制定下一阶段开发计划。
  2. 风险分析,考虑和识别影响开发进度的因素。
  3. 编码阶段。
  4. 测试及评估。
  5. 重复1-4步骤。

3.2 可行性分析

  1. 技术可行性:虽然此项技术仍处于萌芽阶段,但已有大量的开发框架涌现,除小部分技术目前很难实现外,大部分都可以被实现。
  2. 经济可行性:系统投入使用后,仅需维护代码,维护成本较低,经济上可行。
  3. 操作可行性:系统尽可能考虑到大部分用户的使用习惯,尽量做到傻瓜式操作。

3.3 进度安排

2015 11 - 2016 1 系统分析、开题阶段
2016 1 - 2016 5 系统设计实现
2016 5 - 2016 5 测试系统,完善系统
2016 5 - 2016 6 提交作品、答辩



评论

暂无评论

在这里输入