一 概念

1 Hybird App,是用现有前端(html,js,css)技术来开发的app。
特点:1 灵活(开发灵活 ,部署灵活) 2 拥有类似原生的性能体验。

2 不是h5页面,也不是在webview里面加载的。 
而是通过例如webpack打包工具生成的js bundle资源文件,放到原生本地渲染(原生需集成环境)。

二 优点

1 拥有web/h5的灵活性,支持随时热更新(增量更新); 同时拥有原生app的性能。

2 编写一次, 多端通用,跨平台,体验一致。

3 组件可以modules和compontents化,开发效率及复用率高。

4 支持扩展: 可直接调用原生组件(需要按规则封装),原生也可以反过来和混合页面交互;当然也可以调用三方modules组件模块。

三 原理

1 主要通过javascript 内核引擎(JsCore 内核),虚拟化技术解析,将js控件转成对应的原生组件 渲染。(例如:div、img 等转成原生的 View、Image 等组件)
当然weex里-----------Android 下使用 UC 提供的 v8 内核。

---每个端都基于 DOM 模型设计并实现了标准的界面渲染接口 供 JavaScript 引擎调用。
---采用了内存 Dom tree Diff 计算,优化了 view 的渲染效率和体验。

ps: weex在版本上支持降级成h5,从而当weex渲染失败的时候,使用webview加载url。

四 应用及场景

1 页面功能模块频繁变动,需要快速更新迭代(或者能快速的fix线上bug)。

2 页面展示性的内容为主(影响用户输入的及固定的,一般用原生;
分享出去的用h5页面)。

五 发展形势

一 用JavaScript 开发app应用已经是客户端(甚至前端)必备的技能

能解决:
1 开发一次,2端(甚至3端)通用。

2 ios快速发布及修复功能模块(原生不支持热更新 ;提交审核缓慢)

二 目前流行框架解决方案有:

React Native -----facebook 已开源-----https://reactnative.cn/

weex/Rax------alibaba 已开源(支持vue和react2个版本)--- https://weex.apache.org/cn/guide/

三 案例

手机百度,微信小程序(Rn改造),携程,qq空间,电商类,金融类app,支付宝,天猫,手淘,淘票票,飞猪,淘宝头条。。。

六 适用人员

1 有前端和原生经验的app开发者

2 前端开发人员(vue.js/react.js)

七 weex框架 和 React Native框架对比

一 Weex 对现有项目兼容性较好,入侵性较低:

1 weex允许项目里面部分页面使用weex;也可以整个项目都使用,而且它自带webview,tab, navigator…

2  写法更贴近前端(单位用px)。

3   原生可以封装方法和组件 ,供weex页面调用。

4   可以引用三方组件。

二 React Native 要求最好整个项目都用它改造,现有项目重构改动大。

1 他里面自带了android/ios目录 ,有项目结构,必须按照它的写法。

2 写法更贴近原生。

3 原生也可以封装方法和组件 ,供页面调用。

4 也可以引用三方组件。

八 weex简单介绍

一 Weex 是一套简单易用的跨平台开发方案

能以 web 的开发体验构建高性能、可扩展的 native 应用,遵循 W3C 标准实现了统一的 JSEngine 和 DOM API,你甚至可以使用其他框架驱动 Weex,打造三端一致的 native 应用。 目前支持vue和rax(react) 2个dsl分支。

二 涉及到的相关知识

1 前端基础html,js,css (flexbox布局)
2 ES6语法基础
3 Vue.js 基础
4 Weex 相关api
5 原生知识
1 android使用java开发,只要按java写法,外加熟悉下android的控件和组件即可。
2 weex使用vue.js开发,只要按vue.js写法(js),外加熟悉下weex的控件 和 功能module即可。

Vue.js 是一套构建用户界面的渐进式框架.
1 简单,用熟悉的html,css来编写。
2 清晰,专注于MVVM 模型的 ViewModel 层。
3 使用了虚拟化DOM,不直接操作DOM.性能较高。 4 组件化思想,复用率高。

三 demo演示

http://dotwe.org/vue/14ef9c678038b54d992fb0bc9d462f6e

九 必备组件介绍

BindingX———https://alibaba.github.io/bindingx/
阿里巴巴开源的一套基于 Weex、React Native 的富交互解决方案 「BindingX」。提供了一种称之 为 「Expression Binding」 的机制可以在 Weex、React Native 上让手势等复杂交互操作以60fps的帧率流畅执行,而不会导致卡顿,因而带来了更优秀的用户体验。

进一步介绍

https://www.jianshu.com/p/14729b28d15f

GCanvas—————https://alibaba.github.io/GCanvas/
阿里开源绘图,兼容web,weex,React Native

Weex UI组件库(飞猪提供)----------https://alibaba.github.io/weex-ui/#/
基于vue.js里面有封面的组件效果,对开发非常有帮助

网易也用weex----https://github.com/zwwill/yanxuan-weex-demo

