移动 App 主流开发模式

在移动 App 开发领域,存在着三种主流的开发模式。他们被称之为 Web App 、Native App 和 Hybird App 。三种不同类型的 App 代表着不同的技术组合与开发模式,用户体验上也有一些差异。

Web App

Web无需安装,对设备碎片化的适应能力优于App,它只需要通过XHTML、CSS和JavaScript就可以在任意移动浏览器中执行,通过浏览器来调用Device API(取决于HTML5的支持能力)。随着iPhone带来的WebKit浏览体验升级,使得专为iPhone等有WebKit浏览内核的移动设备开发的Web应用,也有了如App一般流畅的用户体验。换句话说,Web App即可以认为是PC上看到的普通网页。

Web App的优势

  1. 开发成本低
  2. 适配多种移动设备成本低
  3. 跨平台和终端
  4. 迭代更新容易
  5. 无需安装成本

Web App的劣势

  1. 浏览的体验短期内还无法超越原生应用
  2. 不支持离线模式(html5已经解决这个问题)
  3. 消息推送不够及时
  4. 调用本地文件系统的能力弱

Native App

而App因为位于平台层上方,向下访问和兼容的能力会比较好一些,可以支持在线或离线,消息推送或本地资源访问,摄像拨号功能的调取。但是由于设备碎片化,App的开发成本要高很多,维持多个版本的更新升级比较麻烦,用户的安装门槛也比较高。

Native App的优势

  1. 提供最佳的用户体验,最优质的用户界面,最华丽的交互
  2. 针对不同平台提供不同体验
  3. 可节省带宽成本
  4. 可访问本地资源
  5. 盈利模式明朗(利用平台售卖App)

Native App的劣势

  1. 移植到不同平台上比较麻烦
  2. 维持多个版本的成本比较高
  3. 需要通过store或market的确认
  4. 盈利需要与第三方分成

Hybird App

Hybrid App是 Native App 和Web App(Mobile Web)二者混合开发的产物,HTML5 的页面被嵌入到 Natvie App 的 WebView (浏览器模块)中。因此它综合了Native App与Web App两者的有限,具备更新速度快,交互体验好,跨平台等优点。

最佳应用

目前主流的App基本上都使用了Hybird模式,在基础功能中,使用Native模式开发,扩展应用中,使用WebView加载更多的功能与应用。

参考资料:

iOS 7下Safari的Cookie机制

今天在测试手机Safari,发现Safari下的第三方Cookie机制挺有意思,笔记一下。

测试平台

  • iPhone5
  • iOS 7
  • Safari
  • Cookie为默认设置(阻止来自第三方和广告商的Cookie)

测试结果

  • 只要在Safari访问过的域名,在往后任意的访问中(不删除Cookie及访问数据),该域名都将被作为第一方域名处理

案例

  1. 用户在媒体网站看到并点击广告;
  2. 访问广告系统A.COM后,跳转到网站着陆页B.COM;
  3. 用户在网站B.COM进行了转化行为;
  4. 转化行为数据发送到A.COM。

按照传统的第一方Cookie概念,A.COM在用户浏览B.COM时候是属于第三方域名,写在A.COM域名下的Cookie不会被附带在发送至A.COM的请求中。但此处移动Safari会将A.COM域名下的Cookie附加在对应请求中。

在后续,我又对Safari进行了中断Session(置于后台数十分钟),关闭浏览页面,关闭Safari软件等操作,都未能对上述规则产生影响,因此得以结论。

==========更新==========

此后,又测试了Android平台下的浏览器。以Meizu MX3为例:

  • 默认浏览器:第三方Cookie均不发送;
  • Android Chrome:机制与iOS下的Safari一样。

UC浏览器由于存在云端缓存等机制,导致我测试了好几次都未成功。但总体来说,现在的第三方Cookie已经越来越不靠谱是毋庸置疑的。