Webapp VS APP

王志勇 发表于 2018年12月03日 09:27

我从去年开始开发手机版网页、Webapp,当时是帮我同学从0写了第一个企业跟单程序,经过连续加班,耗时累计120小时左右(合26个工作日)。

Webapp和APP这两者的优缺点,是比较显而易见的。手机客户端软件,优点是不用输入网址,有利于平台推广;用户安装之后,会节约一定的流量,这是因为很多数据已经缓存到本机;客户端软件自身为一个数据外壳,加载新数据时,只获取相关的数据,而无需加载整个页面,因为页面已经由客户端软件的外壳提供。

手机客户端软件(特别指国产),缺点是臃肿速度过快,冗余代码、冗佘数据过多,比如3-5年前,一个不到10MB的手机软件,现在大多已经达到50-100MB以上,比如工行APP,现在已经超过100MB了,这些大多可以精简在10MB以内。(相对来说,PC版软件优化比手机软件好太多。)
很多APP很卡,新安装的时候就比较卡,很多APP版本越高,速度越慢。

强制更新的问题。大多数的国产手机客户端软件,不强制更新,比如很多3年前的手机软件,现在还能用。什么时候必须强制更新?就是当和远程服务器的数据接口完全无法对接的时候。其实这个问题,也可以通过一定的方案解决,就是局部数据更新。(少数强制更新的软件,比如某电力APP,隔两三个月就要求升级才能使用,已经卸载很久了。)
冗佘数据过多,比如一个APP自身的体积是50MB左右,但是安装之后,/data/data/软件 的目录,一下子增加了200MB~300MB以上,现在很多国内流行的APP就是这样的。百度贴吧,今年年初的新版本,刚安装时,/data/data/ 的占用量超过1G,只好卸载,安装回2年前的版本。

大多的APP,都能改为Webapp。只有很少量客户端功能,以及需要手机系统权限、或者root权限,才需要用到客户端软件,例如拍照、录制语音等功能。

Webapp的优点和缺点,和上述的APP刚好相反。但如果加以优化,Webapp能克服很多自身的缺点。Webapp的界面,完全能和APP做得一模一样。其实说白了,就是手机版网页。手机版网页的开发,比过去PC版网页要容易得多,因为屏幕尺寸小,布局简单,只需把原来的字体调大,用相关的语句让其适应手机、PC的宽度。因此,所有网页设计者,经过几个月的练习,就能很快适应Webapp的开发。

Webapp的优点:

  1. 不用安装APP,不占用 /data/data/ 目录。节省手机CPU、RAM资源,十分流畅,3年前的安卓4.1都可以流畅地运行。
  2. 启动速度快,只要手机浏览器打开,打开收藏夹、或者输入相关网址,1秒钟打开。
  3. 不用升级APP。
  4. 对于超大流量、高并发的平台,如果想大幅度节省流量,可以制作一个“外壳”网页,设置此网页的缓存时间为72小时以上,数据由JavaScript调用。或者更理想的是,除了制作“外壳”网页,所有的数据也设置缓存时间为15天以上,由一个变量来判断是否有更新,当有更新时,则自动获取相关的最新数据,这一种也是这一年中我一直在思考怎样开发的,具体实施起来有一定难度。

Webapp的缺点:

  1. 就是上面谈到的,少量的手机客户端功能无法实现,但一般没有大碍。
  2. 所有的人机即时交互功能,都依赖于JavaScript,会有非常大量的JavaScript语句编写,所以对于手机浏览器的兼容性有一定要求。要避免这个问题,就是尽量地使用原生的JavaScript,尽量使用10年前的浏览器都可以支持的JavaScript语句。当然,这个问题不大,一般可以避免。
    交互功能,尽多地交给远程服务器来完成,因为远程服务器来处理数据,能够避免所有的浏览器兼容问题。

Webapp,上述的缺点一般情况下都不是缺点。唯一的缺点是手机浏览器自带的悬浮导航,这个是无法去掉的。这个底部的悬浮导航,以安卓系统为例,安卓4.2会在打开网页,或者滑动网页后约3秒消失,安卓4.4则在4.5秒-5秒消失。安卓5.1,这个底部的悬浮导航,一直存在,占用了99像素的高度。所以,Webapp的菜单按钮,很难放在网页的最下方。

为了解决这个问题,我去年曾把Webapp的菜单按钮放在网页的最底部,刚打开网页时,由于悬浮导航的存在,先让这个Webapp的菜单向上提高90像素(以躲开悬浮导航),5秒钟后自动落到最底部,外观看起来和APP没有区别。当滑动网页时,悬浮导航又自动出现,这时Webapp的菜单还会向上提高90像素(以躲开悬浮导航),5秒钟后自动落到最底部。这样做,虽然暂时解决了,但是缺点是Webapp的菜单总在上下跳动,让人感觉不稳定,二是到了安卓4.4,悬浮导航更频繁地出现,稍微点击一下浏览器,底部的悬浮导航就会出现。

到了安卓5.1,底部的悬浮导航一直存在,导致Webapp的菜单已经无法放在网页底部,只能放在网页的顶部了。如下截图,是安卓5.1的底部的悬浮导航:

0条评论:
1   自由勇 2018-12-22 18:36
Trackback来自《底层技术分享:离线版网页和缓存的程序设计思路

PP和网页的一个核心的区别是,就是APP本身是一个数据外壳,并且数据是缓存到手机中。APP和网页,两者各有优缺点。APP的优点是能离线访问,但缺点是缓存数据占用较大的手机ROM空间。这个缓存,对于运营者来说,能够节省大量的带宽,增加更多同时使用的用户。

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

王志勇:1980-09-26 (42周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2021年12月(11)
2021年11月(16)
2021年10月(18)
2021年09月(14)
2021年08月(19)
2021年07月(15)
2021年06月(9)
2021年05月(17)
2021年04月(25)
2021年03月(6)
2021年02月(17)
2021年01月(30)
2020年12月(19)
2020年11月(18)
2020年10月(15)
2020年09月(14)
2020年08月(14)
2020年07月(14)
2020年06月(16)
2020年05月(13)
2020年04月(18)
2020年03月(14)
2020年02月(15)
2020年01月(16)
2019年12月(11)
2019年11月(26)
2019年10月(25)
2019年09月(30)
2019年08月(10)
2019年07月(29)
2019年06月(30)
2019年05月(26)
2019年04月(30)
2019年03月(30)
2019年02月(30)
2019年01月(30)
2018年12月(30)
2018年11月(30)
2018年10月(30)
2018年09月(17)
2016年-2017年(9)
2014年06月-09月(10)
2013年 +

2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2022 auiou.com All rights reserved.
此Blog程序由王志勇编写