网易严选

hybird app混合开发介绍的更多相关文章

  1. Hybird App ( 混合模式移动应用)开发初体验

    最近1,2个月一直都尝试开发一款Hybird app,遇到了很多问题,谈谈自己的体会. Hybird app (混合模式移动应用),它利用例如安卓端webview组件+HTML5内嵌的方式混合的方式开 ...

  2. Hybird App 应用开发中5个必备知识点复习

    前言 我们大前端团队内部 ?每周一练 的知识复习计划还在继续,本周主题是 <Hybird APP 混合应用专题> ,这期内容比较多,篇幅也相对较长,每个知识点内容也比较多. 之前分享的每周 ...

  3. HyBird App(混合应用)核心原理JSBridge

    目录 app分类 HyBird App(混合应用) JSBridge介绍 优势及应用场景 JsBridge的核心 1.Web端调用Native端代码 1.1 拦截URL Schema 1.2 注入ap ...

  4. Hybrid APP混合开发的一些经验和总结

    http://www.cnblogs.com/kingplus/p/5588339.html 写在前面: 由于业务需要,接触到一个Hybrid APP混合开发的项目.当时是第一次接触混合开发,有一些经 ...

  5. Hybrid APP混合开发

    写在前面: 由于业务需要,接触到一个Hybrid APP混合开发的项目.当时是第一次接触混合开发,有一些经验和总结,欢迎各位一起交流学习~ 1.混合开发概述 Hybrid App主要以JS+Nativ ...

  6. 基于H5的混合开发介绍(一)WebView

    转自: https://www.cnblogs.com/sanchang/p/9261461.html 一 WebView到底是什么    1 WebView是一种控件,它基于webkit引擎,因此具 ...

  7. AngularJS 之iOS 移动 APP 混合开发(原生+JS)

    Ionic 简介 Ionic框架是什么 Ionic 是目前最有潜力的一款 HTML5 手机应用开发框架.通过 SASS 构建应用程序,它 提供了很多 UI 组件来帮助开发者开发强大的应用. 它使用 J ...

  8. Vue+原生App混合开发手记#1

    项目的大致需求就是做一个App,里面集成各种功能供用户使用,其中涉及到很多Vue的使用方法,单独总结太麻烦,所以通过这几篇笔记来梳理一下.原型图如下: 路由配置 主界面会用到一些原生App方法,比如验 ...

  9. H5与APP混合开发相关知识点总结

    整理一: 现在有这么个需求,如下图 app端点击右上角的 加 号 ,弹出模态框 这个项目是基于vue写的,客户端需要调用H5页面里定义的js方法,但是在vue里,所有的方法都是在组件内部声明的,也只能 ...

随机推荐

  1. c# 产生随机数 程序所在路径

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  2. Nodejs 传图片的两种方式

    node上传图片第一种方式 1,首先引入模块 "connect-multiparty": "~1.2.5", 在package.json中添加 "co ...

  3. 学python之路前的一些话

    为什么学python: 这些年一直从事运维相关的工作.但做下来感觉都是些很基础的东西,无非就是对一些命令或者问题处理很熟练而已,混的都是经验.曾很羡慕会写shell脚本,会自动化安装程序的运维组组长, ...

  4. java web 怎么下载大文件(上百M)

    Java代码   ; ]; , )) != -) { , bytesRead); 13.               } 14.               toClient.write(buffer ...

  5. 20155326 第12周课堂实践总结(二)String类和Arrays类的学习

    20155326 第12周课堂实践总结(二)String类和Arrays类的学习 实践二 Arrays和String单元测试 实践题目 在IDEA中以TDD的方式对String类和Arrays类进行学 ...

  6. 第71讲:Scala界面Panel、Layout实战详解

    今天学习了王家林老师scala讲座的第71讲,scala界面编程panel实战.让我们一起来看一下. 信息来源于 DT大数据梦工厂微信公众账号:DT_Spark 关注微信账号,获取更多关于王家林老师的 ...

  7. poj 2352 stars 【树状数组】

    题目 题意:按y递增的顺序给出n颗星星的坐标(y相等则x递增),每个星星的等级等于在它左边且在它下边(包括水平和垂直方向)的星星的数量,求出等级为0到n-1的星星分别有多少个. 因为y递增的顺序给出, ...

  8. [ 9.12 ]CF每日一题系列—— 960B暴力数组

    Description: 给你两个数组,顺序一定,问你第一个数组连续的几个值等于下一个数组连续的几个值,然后寻找这个值得最大值,也就是满足就换 Solution: 用两个变量索引,判断即可 #incl ...

  9. 压力测试 mac ab

    apache ab:http://blog.chinaunix.net/uid-20382003-id-3032167.html 简单用法: ab -n 3000 -c 3000 http://www ...

  10. [php] php - json_encode 函数

    json_encode()函数, $arr= array("key"=>null); echo json_encode($arr);{"key":null ...