原文:http://uikoo9.com/blog/detail/hpp

不错的hybrid app框架:http://www.dcloud.io/case/#group-1

HPP
hybirdApp或者hbuilderApp, 指通过html,css,js语言开发出ios和android两个版本的APP, 开发效率成倍上升,开发时间大幅缩减,开发成本同样也大大缩减。 移动互联网时代,还有多少中小公司没有自己的app,原因何在?
1.中小公司有多少?
这个都不需要引用相关数据,想想一句话就明白了, “一将功成万骨枯”,这句话同样适合创业者,普通人耳熟能详的大公司已经很多了, 可以想象下中小公司有多少,数量极多极多。 2.大部分中小公司没有自己app
迫于app开发人员的用人成本极高, 初级android,ios工资基本10k左右,中级15k左右,高级25k左右,大概这个价, 中小公司找两个初级的做不出东西,找两个中级的差不多了,但是时间成本用人成本都很高, 最终的结果是只能做出一个demo类的app,或者计划一直往后拖, 又或者根本没有能力招app开发~ HPP,让所有中小公司轻松拥有自己的APP
1.成本比较
拿开发一个app,需要6个月,android,ios两个版本, 配备andorid中级(15k)+ios中级(15k)来说,成本是30*6=180k=18w, 配备一个hpp中级(15k)来说,成本是15*3=45k=4.5w, 这里是乘以3不是乘以6,因为hpp开发速度绝对比原生开发快一倍。 这样一来, hpp开发app的成本是原生app的四分之一~ hpp开发app的成本是原生app的四分之一~ hpp开发app的成本是原生app的四分之一~ 2.招人难度
android和ios的工资这么高(相对其他工种),原因之一就是招人比较难, 而hpp开发,只要会html+css+js就可以, 想想哪个java开发,php开发,.net开发不会点html+css+js,只需要在精通点, 想想哪个前端开发,不精通html+css+js呢, 所以招人来说,完成原生app 3.流畅度和加载速度
很多人会说流畅度, 随着手机厂商的竞争,手机硬件的发展,想想现在的千元小米,魅族之流, 目前来说千元机都很流畅,以后来说是手机就很流畅。 很多人说加载速度, 诚然,中小公司自己的带宽限制等等因素,加载页面比较满, 但是想想网络发展,从2g,3g,4g以及之后的5g,以及wifi的adsl,光纤,512k,1m,2m,10m,20m, 以及现在越来越普及的云服务,百度bae,新浪sae,阿里云等等, 网速也不是问题了。 HPP详述
1.HPP由来
其实用html+css+js本人用得比较多的是dcloud(公司)推出的hbuilder(ide),使用mui(ui)+nativejs开发app, 但是总这么hbuilder,mui的叫,感觉不是很顺口,或者不是很响亮, 百度上说基于html+css+js开发app的技术叫做HybirdApp,详见:这里 所以借用HybirdApp和Hbuilder开发的App这两个概念,推出HPP的叫法, 简单,好记。 2.HPP案例
说了这么多,如果你已经心动了,不妨看看这些HPP案例, http://dcloud.io/case/#group-1 可以看出,HPP开发app本身流畅度是毫无问题,问题在于ui设计太low,一下子拉低档次, 如果有一个好的ui,外加一下开发的技巧,开发出的app还是很棒的,例如“爱学车”这个HPP。 3.HPP趋势如何
硬件趋势:手机硬件性能越来越好, 网络趋势:网速越来越快, 就业趋势:12年错过了android的你,15年还想错过HPP? 疑问解答
1.一次开发,生成android和ios两种app?
是的 2.需要熟悉哪里技术才可以从事HPP开发?
需要熟悉html,css,js,最好熟悉jquery,以及一些常用框架的上手方法(bootstrap,amazeui)。 3.具体使用哪些技术工具?
使用Hbuilder做ide进行开发打包app, 使用mui做ui层,理论上可以用其他的ui框架,例如amazeui,bootstrap,jquery mobile等, 使用nativejs做js桥调用原生方法,这个无可替换,比较重要。 4.免费吗?
Hbuilder已经开源,所以ide免费:https://github.com/dcloudio/HBuilder-opensource mui已经开源,所以ui免费:https://github.com/dcloudio/mui 总之都是开源,都是免费的,看这里:https://github.com/dcloudio 5.开发的时候用浏览器调试和看效果?
no 虽然开发语言是html+css+js,但是成果是一个app,也就是一个apk或者ipa, 你见过用浏览器调试apk或者ipa的吗? 最佳推荐是真机调试。 6.只是网页套了个webview吗?原生功能可以调用吗?
完全不是,原生功能都可以调用,原生体验:http://www.dcloud.io/runtime.html 7.mui是个啥,可以替换吗?
mui是负责你做出来app的ui效果的, 完全可以替换为其他ui框架,bootstrap,amazeui等等, dcloud做的不好的是mui太杂了,让很多人搞不清楚, mui既负责了ui框架的部分:样式,组件,效果 mui又负责了js操作的部分:dom操作,事件绑定等,完全是copy的jquery,但是做的又没有jquery好,有很多坑。 mui又负责了原生调用的一部分:mui.init,mui.plusready等, 在我看来,mui只需要做好ui的部分就行,或者干脆交给国内类似的amazeui做,节省精力,效果还更好, 然后让js操作用jquery实现,又节省好多精力,效果性能还好, 最后专注于nativejs的开发,研发更多更好的原生能力,三方插件等。 技术的意义究竟何在?
1.提高效率,降低成本
以javaee的mvc框架们为例, 从刚开始的jsp+servlet, 到后来的ssh1(spring+struts1+hibernate), 再后来的ssh2(spring+struts2+hibernate), 然后的ssm(spring+springmvc+mybatis)。 除了jsp+servlet只是在学习过程中使用,而没有在工作中使用外,其他的框架都在工作中使用过, 也见证了几个公司框架的更新路程, 但是,停下来思考下,为什么框架在不停的更新,不停的变, 也许框架怎么变,最终用户看到的东西都是一样的,从用户的角度看,框架的变更毫无意义。 那么意义是?可能有人很快就会说,“更加安全”,“开发更快”。。。 伪原因:更加安全 为什么这么说,旧的框架由于历史原因会有很公开很明显的漏洞,为了避免这个漏洞你更新到了新框架, 但是请相信,新的框架也会有漏洞在等着你, 所以“更加安全”这个理由完全是为了凑字数或者说你作为架构者想推行自己熟悉框架的借口~ 原因1:开发快 这个才是真正的原因,开发快,比较下jsp+servlet时代和后期的mvc框架时代, 不得不说,开发速度大大加快。 原因2:成本低 就公司招人的成本来说,新人总是熟悉新框架,当你想招一大波廉价的劳动力的时候, 发现你公司用的ssh1对于新人来说早已不知道是什么玩意,反而炫耀自己用的ssm,嘲笑你用的ssh1, 所以如果你想在目前的市场招到一大波的廉价劳动力,那么更新公司的框架在所难免。 原因3:自我实现 这个原因听起来比较怪,但是可以说却是根本原因, 技术世界就像中国的历史朝代一样,不停的更替, 如果一个技术新人,技术相当好,却出生(工作)在ssh1时代, 为了想证明自己的技术能力,为了让自己获得更好的报酬, 所以举起“更加安全,更加快速”的大旗,开始建立自己的朝代(ssm)。 同样,对于培训机构来说,为了招到更多的学生, 总是不停的退出新的框架教程, 最后,招来了更多的学生,培训出了更多熟悉新框架的工作新人。 技术研发者和技术推广者(培训)的自我实现才是推进技术更新换代的最根本原因, 技术接受者(新人)和技术使用者(公司)只能被迫的接受这种变化。 站在公司的角度,技术存在的意义只有: 提高工作效率:同样的时间内开发更多的东西; 降低用人成本:使用工作新人们都懂的框架,以便以更低的成本找到更多的人。 2.提高用户体验,科技方便生活
上面所说的技术意义,偏向于用户看不到的后台的技术,其意义就是降低成本, 还有一种技术是和用户实时相关的,用户看得见的,一直在使用的,可以方便生活,简化工作流程的。 例如html5,css3,让用户看到的网页越来越好看越来越有意思, 例如android,将用户拉进移动互联网时代,充话费,买外卖等等动动手指就做到了,大大方便人们的生活。 总结:
技术就是降低成本,方便生活,HPP是一门好技术~ HPP例子——滴石
官网:http://uikoo9.com/dishi 源码:https://github.com/uikoo9/dishi 教程:http://uikoo9.com/book/detail/3 HPP例子——识岁
官网:http://uikoo9.com/shisui 源码:https://github.com/uikoo9/shisui 教程:http://uikoo9.com/book/detail/5 http://uikoo9.com/
更多精彩内容

