• 请不要在回答技术问题时复制粘贴 AI 生成的内容
wyan453351466
V2EX  ›  程序员

随着 h5 的普及,是不是不再需要开发 app 了?

  •  
  •   wyan453351466 · Nov 24, 2014 via iPhone · 38388 views
    This topic created in 4372 days ago, the information mentioned may be changed or developed.
    有这么一种感觉,用h5开发出的web app体验上并不比原生app差太多,但其跨平台的特性大大减低了开发成本,而且可以快速迭代。某些类型的app体验并不会差太多。这种情况下是否就没有开发原生app的必要了呢?
    Supplement 1  ·  Nov 24, 2014
    感觉大家可能误解我的意思了,我想说的是"某些APP",例如V2EX这样的网站,h5基本是可以满足需求的。只是少一些类似推送的功能,但可以用微信推送等技术解决。这种情况下还有开发原声APP的必要吗?毕竟那是很大的一个成本
    99 replies  •  2014-11-25 17:12:40 +08:00
    vibbow
    vibbow
    Nov 24, 2014❤️11
    1
    等手机能上16G内存的时候再说这话吧
    http://www.cnblogs.com/codemood/p/3213459.html
    0x142857
    0x142857
    Nov 24, 2014 via Android
    2
    首先楼主的前提就是错的 😂
    MacGG
    MacGG
    Nov 24, 2014 via Android
    3
    @vibbow 好文章
    gisonrg
    gisonrg
    Nov 24, 2014 via iPhone❤️1
    4
    如果设备没联网…
    jasinyip
    jasinyip
    Nov 24, 2014
    5
    @vibbow 不过那文章用的 Chrome 是 29 的,现在已经 38 了,不知道是否还是有那么大的差距呢?
    em70
    em70
    Nov 24, 2014 via Android
    6
    pc上是这样,这个趋势2005年开始就已经被大多数人认同了。但手机上,web前景并不明朗。
    WildCat
    WildCat
    Nov 24, 2014 via iPhone
    7
    一句话,你 PC 上的IDE,游戏还没有被HTML替代。
    HTNL5 App能否普及的关键在于,Android下的性能表现。
    WildCat
    WildCat
    Nov 24, 2014 via iPhone
    8
    @vibbow 这篇文章太赞了!
    sinxccc
    sinxccc
    Nov 24, 2014
    9
    iPhone 初代刚发布的时候 Apple 就是这么说的,iOS (当时还叫 iPhone OS)的官方 SDK 也是后来很久才发布。但事实证明…
    ityao
    ityao
    Nov 24, 2014
    10
    大部分不需要原生api的应用基本都可以被取代了!
    sanddudu
    sanddudu
    Nov 24, 2014 via iPhone
    11
    @WildCat Intel XDK 使用 node-webkit ,它是 IDE
    目前性能的瓶颈都出现在资源问题上,我也期待摩尔定律能最终让 HTML5 可以达到原生应用的效果,至少电脑上可以,但是手机可是寸土寸金的
    vibbow
    vibbow
    Nov 24, 2014
    12
    @jasinyip 你在电脑上访问一下Google Map就知道了,HTML5 + JavaScript开发应用纯属扯淡。
    我顶配的电脑访问Google Map都卡的一B。
    BGLL
    BGLL
    Nov 24, 2014
    13
    性能问题==时间问题
    Automan
    Automan
    Nov 24, 2014
    14
    哪怕未来手机性能提升了,原生应用的体验还是可以继续秒杀h5几条街
    flyfinec
    flyfinec
    Nov 24, 2014
    15
    @vibbow 文章太老,现在ip6性能至少比4s好上2倍以上
    WildCat
    WildCat
    Nov 24, 2014 via iPhone
    16
    @flyfinec 移动端的世界不只有iOS, 如果Android 给力的话,现在起码50%的应用是HTML5
    hjc4869
    hjc4869
    Nov 24, 2014 via iPhone
    17
    偷偷告诉你win8 app在n年前就支持html5原生开发了,并且win8.1好多预装微软app都是html5,比如邮件客户端,比如新闻客户端,但是你在移动端非Windows平台根本找不到一个在运行速度、内存控制上能跟IE11抗衡的浏览器,并且那些HTML App没有一个不调用COM,没有一个不调用C++或者C#,真正的运算工作js根本无能为力。
    还记得腾讯做的那个旧版Metro QQ吗,那是js做的,功能不及桌面qq的十分之一,效果简陋,但内存占用比桌面qq还大,并且低端设备上体验相当糟糕。现在的版本已经用C#全部改写了。
    并且看看实际情况,哪个大公司不是一心推广客户端?网页端都是指向客户端下载的链接,这说明HTML5的趋势已定,根本不是客户端的对手,而是为了临时解决无客户端时的不便,取代无从谈起,不然当初iOS不就没必要做App Store了?
    Showfom
    Showfom
    PRO
    Nov 24, 2014 via iPhone
    18
    不考虑性能了吗
    vibbow
    vibbow
    Nov 24, 2014
    19
    @flyfinec 文章的重点是内存好么!!!
    sanddudu
    sanddudu
    Nov 24, 2014 via iPhone
    20
    @vibbow 过几年 64G 的手机内存都可能是标配了
    如果瓶颈只是性能,那绝对是时间问题
    vibbow
    vibbow
    Nov 24, 2014
    21
    @sanddudu 既然你文章都没读完,那我也没必要跟你细说了。
    magine
    magine
    Nov 24, 2014
    22
    `phonegap` 卡卡卡...
    missdeer
    missdeer
    Nov 24, 2014
    23
    脚本语言的性能瓶颈不会随着硬件升级而消失,有些人这么多年来怎么还没看明白这一点。
    icanfork
    icanfork
    Nov 24, 2014 via Android❤️1
    24
    @magine 你试试跑在iOS上。。。
    robertlyc
    robertlyc
    Nov 24, 2014
    25
    醒醒 工头喊你搬砖了
    damngood
    damngood
    Nov 24, 2014
    26
    我总觉得竞争总是会让制作方选择[更能生产出更好产品的技术平台], 在合理的前提情况下
    cevincheung
    cevincheung
    Nov 24, 2014
    27
    流量不要钱而且上下行都有100M+那就真的不用考虑原生APP了。
    pljhonglu
    pljhonglu
    Nov 24, 2014
    28
    得等电池瓶颈和发热问题解决了之后,才有可能出现16G内存的移动设备了。那个时候可能H5开发确实是一个比较好的方案。
    Mirana
    Mirana
    Nov 24, 2014 via Android
    29
    @missdeer 性能跟语言本身有什么关系
    taiw
    taiw
    Nov 24, 2014
    30
    资源是一方面,功能也是不可忽视的。Html5能调用特性化的底层API吗!?比如iPhone上开个网页,然后网页与AppleWatch数据通信?
    Automan
    Automan
    Nov 24, 2014
    31
    @Mirana 跟语言的运行机制有关
    reeco
    reeco
    Nov 24, 2014
    32
    你可以试试12306在android上的体验
    ijse
    ijse
    Nov 24, 2014
    33
    感觉楼上各位都误解LZ的问题了。

    LZ的意思是,*某些App*, 用H5开发出的体验效果跟Native差不多,是不是就可以不必开发Native版了。

    我觉得是的。
    JmmBite
    JmmBite
    Nov 24, 2014
    34
    1分钱的个人开发费用,却要消耗上亿人终端硬件的升级;10W公司开发费用,但省去了上亿人终端硬件的升级;关键看取舍,个人主义除外。
    zwdsix
    zwdsix
    Nov 24, 2014❤️5
    35
    请问 h5 是什么高新技术?
    lingyired
    lingyired
    Nov 24, 2014
    36
    请说一个在浏览器直接访问的体验优质的 Web APP?
    jlii
    jlii
    Nov 24, 2014
    37
    感觉性能差别不明显的话应该可以吧
    mengzhuo
    mengzhuo
    Nov 24, 2014
    38
    @vibbow

    这文章通篇重点是GC烂到家了,程序员要性能就要管内存

    空闲内存得是是六倍于需要的内存
    16G/6 = 2.6G
    啥程序需要2.6G?
    不过现在手机端常见的1G/6=170MB。。。
    qian19876025
    qian19876025
    Nov 24, 2014
    39
    如果真这样了 那还养那么多软件公司干嘛 真到那时你也失业鸟
    wl591475365
    wl591475365
    Nov 24, 2014
    40
    当手机性能升级, 原生应用所能做的也同时在升级, 这是h5所不能替代的
    lincanbin
    lincanbin
    Nov 24, 2014
    41
    @gisonrg 题主说的大概是把HTML打包成Apk、ipa之类的吧
    wadezhao
    wadezhao
    Nov 24, 2014 via Android
    42
    某些类型的应用如此。事实上这些应用也基本上都h5化了, 包括淘宝在内的很多app都已经是公司做个自己的壳,包裹着大量的html5代码了。但是很多领域在可以看到的时间里还是离不开原生开发,你用h5给我开发个输入法,来电拦截,权限管理,浏览器我看看?
    missdeer
    missdeer
    Nov 24, 2014
    44
    @Mirana 性能跟语言本身关系不大,跟语言的实现方式有很大关系
    sujin190
    sujin190
    Nov 24, 2014
    45
    web虽然很牛逼了,但说想取代原生app得话,那也是不可能的,web本身的控制视图的方式就决定相对原生app来说需要更好的单核cpu性能,更多的内存,js在x86和arm上同等主频也有很大的性能差距,而且一旦web可以调用更多的底层api,那么巨大的安全问题也不是那么容易解决的
    Tankpt
    Tankpt
    Nov 24, 2014
    46
    刚好最近在看这类的文章
    http://www.nngroup.com/articles/mobile-native-apps/

    http://www.toptal.com/android/developing-mobile-web-apps-when-why-and-how

    感觉还是有使用场景的。不过最好的还是用native吧。我的感觉而已
    lincanbin
    lincanbin
    Nov 24, 2014
    47
    @vibbow 你这个太旧了,起码是3个摩尔周期。
    上面的ipad sunspider成绩是5000ms,现在的ipad air 2成绩是300ms,早提了不知道多少倍了。
    ixiaohei
    ixiaohei
    Nov 24, 2014
    48
    @wadezhao 云输入法算么?
    pythoner
    pythoner
    Nov 24, 2014
    49
    折中一下,某些类型的应用,native + h5还是可以凑合的
    21grams
    21grams
    Nov 24, 2014
    50
    当年facebook也是这样想的,而且也这样做了,最后被现实无情的抽打。
    TingHaiJamiE
    TingHaiJamiE
    Nov 24, 2014
    51
    不是。月经贴都快变成日经了...
    HowardMei
    HowardMei
    Nov 24, 2014 via Android
    52
    Web暂时火不了,但我看好它的未来,特别Amazon推出Lamda这样的服务之后。随着人工智能和大数据的发展,云端越来越重、终端越来越轻是必然的。

    基于硅片的移动SOC性能提高将止步于摩尔定律终结,而端到端通讯宽带和延迟是5G技术重点要解决的,通讯厂商早就布局好,只等市场成熟,我猜这也是华为坚持聚焦本业的原因。

    我猜在华为等通讯厂商高层眼里,云端技术 + Web终端是未来,IOS/Android Native App才是过渡。

    几年前我查询,就看到华为有注册 End to End Communication Session QoS 专利,思科也有类似专利,这意味着未来每次通讯都能有QoS保障,大量数据实时传输的稳定性提高,基于实际QoS而不是简单带宽的移动宽带定价也可成为电信公司新利润增长点。
    vibbow
    vibbow
    Nov 24, 2014
    53
    @lincanbin 为什么都不看到文章结尾呢...
    njutree
    njutree
    Nov 24, 2014
    54
    h5 和 js 要代替原声的应用基本不可能,性能内存都是问题。但关键h5 和 js都是跑在浏览器上的本身就不是用来代替移动应用的,只是在某些特定的应用上用h5 和 js 很方便,比如楼上 @wadezhao 说的一些详情展示的页面和应用。 如果真要代替的话我觉得也应该是另一个语言
    xuwenmang
    xuwenmang
    Nov 24, 2014
    55
    APP一个设备可能只会装100个,甚至只需要三四个。为什么要装你的APP?

    但是这个世界网站是100W倍吧。
    kmvan
    kmvan
    Nov 24, 2014
    56
    楼主可以安装一个 HTML5 launcher 玩玩,我 MX3 装了,CPU 直接满载.
    flynngao
    flynngao
    Nov 24, 2014
    57
    请参考现在是web开发多,还是window客户端开发多
    wadezhao
    wadezhao
    Nov 24, 2014
    58
    @ixiaohei 较真的话,可以算。或者你干脆开发一个软件,说我这个软件就叫“输入法”,你咬我啊?!哈哈
    xiangpaopao
    xiangpaopao
    Nov 24, 2014
    59
    我以为v2ex上不会有这种问题
    jimwoo
    jimwoo
    Nov 24, 2014❤️1
    60
    为什么没人说过淘宝的app呢?淘宝app的首页不就一个h5的应用吗?
    skybr
    skybr
    Nov 24, 2014❤️2
    61
    阿里、平安、电信不是大把应用基于hybrid app么.

    微信里的大量即开即用的应用也能算吧.

    离开场景谈性能是耍流氓啊.
    subpo
    subpo
    Nov 24, 2014
    62
    @vibbow 哈哈,我当时毕业的时候就是翻译的这篇论文,不知道学校有没有人能发现他的价值~~
    subpo
    subpo
    Nov 24, 2014
    63
    是可能的,很有可能:
    楼上说的网速问题,不成立,h5 app可以打包成app
    只要等到h5的效能能达到native的效果就可以了,等吧
    Narcissu5
    Narcissu5
    Nov 24, 2014
    64
    我倒觉得h5的短板不在于性能,h5你能推送消息到信息栏么?你能读通讯录然后上传到服务器么?你能往SD卡里面乱写数据么?iOS不知道,反正Android上不耍耍流氓都不好意思说自己是个app
    ixiaohei
    ixiaohei
    Nov 24, 2014
    65
    @Narcissu5 这个只要提供api给h5就行了,你没有看到现在h5规范里面一堆跟设备相关的api么,比如地理位置,方向啥的,感觉h5都是为移动而生的,你说的这些如果很有必要,就看w3c怎么制定规范了
    zachgenius
    zachgenius
    Nov 24, 2014
    66
    又是H5占领世界说~~~如果这玩意能占领全世界, 那为何C/C艹这么几十年了依然是语言榜榜首呢~~~性能,性能,性能!能触及到底层的东西才能谈的好性能。用JS来做一些高性能的APP,你在开玩笑?当手机芯片和内存是桌面级别的么。哪怕是跟桌面一个级别的,桌面上那些web app都死掉多少,比如前一阵刚关掉的WEB QQ
    jarontai
    jarontai
    Nov 24, 2014
    67
    纯web app体验还是差一些,但是hybrid app的前景还是很不错的,长远看来,大部分对性能要求不苛刻的app都可以使用html5/hybrid技术实现,看看ionic多火啊 - http://ionicframework.com/
    zachgenius
    zachgenius
    Nov 24, 2014
    68
    而且说白了, H5在牛逼也要依靠于把他转换成native code的容器,容器达不到,h5在有用,对于手机也是没用。手机上这些容器不都是用C/C艹写的么。连大JAVA都要依靠C/C艹来辅助开发解决个别大运算和其他比如安全啊什么的一些问题,JS这种完全不用编译转换的解释型代码,你在开玩笑?
    Voren
    Voren
    Nov 24, 2014
    69
    具体还是看app情况,以及应用人群了
    在相当的时间里都是会共存的
    例如微博来说,主要就是信息流,用H5做还是不错的,我手机就已经卸载客户端了,当然了,客户端很流氓
    但是QQ这种,存在信息推送,用H5很难想象关闭浏览器后还怎么操作推送信息了
    同样的,如果有重度微博用户,那么客户端的推送功能也是H5代替不了...

    技术是为业务服务的,工程师的眼光可不能有非此即彼的狭隘
    vibbow
    vibbow
    Nov 24, 2014
    70
    @subpo 这篇文章是你翻译的么?
    我一直想给这篇文章的译者donate 2块钱的...
    subpo
    subpo
    Nov 24, 2014
    71
    @vibbow 不是。。。我谷歌翻译加人工调整,大学论文,没认真做的。
    sun019
    sun019
    Nov 24, 2014
    72
    客户需要 推送!推送!推送!
    html5 能推送么????

    我是不喜欢推送的,所以只要是能html5能访问的,我基本上不会用APP的,比如新闻资讯类,BBS类的。手机上装个微信微博QQ支付宝淘宝 再加上一些工具类APP就可以了
    tini8
    tini8
    Nov 24, 2014❤️1
    73
    浏览器里的HTML5不能推送,但HTML5开发的客户端推送不成问题吧。

    HTML5技术不等于HTML5网页,跟HTML5网页对应的是app的MVC的M(模板)部分
    MntCw
    MntCw
    Nov 24, 2014
    74
    大部分的人目光很短浅,就像IPHONE出来时都说一定不会成功那样 @xuwenmang 说得很好,这个世界网站有很多很多。
    celon
    celon
    Nov 24, 2014
    75
    @sanddudu 过几年,电脑标配64GB Ram都不一定实现
    jsq2627
    jsq2627
    PRO
    Nov 24, 2014 via iPhone❤️1
    76
    @sun019
    @tini8
    推送技术上早就不是问题了。
    https://developer.apple.com/notifications/safari-push-notifications/
    苹果随时都可以引入 iOS
    v1ex
    v1ex
    Nov 24, 2014
    77
    做过几个 web app 项目,ionic+angualr,avalon 等各种框架都尝试过,最后都是硬着头皮改下去的。。。 Android 上的 UC、猎豹、QQ、百度浏览器等等,调兼容性的问题能折腾死人,特别是 Android 2.x 下的各种问题

    这里的兼容性问题还不包括 css 的兼容性,而是指 js 和性能方面的。。。
    不说其他的,一个 html upload 图片,能解决所有 Android 浏览器的上传的话就不得了了。。。

    所以,看到楼主的标题,我颤抖了。。。。
    Narcissu5
    Narcissu5
    Nov 24, 2014
    78
    @ixiaohei html5标准制定了八年,一个最简单的地理信息访问API都能难产。等这些API实现,估计太阳都成红巨星了。
    NemoAlex
    NemoAlex
    Nov 24, 2014❤️1
    79
    你再说一遍 H5
    我保证不打死你
    xiaowangge
    xiaowangge
    Nov 24, 2014
    80
    Html 5 游戏,非常耗费流量。

    App 游戏就不怎么费流量了。
    ioth
    ioth
    Nov 24, 2014
    81
    @lincanbin 难道我换了iphone6p,所有用户至少就是5?
    用4的用户不用管了?
    ioth
    ioth
    Nov 24, 2014
    82
    uc给阿里收购,老板去搞高德地图,就知道了吧,web就是个过渡。
    下个信息技术世纪,是app的新形态,web坐吃等死吧,到现在bs也没完成打倒cs。
    还想把app给收了?
    magine
    magine
    Nov 24, 2014
    83
    @belin520

    可是总会有安卓用户啊。 (´・ω・`)
    300y
    300y
    Nov 24, 2014
    84
    @v1ex 确实,目前实际应用,这方面坑还是挺多的。
    wyan453351466
    wyan453351466
    OP
    Nov 24, 2014 via iPhone
    85
    @sun019 微信现在已经开放了第三方应用(网站)消息推送的接口,美国有类似yo这样的APP可以满足这项需求(它们也有api)。我觉得随着互联网的发展,这不是主要考虑的问题
    vibbow
    vibbow
    Nov 24, 2014❤️1
    86
    说实话,以现在的技术,一滑动,完全能感觉到这是不是Webapp。
    差距还是非常明显的。
    lincanbin
    lincanbin
    Nov 24, 2014
    87
    @ioth 还是要管的,内存管理靠经验是可以做好的,大概比原生多用50%内存,并非难以接受,合理优化也是流畅跑起。
    我几个月前做移动web开发,测试safari兼容性的时候还是用的256内存的touch4。
    flynngao
    flynngao
    Nov 24, 2014
    88
    扯来扯去就说性能问题,性能问题是一定解决的问题,其实还有什么好扯的呢,web是写界面最好的方式,也是发布最好的方式,pc除了一小部分app是需要客户端,到了移动互联网从b/s回到c/s竟然没人觉得是退步的行为真是服了
    wadezhao
    wadezhao
    Nov 24, 2014
    89
    @flynngao 还有一个问题就是对WEB APP的定义问题,就像我前面说的,很多软件都是用原生做个壳,里面包HTML5,那这种算不算原生呢?这种混合开发方式其实还是离不开原生的。

    所以这个讨论其实根本就是没意义的,混合开发的大行其道早就已经用现实说明了一切。
    boom11235
    boom11235
    Nov 24, 2014
    90
    我觉得『某些app』的说法比较准确,考虑实际情况,追求效率和迭代为上而且性能要求不苛刻的完全可以使用h5代替。硬件越来越发达的情况下,有时候更多追求一个开发效率,而非死抠性能。
    est
    est
    Nov 24, 2014❤️1
    91
    什么时候h5表示html5了我擦。
    jox
    jox
    Nov 24, 2014
    92
    @tini8 那啥,MVC里的M是Model(模型),不是template(模板),看到你这个模板,我实在是忍不了了,如果非要对应MVC的话,网页应该是V,View(视图)。

    我不知道Android的情况如何,开发iOS应用内存是非常不够用的,说性能不是问题的人忽略了一个事情,不光只有硬件会升级,软件对硬件的需求也会升级的
    yxzblue
    yxzblue
    Nov 24, 2014
    93
    又有可以吐槽的帖子了...
    hsu
    hsu
    Nov 24, 2014
    94
    @tini8 MVC里的M是模板的意思吗?
    guotie
    guotie
    Nov 25, 2014
    95
    很多人没搞清楚web app和hybrid app
    imskull
    imskull
    Nov 25, 2014
    96
    这真热闹。作为一个C++和H5均有经验的开发者,我的理解是:
    1. H5的确慢,将来也快不到哪去(很赞同一楼链接里那些说法)。但是,看你用它来干啥了,在桌面做个流程图工具-够用了(见Chrome Web Store的Gliffy);手机上做RPG游戏-扯淡。
    2. H5应用没必要全都是H5,性能核心处用native编码未尝不可,这叫hybrid的H5。同样用hybrid的方法也可以解决H5无法调用的一些系统功能,如手机上的消息栏通知、电话监听啥的。Chrome, Android, iOS均支持这样的方案。
    3. 同2类似,将来的H5应用可能以Hybrid的居多,并且混淆在各个环境里面,可能你用过你也不知道。
    4. 性能比较例子:小米2上用H5做的侧栏滑出动画只有30FPS(用的是目前最快的方法了:CSS transition+will-change),而INBOX等Native应用目测至少60FPS。虽然不能说卡,但是至少不是如丝般顺滑,你要做*产品*的话这点手感也很重要。
    5. 浏览器兼容问题很麻烦,就不要想去做在各个浏览器都能用的H5 App了。你做10个到处能运行的烂应用也顶不上一个精品啊。
    就这些了,不吹捧不驳斥,H5能发展起来可能也不是你我想象中得那种H5了。
    rankjie
    rankjie
    Nov 25, 2014❤️1
    97
    H5 my ass
    ioth
    ioth
    Nov 25, 2014
    98
    @lincanbin 如果只是内存问题,我同意,那文章不错,不过也不是只以那文章来说事。
    内存,从当年我们用128K到现在pc上面普遍8G,有很多变化。
    那时候都是命令行,界面少,现在内外存都大了相当多,界面也好,2/3D也好,不是问题。
    可是操作系统的多任务,现在是pc以windows为主,安卓多任务不合适。
    在这个前提下,js和web效率低,做不了几个后台任务。
    ios下一个革命的实现真正的多任务后台机制,所以那文章最有亮点, 是分析了mac开发方式,建议用arc而不是gc.
    momowei
    momowei
    Nov 25, 2014
    99
    不是谁非要取代谁,都没有这个能力。我觉得手机上还是native为主,web为辅吧。
    native性能高,但不同平台得完全重新开发,比如安卓和ios代码复用率很低吧.
    web性能肯定低点,不过在ios里面这个问题不大,支持的还是很好的,安卓在4.4以上也还不错了.
    web的可迭代性,代码复用率(当然兼容性坑有,相对来说是可以解决的)是优势。
    以后我觉得native嵌入web app会成为常态,一个app里面不是所有场景都需要动画效果的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1882 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 146ms · UTC 15:45 · PVG 23:45 · LAX 07:45 · JFK 10:45
    ♥ Do have faith in what you're doing.