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 (44周岁)
程序设计,前端设计。

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

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

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

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