【转载】Hybrid APP了解的更多相关文章

  1. 【转载】用Ionic开发hybrid APP

    使用phonegap开发APP的优劣在此不必细说,快速,简单,跨平台,以及随着iOS,Android本身对webview优化所带来的不错的性能,便是其独有的优势.而且私以为在目前激烈而又变化快速的移动 ...

  2. Hybrid App经验解读 一

    郑昀编纂 关键词:Hybrid,Zepto,Fastclick,Backbone,sui,SPA,pushState,跨域,CORS click 事件还是 tap 事件? Zepto 的 show/h ...

  3. Hybrid App移动应用开发初探

    一.移动App类型及其优缺点 1.1 Native App Native App(原生App)是用原生语言(Object-C/Java/C#/....)开发,用户需要下载安装的手机应用. 优点是 可以 ...

  4. 移动开发 Native APP、Hybrid APP和Web APP介绍

    高速区分定义: Native App 以基于智能手机本地操作系统如IOS.Android.WP并使用原生程式(SDK)编写执行的须要用户安装使用的第三方应用程序; Web APP 以HTML+JS+C ...

  5. 【微信小程序项目实践总结】30分钟从陌生到熟悉 web app 、native app、hybrid app比较 30分钟ES6从陌生到熟悉 【原创】浅谈内存泄露 HTML5 五子棋 - JS/Canvas 游戏 meta 详解,html5 meta 标签日常设置 C#中回滚TransactionScope的使用方法和原理

    [微信小程序项目实践总结]30分钟从陌生到熟悉 前言 我们之前对小程序做了基本学习: 1. 微信小程序开发07-列表页面怎么做 2. 微信小程序开发06-一个业务页面的完成 3. 微信小程序开发05- ...

  6. Hybrid App中原生页面 VS H5页面(分享)

    本文部分转自  http://www.jianshu.com/p/00ff5664e000 现有3类主流APP,分别为:Web App.Hybrid App(混合模式移动应用,Hybrid有“混合的” ...

  7. Ionic开发Hybrid App问题总结

    http://ionichina.com/topic/5641b891b903cba630e25f10 http://www.cnblogs.com/parry/p/issues_about_buil ...

  8. Native App、Web App 还是Hybrid App?(转)

    一.什么是Native App? Native App即原生应用,即我们一般所称的客户端,是针对不同手机系统单独开发的本地应用,如需使用需要先下载到手机并安装,下载Native App的最常见方法是访 ...

  9. Hybrid App 应用开发中 9 个必备知识点复习(WebView / 调试 等)

    前言 我们大前端团队内部 ?每周一练 的知识复习计划继续加油,本篇文章是 <Hybrid APP 混合应用专题> 主题的第二期和第三期的合集. 这一期共整理了 10 个问题,和相应的参考答 ...

随机推荐

  1. ThreadLocal和ThreadLocalMap源码分析

    目录 ThreadLocal和ThreadLocalMap源码分析 背景分析 定义 例子 源码分析 ThreadLocalMap源码分析 ThreadLocal源码分析 执行流程总结 源码分析总结 T ...

  2. 标准c库函数与Linux下系统函数库 区别 (即带不带缓冲区的学习)

    我们都知道,C语言在UNIX/Linux系统下有一套系统调用(系统函数),比如文件操作open().close().write().read()等,而标准C语言的库函数中也有一套对文件的操作函数fop ...

  3. C# NPOCO 轻量级ORM框架(入门)

    目前公司使用这个框架,搜不到很详细的中文资料. 只有英文wiki,所以翻译学习一下. 因为博主也是低水平的,可能会有一些理解不到位的地方. 可能会有错误的地方,如果有园友发现可以指出. wiki地址: ...

  4. Loj #6560 小奇取石子

    题面 分类讨论一波,n小的暴力2^n,n大的背包. #include<bits/stdc++.h> #define ll long long using namespace std; co ...

  5. Codeforces Round #288 (Div. 2) E. Arthur and Brackets 贪心

    E. Arthur and Brackets time limit per test 2 seconds memory limit per test 128 megabytes input stand ...

  6. 解决CIFilter滤镜后图片大小和方向发生变化

    调用contextWithOptions:和createCGImage: fromRect:方法创建CIContext.与以往不同的地方是CIImage没有frame与bounds属性:只有exten ...

  7. ROW_NUMBER() OVER函数运用

    语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) PARTITION BY:相当于数据库中的group by 说明:row_numbe ...

  8. MultCloud – 支持数据互传的网盘管理

    MultCloud https://www.multcloud.com/ 是一款在线服务,可以在一个地方管理众多网盘,支持国产百度盘, 最具有特色的地方是你可以直接在 MultCloud 里操作将 D ...

  9. Run native executable in Android App

    Run native executable in Android App Demo † Here's demo application called "Run Native Exe" ...

  10. HttpPost+json请求---服务器中文乱码及其他

    好凌乱的题目,只是一些功能点的总结咯. 首先构造一个json对象用于存放数据,如果光加上header为utf-8就能解决中文就大错特错了... json对象可以put变量,也可以put对象.取的时候o ...