SlideShare a Scribd company logo
Eric.Xiao
ericssonxiao@gmail.com
http://www.linkedin.com/in/ericssonxiao
Hybrid App
目前碰到的问题是什么?
ž  弱网络或短暂无网络情况下,用户使用客
户端的问题。
ž  开发一个Native App的应用,费时,费力,
成本高,所以想要降低成本。
ž  学习一下Java语言当时的口号,一次编
译,到处运行,所以想要跨平台,一份代
码搞定所有问题。
ž  到发版的时候,各种发版,各种平台,还
有苹果平台的审核,长达一个月,都有可
能。
目前碰到的问题是什么?
ž  发了版本了,出BUG了,无法改,只好
等待下一版本。
ž  再来谈谈工程化,敏捷软件开发,想要快
速迭代。
ž  Native App 平台依赖强,升级成本高
ž  JS跟CSS,依赖于后端产出的HTML
ž  有的业务逻辑在前端,有的在Model层,
更多的是在View层
比较一下吧!
Hybrid app简要介绍
再来一个趋势图
我们的愿景是:
ž  App可以随时发版,解决各种线上问题
ž  App可以离线使用,不依赖平台,减少用
户升级版本时,造成的用户流失。
ž  App开发快,可迭代,可以并行开发,前
后台分离,职责清晰。
ž  App可以唤起手机的各种功能
ž  App可以插件式的升级各种功能
ž  App便于测试,可以做UI自动化测试,及
其他各种自动化测试。
我们的选择是:
原来的系统
新系统设计
为实现新系统,引入NodeJS
ž  前端熟悉的语言,學習成本低
ž  都是JS,可以前后端复用
ž  体质适合:事件驱动、非阻塞I/O
ž  适合IO密集型业务
ž  执行速度也不差
前后端职责划分:
淘宝使用这样的架构,压测性能
对比
回归正题
ž  先讨论一下Hybrid App 内嵌web部分的
开发
我们的研发工具
ž  Yeomanè Yo, Grunt, Bower
ž  Javascript + Html5 + CSS3
ž  LESS or SASS
ž  Node.js
ž  Java
ž  Redis + Memcached
ž  ActiveMQ or Kafka
ž  Mysql or MongoDB
Yeoman介绍
ž  Yeoman是一个工具的集合,包含三个工
具:Yo, Grunt, Bower.
Yeoman介绍
Yeoman 安装
安装Yeoman的命令:
创建一个新的目录:
运行Yo命令,创建AngularJS项目:
Yo 创建AngularJS项目
Yo 创建AngularJS项目
Hybrid app简要介绍
创建成功
Yo命令
Bower命令
Grunt 命令
HTML5离线存储技术
ž  Application Cache
—  本地缓存应用所需文件
ž  LocalStorage & SessionStorage
—  键值对(key-value)存储数据
ž  Web SQL
—  关系数据库,通过SQL语句访问
ž  IndexDB
—  索引数据库
Application Cache
ž  HTML5支持应用资源的离线存储,每一
个WEB应用可以将网站的静态资源,图
片,js,css等缓存到本地的浏览器中。
ž  通过使用缓存清单(cache manifest)做
控制。
ž  减轻服务器的负载
ž  解决在弱网络或短暂无网络环境下,用户
使用的问题,节省带宽,优化用户体验。
Application Cache浏览器支持情况:
Application Cache 注意事项
ž  站点离线存储的容量限制是5M
ž  如果manifest文件,或者内部列举的某一个文件不能正常下载,
整个更新过程将视为失败,浏览器继续全部使用老的缓存
ž  引用manifest的html必须与manifest文件同源,在同一个域下
ž  在manifest中使用的相对路径,相对参照物为manifest文件
ž  CACHE MANIFEST字符串应在第一行,且必不可少
ž  系统会自动缓存引用清单文件的 HTML 文件
ž  manifest文件中CACHE则与NETWORK,FALLBACK的位置顺序
没有关系,如果是隐式声明需要在最前面
ž  FALLBACK中的资源必须和manifest文件同源
ž  当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问
缓存中的资源。
ž  站点中的其他页面即使没有设置manifest属性,请求的资源如果
在缓存中也从缓存中访问
ž  当manifest文件发生改变时,资源请求本身也会触发更新
Web服务器要添加的配置:
Manifest 文件
ž  Manifest文件有变化才更新
ž  一次必须更新Manifest中的所有文件
ž  下次生效
Application Cache更新机制
LocalStorage & SessionStorage
LocalStorage & SessionStorage
ž  HTML5中定义的WebStorage API的规范,
定义了浏览器存储资料的机制,包含
localStorage 和 SessionStorage
ž  LocalStorage可以长期存储数据,没有时
间限制,一天,一年,两年甚至更长,数
据都可以使用
ž  SessionStorage只有在浏览器被关闭之
前使用,创建另一个页面时同意可以使用,
关闭浏览器之后数据就会消失
ž  最多存储5M的数据
LocalStorage & SessionStorage
浏览器支持情况:
LocalStorage & SessionStorage
浏览器支持情况:
Cookie, LocalStorage,
SessionStorage区别
LocalStorage使用
Window.localStorage.setItem(key,value);//存储
数据
Window.localStorage.getItem(key);//读取数据
Window.localStorage.removeItem(key);//删除数
据项
Window.localStorage.clear();//删除所有数据
SessionStorage使用
Window.sessionStorage.setItem(key,value);//
存储数据
Window.sessionStorage.getItem(key);//读取数
据
Window.sessionStorage.removeItem(key);//删
除数据项
Window.sessionStorage.clear();//删除所有数
据
为支持多个浏览器,建议使用
Store.js
https://github.com/marcuswestin/store.js.git
Web SQL
ž  Web SQL不是HTML5规范的一部分,它通
过一套API来操作浏览器中的数据库。
ž  1)打开数据库openDatabase()方法:
—  此方法创建数据库对象,既可以使用已有的数据
库,也可以创建新的数据库。
ž  2)事务transaction()方法:
—  此方法可以用于控制事务处理,执行提交操作或
回滚操作。
ž  3)执行SQL命令executeSql()方法:
—  此方法用于执行SQL查询。
Index DB
ž  HTML5 的一个重要特性是本地数据持久
性,它使用户能够在线和离线访问 Web
应用程序。
ž  IndexedDB API 取代了 Web Storage
API,后者在 HTML5 规范中已不推荐使
用。
ž  IndexedDB 具有多个优势,其中包括索
引、事务处理和健壮的查询功能。
Web SQL浏览器支持情况:
IndexDB 浏览器支持情况:
Web SQL
IndexDB
Q&A
Contact Me

