HTML 5的Mobile Web App开发之路

本期特邀资深Web前端技术和HTML5技术专家、畅销书作者唐俊开老师,针对HTML5的Mobile Web App开发问题给予解答,欢迎网友积极提问,与专家一起讨论!
查看本期门诊精彩实录:http://doctor.51cto.com/develop-268.html
参与最新技术门诊: 一起步入Android应用开发的神奇世界
精选本期网友提问与专家解答,以供网友学习参考。

Q:
请 问唐老师,在论坛也看了不少关于html5会取代native app的讨论,想知道您是怎么看待的?个人感觉,这两个之间没有什么必然的利益上的冲突吧,没有说到了一个存在,另一个就灭亡的地步,也没有看出 html5的优势比native app大多少。我觉得更有可能的就是两个互相竞争,互相学习优势,共生共存,或者将来的某一时刻,两者都被一个新技术取代,不知道您怎么看的?
A:
我个人认为,Native和HTML5都各自有其优点,同时各自的优点又能很好地解决另一个的缺点。
所以,我觉得未来HTML5和Native会共存发展。
Firefox OS的所有应用都是基于WebApp,但它是否真的能够替代原生应用,我们就来期待这款产品的出现,并由用户来检验吧。
实际上,HTML5不只是在移动领域有所应用,它在桌面应用,游戏等都有所涉及。
Q:
请 问唐老师:新浪微博上有一个类似QQ界面的网页版聊天工具,是html5+js实现的吗?这种网页聊天工具的原理应该应用ajax吧?如果同时有很多人利 用此聊天工具是否会给server带来极大的性能压力?虽然可以应用websocket,但也只是简化了通信头的协议而已,好友间的通话路径仍 是:user1<---->server<----->user2。html5+js(或外加原生壳方式)能不能做到原生app 实现的直接通信:user1<----->user2 ?   或者有没用更好的方案? 谢谢,期待您的解答。
A:
新浪微博上的实时私聊工具,只能算说是基于JS实现的。由于要兼容低版本浏览器,估计在低版本浏览器上会用一些旧的实时通讯方案。
我个人认为他们还是使用U to S to U的方式,至于U to U,目前还没有真正的方案,不过使用NodeJS是可以实现点对点的通讯的。建议你了解一下NodeJS
Q:
不 好意思,再问一个问题,请问唐老师,您觉得phoneGap+html5+javascript+css在移动平台方面会有前景吗?它比起java写的 android应用程序优势在哪里,劣势在哪里?java写的android应用程序会渐渐冷门吗?希望您百忙之中能抽空回答一下。
A:
phoneGap+html5+javascript+css 一般情况下是用在跨平台的功能开发上使用的。
如果说,对原生语言依赖不大的情况下,可以使用上述技术体系做些应用。但是,phonegap目前还在发展当中,还有很多不完善的地方。在编写Phonegap应用程序时,性能上肯定比不上android原生的。
所以,一般不建议整个App都是使用PhoneGap,在某些场景,如帮助页面、或者调用通讯录等一些小功能上可以尝试考虑使用PhoneGap。
Android由于其开放型,未来5年内都依然是热门语言之一。有Java基础的,自学相对容易。
Q:
现在的移动应用都是C/S模式,即使是使用HTML5,jquery mobile等技术,也是通过uiwebView等框架嵌入到客户端中。请问,1.如果未来也会像如今PC机浏览器浏览网页形式应用系统,软件,还需要多长时间普及?
2.html5,javascript与ios或android之间点数据传递,控制关系能否完全兼容?
3.应用HTML5做成ipa或apk与不使用html5还是应用传统框架优势在哪里?想OC的话,如果html5作为主流移动开发应技术的话,OC将会怎么发展?
A:
1.如果未来也会像如今PC机浏览器浏览网页形式应用系统,软件,还需要多长时间普及?
对 于这个问题,确实很难说。我们可以这样理解,首先目前移动端Web浏览器在性能上仍然需要提升,至于什么时候能够达到可以实现Mobile Web大型系统或软件,还需要各个浏览器厂商的努力。其次还要看手机硬件的发展情况,例如CPU和内存。我认为,在一年内还不可能普及,现在更多的会趋向 原生App来实现。至于何时会普及,我觉得这很好把握,大家一起来关注这市场的动向吧。
2.html5,javascript与ios或android之间点数据传递,控制关系能否完全兼容?
其 实,iOS和Android只是负责把数据右uiwebView下发到JavaScript对象中。HTML5和JS更多的只是负责界面和交互的实现。至 于算法、功能等等都可以交由iOS和Android来做。所以,iOS和Andriod只要提供统一的接口,我们只需要实现一套应用就可以了。
3.应用HTML5做成ipa或apk与不使用html5还是应用传统框架优势在哪里?想OC的话,如果html5作为主流移动开发应技术的话,OC将会怎么发展?
我觉得,Android和Object-c在将来必定和HTML5是共存和依赖关系的。HTML5能解决一部分跨平台的方案,原生语言能直接提升用户体验和性能。
至于Object-C的发展,我觉得未来2、3年内仍然是世界开发主流语言之一。
Q:
HTML5是web技术,感觉只是比之前的HTML版本多了一些新的标签而已,为什么说HTML5会很火?移动开发主要是基于客户端的形式,而HTML5 是网页标签,这两个又是怎么结合起来的呢?与之前的WAP开发又有什么样的联系呢?开发移动web开发究竟需要学习哪些知识,期待一系列的解答。
A:
你好!你的问题非常好。我将你所提到的问题分成几个小问题来回答你。
1.  HTML5是一个新标准,在HTML4.01版本的时候,只定义了页面标签标准。而HTML5不仅仅是定义新标签。它还包含了服务通讯的 WebSocket、本地存数据的LocalStorage、跨文档通信协议postMessage、移动设备API等等。所以说,HTML5是一个大范 畴的标准。它既是HTML4.01的升级版本,同时还定义了很多新的API来解决过去多年来Web存在的一些问题。
2.  目前,移动开发主流是基于客户端原生语言的,毕竟现在使用原生语言开发的应用在体验上比基于Web开发的好。基于手机、平板电脑的移动Web浏览器在现 阶段仍然处于一个初级阶段,移动Web浏览器还需要解决很多的问题,一下子还不能和原生应用相提并论。但是,现在已经有不少的开发者实现了非常不错的 Web App应用和基于Web的游戏。
3.  WAP是一种无线通讯协议,它主要使用WML语言来开发页面,其应用场所是在2G网络,实现出来的页面非常简单、简洁。
4.  在3G网络和iPhone等智能手机成为主流后,一种基于Web技术的浏览器逐渐诞生,它区别于WAP的是,每种平台上都各自提供了一款Web浏览器,我们能够利用Web技术(HTML、CSS、JavaScript)实现各种网站、应用以及游戏。
5.  要学习如何开发移动Web应用,首先条件就是必须懂HTML、CSS、JavaScript三种技术。其次就是了解桌面Web开发和移动Web开发之间 存在哪些区别,比如增加viewport适应屏幕等。至于后端语言(PHP、Java),一般用于开发后台和提供接口给Web实现。而HTML5能为你解 决文件资源利用率、通信方式、数据存储、页面展示(CSS3)等一系列问题。
本文出自 “51CTO技术门诊” 博客,请务必保留此出处http://doctor.blog.51cto.com/939235/982521

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Grow your business fast with

Suku