Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Hybrid APP Introduction

eric.xiao
September 22, 2015

Hybrid APP Introduction

I'm a back-end programmer, but also I like learn some new things such as front-end programming. When I worked at JD.COM, we need to find a method to build a new module or new App in Android or Iphone smartphone. Hybrid App is a useful method to realize it.

eric.xiao

September 22, 2015
Tweet

More Decks by eric.xiao

Other Decks in Programming

Transcript

  1. 目前碰到的问题是什么? ž 弱网络或短暂无网络情况下,用户使用客 户端的问题。 ž 开发一个Native App的应用,费时,费力, 成本高,所以想要降低成本。 ž 学习一下Java语言当时的口号,一次编

    译,到处运行,所以想要跨平台,一份代 码搞定所有问题。 ž 到发版的时候,各种发版,各种平台,还 有苹果平台的审核,长达一个月,都有可 能。
  2. 目前碰到的问题是什么? ž 发了版本了,出BUG了,无法改,只好 等待下一版本。 ž 再来谈谈工程化,敏捷软件开发,想要快 速迭代。 ž Native App

    平台依赖强,升级成本高 ž JS跟CSS,依赖于后端产出的HTML ž 有的业务逻辑在前端,有的在Model层, 更多的是在View层
  3. 为实现新系统,引入NodeJS ž 前端熟悉的语言,學習成本低 ž 都是JS,可以前后端复用 ž 体质适合:事件驱动、非阻塞I/O ž 适合IO密集型业务 ž

    执行速度也不差 今天没有时间讲NodeJS, 还需要学习,并在具 体的项目中使用,产生一些使用经验以后,留 在以后分享。
  4. 我们的研发工具 ž Yeomanè Yo, Grunt, Bower ž Javascript + Html5

    + CSS3 ž LESS or SASS ž Node.js ž Java ž Redis + Memcached ž ActiveMQ or Kafka ž Mysql or MongoDB
  5. HTML5离线存储技术 ž Application Cache — 本地缓存应用所需文件 ž LocalStorage & SessionStorage

    — 键值对(key-value)存储数据 ž Web SQL — 关系数据库,通过SQL语句访问 ž IndexDB — 索引数据库
  6. Application Cache 注意事项 ž 站点离线存储的容量限制是5M ž 如果manifest文件,或者内部列举的某一个文件不能正常下载, 整个更新过程将视为失败,浏览器继续全部使用老的缓存 ž 引用manifest的html必须与manifest文件同源,在同一个域下

    ž 在manifest中使用的相对路径,相对参照物为manifest文件 ž CACHE MANIFEST字符串应在第一行,且必不可少 ž 系统会自动缓存引用清单文件的 HTML 文件 ž manifest文件中CACHE则与NETWORK,FALLBACK的位置顺 序没有关系,如果是隐式声明需要在最前面 ž FALLBACK中的资源必须和manifest文件同源 ž 当一个资源被缓存后,该浏览器直接请求这个绝对路径也会访问 缓存中的资源。 ž 站点中的其他页面即使没有设置manifest属性,请求的资源如果 在缓存中也从缓存中访问 ž 当manifest文件发生改变时,资源请求本身也会触发更新
  7. LocalStorage & SessionStorage ž HTML5中定义的WebStorage API的规范, 定义了浏览器存储资料的机制,包含 localStorage 和 SessionStorage

    ž LocalStorage可以长期存储数据,没有时 间限制,一天,一年,两年甚至更长,数 据都可以使用 ž SessionStorage只有在浏览器被关闭之 前使用,创建另一个页面时同意可以使用, 关闭浏览器之后数据就会消失 ž 最多存储5M的数据
  8. Web SQL ž Web SQL不是HTML5规范的一部分,它通 过一套API来操作浏览器中的数据库。 ž 1)打开数据库openDatabase()方法: — 此方法创建数据库对象,既可以使用已有的数据

    库,也可以创建新的数据库。 ž 2)事务transaction()方法: — 此方法可以用于控制事务处理,执行提交操作或 回滚操作。 ž 3)执行SQL命令executeSql()方法: — 此方法用于执行SQL查询。
  9. Index DB ž HTML5 的一个重要特性是本地数据持久 性,它使用户能够在线和离线访问 Web 应用程序。 ž IndexedDB

    API 取代了 Web Storage API, 后者在 HTML5 规范中已不推荐使用。 ž IndexedDB 具有多个优势,其中包括索 引、事务处理和健壮的查询功能。
  10. Q&A