More Related Content

PPTX
[VideOhya] Titanium開發經驗分享_1020
PPT
Phone gap開發課程
PPT
编写跨平台的手机软件
PDF
Creating an Open Source Project: 0-100k Users - China Mobile Summit 2015 - CN
PDF
Component Unit Test
PPTX
HTML5在QQ邮箱移动Web应用的实践
PPTX
20150717 從網頁開發到android app行動應用開發 發佈版
PDF
HTML5 生态系统和应用架构模型
[VideOhya] Titanium開發經驗分享_1020
Phone gap開發課程
编写跨平台的手机软件
Creating an Open Source Project: 0-100k Users - China Mobile Summit 2015 - CN
Component Unit Test
HTML5在QQ邮箱移动Web应用的实践
20150717 從網頁開發到android app行動應用開發 發佈版
HTML5 生态系统和应用架构模型

What's hot (7)

PDF
和.Net开发比较的白皮书
PPTX
基于Symfony框架下的快速企业级应用开发
PPT
從 Java programmer 的觀點看 ruby
PPTX
HPX 94.5 產品經理讀書會「使用者故事對照」導讀 20170710
PDF
105-2 iOS程式設計(七)
PPT
陈子舜-Html5 based web app
PDF
軟體品質與持續整合
和.Net开发比较的白皮书
基于Symfony框架下的快速企业级应用开发
從 Java programmer 的觀點看 ruby
HPX 94.5 產品經理讀書會「使用者故事對照」導讀 20170710
105-2 iOS程式設計(七)
陈子舜-Html5 based web app
軟體品質與持續整合
Ad

Similar to Hybrid app简要介绍 (20)

PPTX
行動技術開發概論
PPT
第一次 Mobile App 就上手
PDF
React-Native share
PPTX
行動與雲端科技在圖書館的應用
PDF
App Developer Team Learning Map
PDF
Appcan移动应用开发平台介绍120409
PDF
110929 kn-手机软件测试
PDF
使用最新 Edge 瀏覽器來進行開發​
PDF
About web app development. Intro to basic web app development .pdf
PPTX
Appcan介绍自己的应用开发平台
PPT
[DCTPE2010] Drupal 遇上行動網路服務
PDF
20141212 html5 及微軟跨平台佈局 long
PDF
PhoneGap Guide
PPTX
GOSIM 2024 - uni-app x: The next generation, pure native cross-platform frame...
PDF
JSDC 2015 React-Native 實戰
PPTX
Study4 love.2016.2.20.ionic
PDF
鼎鈞數位行銷App營運實務全攻略
PDF
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
PPT
移动互联网时代的Mobile app设计和开发
PPTX
React Native on Android
行動技術開發概論
第一次 Mobile App 就上手
React-Native share
行動與雲端科技在圖書館的應用
App Developer Team Learning Map
Appcan移动应用开发平台介绍120409
110929 kn-手机软件测试
使用最新 Edge 瀏覽器來進行開發​
About web app development. Intro to basic web app development .pdf
Appcan介绍自己的应用开发平台
[DCTPE2010] Drupal 遇上行動網路服務
20141212 html5 及微軟跨平台佈局 long
PhoneGap Guide
GOSIM 2024 - uni-app x: The next generation, pure native cross-platform frame...
JSDC 2015 React-Native 實戰
Study4 love.2016.2.20.ionic
鼎鈞數位行銷App營運實務全攻略
2011/08/20跨平台行動應用程式使用者介面開發—以titanium mobile為例
移动互联网时代的Mobile app设计和开发
React Native on Android
Ad

Hybrid app简要介绍