刚刚在知乎回答中的一个微博链接点击新浪微博的 m 站 欢迎登录 - 新浪微博 中发现 体验和新浪微博客户端已经没有差别了。本人用的是 iPhone4s,可想而知在 iPhone5s 等性能更加高的手机上体验更加好了。
这是否意味着 HTML5 技术已经可以取代 native 的 app 了?
回复内容:
感谢关注微博的 HTML5 版。我们在8月初上线的重构版中,从UI、交互的等角度尝试了和客户端的靠近,来减少用户的使用成本。从我们踩的坑,以及现在依然存在的 Bug、不爽的交互细节来看,HTML5 短时间内还是无法取代 Native,但是可以在某些方面有所突破,和 Native 做互补。未来一段时间,hybrid app 应该是一个比较好的方案。
(其实新浪微博app有很浓的hybrid开发痕迹,可能并不是原生应用。)
Webapp是一条死胡同,即使体验能和原生的一样,推送怎么办?换个浏览器怎么办?
所以我猜楼主想问的可能是hybrid app。
我们的团队刚刚开始hybrid app开发技术的探索,但是我可以很负责任的告诉你,
在“弱交互”的情境下,hybrid app的性能已经很接近native app。
给你看一个别人的作品——校信 校信,重新定义校园社交
如果我没记错的话,这个产品是 @梁灏 童鞋在校期间独立开发的,
从我的观察来看,他的“校信”应该是中国目前为止在技术/用户体验上最成功的一款hybrid app作品
在我手机上的运行速度远远快于笨重的native app
这至少证明了hybrid app在“弱交互”条件下是可以做到不比native差的。
并且也证明了hybrid开发模式的高效性(一个大学生可以完成如此优秀的产品)。
当然,对hybrid app的性能不能这么简单的下个结论,
因为html5以及js的渲染解析速度直接由各个移动平台的内置浏览器内核决定。
也就是说,你的hybrid app到底性能是好是坏,关键看用户的手机。
一个好消息是,各大移动操作系统对html5的支持越来越好,
苹果就不说了,我们说说Android,
Android可以说从4.x开始对html5的支持完全提升了一个等级,
至少我的安卓机可以完美的运行上面说的“校信”。
并且,各大移动操作系统对hml5的支持,随着时间推移,只会变好,不会变坏。
所以说,html5是属于未来的技术。
最后,我的观点是:
html5不能取代native,但是可以大大降低应用开发的门槛,未来“弱交互”的工具型app可能都会是hybrid app的天下。
而native,则用于去实现更为高级和复杂的app。
就像C语言较Python来说强大的多,但是对于网络爬虫来说,Python不失为一种更为经济方便的选择。
Nexus5上表现良好,比原生的安卓版本体验好太多
我直接用实际产品从交互和技术上来回答,废话不多说。
先说结果:
1.我们的深度操作系统(Deepin
)使用html5作为桌面的前端交互的开发语言,后端耗时功能使用go和c语言提供。
2.执行效率不是问题,很高。
3.最漂亮的linux桌面操作系统(这有截图:Deepin
)。
4.js无法实现的功能,可以用其他语言实现,然后js调用即可。
5.webkit内核不能频繁升级,稳定性是首要考虑。(注:内核是webkit24)
6.后期,性能是瓶颈。
再说结论:1.html5是趋势,很多问题都可以随着内核的更新而解决。2.html5(负责交互)和其他语言(负责耗时功能)配套使用,是最完美的组合!附上我们的git地址吧:Deepin - GitCafe
这个是桌面环境的git地址:Deepin/dde-workspace
----------------------------------------------------------------------------------
再说用户使用情况反馈:
1.linux发行版中,
最漂亮的桌面操作系统
2.在>5年前的机器上,
流畅运行(跑win7卡死)
3.反而使用qml开发的控制中心会因为显卡的不同而卡。---这说明webkit的渲染引擎已经很强大了!
----------------------------------------------------------------------------------
再说说作为桌面开发者,在技术上的一些情况:
1.使用html5+css3+coffeescript 开发,效率高,可以很快出demo,且交互和动画实现起来很赞!
2.一般功能,包括简单的搜索,都直接使用js,
效率不是问题。
3.但是对于需要大量索引和监听系统级别文件的改动,不得不用go和c。(js没库啊,js只是调用我们用go和c写的,然后通过dbus提供的库)
即:js调用,go/c执行。
4.
最重要也是最核心的---不允许使用任何js框架,如jquery.---------为了保证执行效率。这对于任何html5开发人员来说,应该是挑战性最大的,纯原生态写,纯js。5.因为作为系统级别的桌面环境,稳定性才是最重要的,所以webkit内核不能总是更新。
但是这也导致桌面环境的
性能会有一个瓶颈,我们现在就已经到达了这个瓶颈。
这个瓶颈已经不能通过代码的优化来提高,只能通过更新webkit内核了。
6.但是webkit内核的一次更新,意味着可能会有一些的难以解决的bug出现(很多bug都只能靠google那边来fix,我们只能提patch,同时在这个期间
使用其他方案曲线救国,但这必定会导致时间成本和开发成本指数增加)
我特别受不了总以为h5是万能的,然后整的跟native app一模一样的交互和功能需求的sb pm。
怒答。HTML5终归是网页。慢死了,资源消耗还大,尤其是在低端设备上卡的厉害。因此native app是很有必要的。
举个例子,在我的ipad1上面,用safari打开
http://zhihu.com不出半分钟就会闪退,只能凑合着用iphone版客户端。
利益相关:一个不满知乎不出ipad客户端的人。
html5对流量的可耻浪费能忘?还是wap版网页好
webapp就算了吧, hybrid app可以一战。winjs/winjs · GitHub
你值得拥有
Web充其量就是一个补全产品线的手段而已。手机上深度使用还得是native
先是匿名吐槽下:
新浪微博的触屏版本真做好么?
举个简单的体验:
我在timeline浏览,看啊看,滚啊滚,然后点击进到某条微博的详情页面,看完来,然后点后退。看看回到哪里来?回到timeline顶部了。。怎么办,我要继续下翻找到刚那条,然后继续浏览。
另外,我的mx2,无论怎么升级系统版本和浏览器,始终不能登录,就卡在登陆界面了。
答不对题。
然后是回答的分割线:
---------------------------------------------
HTML5技术在短时间内取代所有的APP是不可能的:
1、很多系统级别的API没有,HTML5能做的东西目前来看,还是太少,能做的很好的局限在浏览型的产品,这种产品只要前端开发同学给力,在iOS6和android4.0以上,做到同native app几乎一样的体验不是太难。
2、并不认为web型的产品能做到一次开发,全部适应。稍微复杂一些的页面,其实android下的兼容性问题依旧是很多,只是相比下,可能会轻松一点。公司们只要招一个前端开发来加班就好了,不用招一个iOS,一个android一起加班啦。
继续分割线
---------------------------------------------
新浪微博触屏版做的很不好,但我真觉得以下几个产品的触屏版做的真不错:
1、豆瓣;
2、qzone;
3、淘宝;
4、微视