AirJD 焦点
AirJD

没有录音文件
00:00/00:00
加收藏

HTML5真的来了,用Native.JS开发原生应用@DCloud

发布者 hybrid
发布于 1437528033465  浏览 8209 关键词 HTML5, Hybrid混合开发, 移动开发 
分享到

第1页

HTML5,真的来了!
www.DCloud.io
今年的大会主题叫iWeb大会,可是以前一直叫HTML5峰会,我问主办方为何改名了?
主办方说,看好HTML5的人少啊,拉不到赞助啊?
我说你瞎说,HTML5多有前途啊。他们说,要不你把椅套背后的广告买了。。。
我这台就下不来了。
不过话说回来,HTML5的争议确实很大,曾经无数人看好它,但这些年一直没起来。
但是现在,有了一些变化。

第2页

HTML5,功能没有原生强;性能体验没有原生好;开发调试比原生复杂
HTML5曾被称为性工能缺失。这话好像就是大城小胖先提的。
当然性工能分别指性能、工具、能力。
我再补2个问题,HTML5没有高性能的ui框架,碎片化问题也很烦人。
与原生相比,h5这么多问题,火不起来也是正常。
当初facebook放弃HTML5改原生,也是这些原因,他拿HTML5做不出能让用户满意的产品。
但是这些问题到底有没有解,我们来一一看。
让我先从能力讲起,先解决有没有,再解决好不好。


先看性能,ios上没问题,但Android,尤其是Android低端机,有经验的人都知道,HTML5非常卡。
再看工具,目前大家用的比较多的开发工具是各种高级记事本,与原生的专业IDE相比,差距很大,开发效率、运行调试都差的很多。有人不喜欢ide,觉得重。如果你就做几个小页面也确实用不着ide,但是想做App,没有ide不行。
然后看能力,HTML5有多少语法?加上3大浏览器引擎扩展的一共是7w多语法,而原生是40多w。大量的常用能力,比如二维码扫描、语音输入、摇一摇,这些HTML5都没有。
有些产品如phonegap封装了一批语法,但数量都是百级别。与40w原生api相比是望尘莫及。
碎片化不细讲了。还有ui,大家都知道手机浏览器的默认ui控件长什么样吧,与原生控件相比,又丑又不适合触摸只用。
而使用一些ui框架,比如jqmobile,性能非常低。
但是问题,你遇到或没遇到,它就在那里,不增不减。
我们不能光看着,要有人动手解决这些问题。

第3页

HTML5
3大浏览器引擎扩展
phonegap…
40w+原生API
7w  vs  40w
不在一个重量级,
如何打的赢?
二维码 | 摇一摇 | 语音输入…
HTML5标准加上3大浏览引擎的扩展,一共是7w个api,而原生,不管是ios还是Android,每个都有40w以上api。
HTML5和原生,根本就不在一个重量级,HTML5如何打得赢。
所以HTML5的工程师,只能郁闷的看着原生工程师做的应用有二维码、摇一摇、语音输入,你只能看着你做的产品被竞争对手的原生应用超越。

业内也有一些产品基于HTML5封装了一些原生能力,但api数量也就在100个左右。
还有些产品使用hybrid方案,HTML5做一部分,原生做一部分。但这也不是HTML5工程师想要的。
你说那些人怎么只封装几百个api,要是有人把40w原生api都封装成js的api,就该多好。
可是谁闲着没事封装那么多API呢?

还得追踪手机OS的升级,ios8新增了4000个api,太麻烦。

第4页

40w原生API,变成JS对象
Native.js
DCloud不是闲着没事干。只是想告诉大家,中国也是有偏执狂的。
Native.js不是一个js框架,它类似于nodejs。
Nodejs使用js语言,封装了大量服务器api,让js可以开发服务器应用。
Native.js也一样,它封装了大量原生api,让js可以开发原生应用。
看起来js真是无处不在了。
来吧,无图无真相。
这些全部是用,js写的。
为什么最后这张图要放原生的警告框,js里有alert啊。
仔细看,标题、按钮文字,这些在js在标准js里是不可以修改的。
HTML5和原生的差距,有很多这方面的细节。
但是最后放这张图,是因为这个api比较简单,下面要以警告框为例,看看Native.js的代码是怎么写的。

第5页

