Kii BLOG

从架构角度看移动App之争

Native App和Web App孰强孰弱?Web App是否在将来能取代Native App?而新出来的Hybrid App作为中间选项,是否是更好的选择?这一直是移动互联网从业讨论的话题,由于Web App相对还不成熟,目前大多数应用开发者都在Native App和Hybrid App之间做选择,今天我们就来比较下各自的特点。
Native App
Native App架构的客户端中包含了界面展现、业务逻辑、数据模型三个部分,如下图所示,通过网络访问服务器端的各种服务。

Native App
这种架构模式与C/S结构是一样的。由于使用了客户端的众多特性,所以客户端的表现力相当丰富,性能较高,用户体验也比较出色。但劣势也比较明显:客户端的开发工作量大,逻辑复杂;客户端不利于移植,必须针对不同的操作系统进行单独的适配开发工作;客户端软件升级和维护困难;服务器端要支持多客户端,难于扩展。不过随着类似MBaaS这样的云服务的提供,可以有效降低Native App的服务器端的开发,也方便进行扩展,这会将来很大程度上减少Native App的开发时间和成本。
Hybrid App
在Hybrid App这种结构中,如下图所示,对于侧重性能、体验、设备特性、本地数据管理的部分,采用Native的方式,其余的部分采用Web方式,通过这种结合,可以有效地形成互补,这就像在B/S结构上增加浏览器插件一样,对二者进行融合。

Hybrid App
现在采用这种融合方案的应用正在日渐增多,既可以发挥本地应用的优势,又能有机地整合后端资源。对于需要本地化的部分,继续采用操作系统的API接口进行客户端开发,对于适合Server端的部分,通过嵌入WebView等浏览器控件进行实现,也可以采用像PhoneGap这样的框架来消除网页展现中难于使用设备本身特性的缺点。
因此通过使用Hybrid App,因为在展示端可以兼容Android,iOS等不同的操作系统,所以可以有效降低界面这块的开发工作,使得它尽可能的通用化,但是因为通用化,必然免不了通过牺牲部分效率和性能来达到这个特点。

综上所述,由于有了类似MBaaS这样的云服务的提供,使得Native App的开发成本降低,也使得两者之间的区别很明显,一个是在服务端这里节省了时间和成本,一个是在界面端(客户端)节约了时间和成本。当然移动应用并不是非此即彼,必须充分认识到二者的特性,然后灵活地应用在自己的产品架构当中,才能更好地平衡软件的结构。

发表评论