http://twitter.com/drbarnard/status/248294305389756416

回复内容:

以前appstore也是网页版,但iOS6的内嵌网页明显设计不好,经常出现各种状况,才导致用户发现是html5网页。

应用商店本身是个系统软件,无法独立自己升级,只能跟系统一起升级。同时appstore有安装卸载升级软件等超级权限也不可能以普通的软件发布(如果支持那么意味着存在巨大的安全隐患)。系统软件还能保持灵活网页版是个无奈的选择。

另外应用商店跟其他系统内置应用(相机,相册)最大的区别是一个重度运营的业务。经常需要变更内容,而变更的内容很有可能导致UI框架变化。为了调整方便是个不错的选择。

其实还有一个重要的原因是苹果的appstore有三个版本,网页版,itunes版本,手机客户端版本,采用HTML5的好处可以降低让三个平台尽可能很多研发能够复用,同时解决UI框架以及内容调整一致性。从资源角度来说是个节省资源的选择。

实际上百度的android应用商店也是这样的模式,当时在内部坚持这个方式的时候我被怀疑带领团队偷懒。这是个很有趣的问题,要解释的话,要从 iOS 程序安装方式来说
现阶段的 iOS 程序只存在两种官方允许的安装方式:企业分发, App Store
实际上呢,这两种程序安装方式是一种
所有 iOS App 都是通过:建立桌面书签->下载软件内容( ipa 或者app 封包)-> iOS 系统验证签名-> iOS 系统解包-> iOS 系统建立索引,安装到位
这种安装方法的第一步:建立书签,最简便的方法就是从网页创建了。事实上苹果系统不允许从其他途径创建桌面书签,所以 App Store 必须有页面元素,至少那个购买按钮要是页面元素

其次, App Store 作为 iOS 上的一个收费软件市场,必须得考虑到各种更新和漏洞修补的问题。按照现在的网页处理方式,一旦出现任何市场漏洞,苹果可以马上通过修改页面来处理;如果 App Store 是本地应用的话,很有可能会出现无法处理的问题,因为大家都知道 iOS 系统内置程序的升级都是和 iOS 系统同步进行的,同时 iOS 内置程序的储存位置、权限这两个关键属性和普通程序是完全不同的,也就是说如果 App Store 作为本地程序存在,出了任何问题,苹果唯一的解决方法就是发布新的 iOS 系统,5.0.1,说实在,这是一个对于苹果来说很尴尬的版本号

=========体内酒精含量:0.4%==========
当然,以上的都是本人一人之言,而且本人并非 iOS 系统专家,如有错误,还请包涵不管是ios上还是mac上,苹果商店一直都是以web内容呈现的,只不过是现在增加了html5元素而已,何必大惊小怪,一直认为苹果是使用native shell包装html页面达到如火纯青的开发者。为了满足使用不同国家/地区账号登录后加载不同的UI的需求。在iOS7中,依然如此,因为原生应用不可能做到这一点。
而且不仅App Store,iTunes Store等资料库都是使用HTML。
如果这点你不能理解,请参考iTunes Store:

1.中国区的iTunes绝对是史上最傻逼的App,没有之一:
为什么苹果还要使用 HTML5 开发 iOS 上的新版 App Store?-LMLPHP
为什么苹果还要使用 HTML5 开发 iOS 上的新版 App Store?-LMLPHP吐槽:两个Tab,分别对应“安装iTunes U”和“安装Podcast”——安装之后呢?变成“打开iTunes U”和“打开Podcast”——你们有没有被雷翻?反正我是翻面了。
但是如果到这你就觉得iTunes傻逼,那就是你傻逼了——井蛙不可语海,夏虫不可语冰(说我自己)。


2.在美国区,iTunes是这个样子:
为什么苹果还要使用 HTML5 开发 iOS 上的新版 App Store?-LMLPHP
看出啥叫差异了吧?

所以,这玩意肯定还得用HTML写,是不是5我就不管了。很浅薄的一个观点。如果是本地的应用,那如果出现bug的时候appstore该如何升级自己?iOS、Google Play、Windows 应用商店 都是这样的设计。

* 对这个场景来说,用户体验与Native差别不大
* App Store 也不是不能升,可以借助系统小更新来完成。但这样对用户是可选的,而放在Web上,必须联网访问就把主动权放在厂商自己手里了。用native把一些系统参数(像app版本,ios版本,unique号)存下来,其他展示都用h5实现,不只是修复bug快,甚至发布一个大的版本升级都不会有太大问题,基本上就等于web了。。
08-28 12:09