Native.js
Android :
var a = plus.android.importClass("android.app.AlertDialog")
iOS :
var b = plus.ios.importClass("UIAlertView")
plus.nativeUI.alert(“使用NJS的原生弹出…”,null,“自定义标题”,“确定(或其他字符)")
那么我们来看看,Native.js的代码到底怎么写。
我们看到这里引用了原生的类名,定义了一个js变量a,a继续点,就是出原生对象的各种方法。比如settitle,就是自定义标题。

不过有人说了,这看起来要为不同平台写代码,虽然强大,但也麻烦。
别急,看这个。
我们把比较常用的跨平台的API,都直接封装好了,你只需要这么写,自然就能在不同手机上弹出这2个框。
事实上,刚才大家看到的那些能力截图,全部都是已经封装好的跨平台API。
强大的Native.js,常用的跨平台封装,这是一种有效的平衡。解决大多数问题,又不影响性能。

plus.android.impoartClass,然后写原生的类名。这样我们就创建了一个js对象,但是功能和原生一样。
Api也和原生一致,继续调用a和b的方法,就能做原本只有原生才能做的事情。
这样,几十万原生API,都到我的碗里来。

第6页

Native.js
下午1点半,工具专场1,专题演讲Native.js细节
在今天下午1点的工具专场第一场,我的同事会重点讲Native.js,想了解细节一定要去听那场演讲。

第7页

4大问题一个对策:div换成webview
再来看性能体验的问题,ios上没问题,//几乎和原生一样。所以不管怎么样,只会oc的工程师比较危险了,HTML5替代你们很容易了。
但Android,尤其是Android低端机,确实体验不好。
有个广告说4大问题一个对策,这个对策就是div换成webview。
Webview是一个原生的浏览器窗体控件,由于Native.js的存在,webview可以被js操作。
本来4个问题怎么解都想讲一下,主持人不给宽限时间。我们只说一下下拉刷新。

第8页

webview1
webview2
1. 主页加载后,在后台创建隐藏的webview
var webview2 = plus.webview.create("page2.html");
2. 列表点击后,显示隐藏的webview,并使用原生动画移动进来
webview2.show("slide-in-right",100);
时间有限,这个不讲了。

第9页

webview1
webview2
div滚动条卡、fix会让浏览器滚动条通顶,
   就用webview滚动条
2. 下拉div不流畅,就下拉webview
原来下拉刷新,是要拉一个div,这时会触发浏览器不停的渲染,很卡。
上面一个webview,下面一个webview,拉动webview向下,回弹,一切操作都不会触发浏览器里面的dom变化,弹动非常流畅。
讲的有点快,不一定能听懂,请去门外我们的展台体验真机效果。

第10页

文本编辑器和原生IDE是瑞士军刀和机关枪的区别

开发效率 | 语法引擎 | 语法库 | 转到定义 | 重构 | 调试 | UI控件
下一个问题是工具。
我们都知道,xcode、eclipse、vs,分别是ios、Android、wp的原生语言ide。
我问大家一个问题,为什么这些原生语言不用文本编辑器编程,而我们HTML工程师就在用文本编辑器?为什么?
因为HTML最开始其实不是一个编程语言,确实用不着什么ide。
但是发展到现在,7w多个语法,js越来越庞大,真开发一个达到原生水准的App,不是用以前习惯的文本编辑器能搞定的。
你可能有一把很喜欢的瑞士军刀,小巧精致,但真打仗,还得使用机关枪。
他们在很多方面都有非常大的区别。

第11页

做HTML5,需要懂HTML5的工具
最快的开发工具
最全的语法库和浏览器兼容库
震撼的语法提示
边改边看和Run in device
环保的视觉主题
丰富的插件
HBuilder
来看这个工具,HBuilder。
之前大家看过展出的一段视频,演示HBuilder飞一般的编码。
已经有几万开发者使用过HBuilder了。
HBuilder确实是最快的HTML开发工具。
而且如今它有了mac版本,可以在外面的展台体验,有一排27寸的imac。
HBuilder和普通文本编辑器最大的不同时他有HTML5的ast语法树,它真认识js、css。

第12页

- 最全语法库
- 最全的浏览器兼容库
- 1个代码块,少按20下键盘
- 1个数字键,少按10下键盘
你可能从未见过的代码助手
来看一下他的代码提示助手,语法齐全,还能在右边提示每个语法的浏览器兼容数据。
这个数据库是当前最大的浏览器兼容性数据库,有三百多万条数据。

第13页

再看这些语法提示,你在别的工具里很难看到。

第14页

边改边看
左边写代码,
保存后右边立即看效果
Run in device
PC写代码,
保存后手机立即看效果

第15页

HTML5 做个手机UI界面好难

浏览器默认控件好丑 | jquery mobile好卡 | bootstrap很大,样子不像App

第16页

mui – 最接近原生体验的UI框架
高性能(极小、极快) 
原生样式 
使用方式简单

第17页

不是托拉拽
不是敲data-
敲m,拉出所有控件
再敲b2,得到一个按钮
不是托拉拽,我不喜欢自动生成一堆代码,放在哪个div下我都不知道。
不是data-,这种方式性能太差,低端Android机跑不动。
我们的方式,性能高,开发又爽。

第18页

mui – 接近原生体验的UI框架

下午4点10分,开源专场,mui专题演讲

第19页

定价$0.00,无需任何附加条件

没有时间限制 | 没有规模限制
定价?
关于定价,我也不卖关子。上述这些产品,全部都是免费的。
掌声不够热烈啊。
免费还不行,你要怎样呢?

第20页

开 源
mui开源
框架语法库开源
HBuilder将逐步开源
Github.com/dcloudio
DCloud的成立原因,不是为了赚开发者的钱,我们很希望能够推动HTML5发展。
我们的投资人也非常支持我们的理想。

开源也是我们为这个产业做的另一个重要贡献。
目前我们已经有不少开源产品了,未来我们会把更多产品开源。大家要知道开源也不是把现在的source code直接丢到github上那么简单,我们做好准备后会完成更多的开源。

第21页

第22页

HTML5,真的来了

www.DCloud.io 
微信公众号:DCloud | 微博:@数字天堂网络
今天讲的HTML5,真的来了。不是指有了DCloud,所以HTML5真的来了。
我们虽然解决不少问题,但一个产业的爆发是要很多人一起努力的。
今天有很多HTML5产业的专家,他们都带来了不少解决HTML5问题的方案,在一些垂直领域,比如游戏,很多产品优化的也接近原生效果了。
另外就是硬件的发展,如今Android手机的配置越来越高,今年新出的千元机的性能已经可以流畅运行HTML5,很快前几年的低端机就会下市。
所以,首先,各位,机会来了!
支持文件格式:*.pdf
上传最后阶段需要进行在线转换,可能需要1~2分钟,请耐心等待。