作者:Aleksandra Dikusar(原文链接)
翻译:刘通
原标题:Hybrid WebRTC App vs. Native WebRTC App
WebRTC的特性使得它成为开发者和用户两者的绝佳选择。你需要在原生和混合WebRTC应用中做出选择。当然要考虑你自己的目标和可供使用的资源来进行抉择。你可以不使用任何第三方框架创建一个WebRTC应用。一个普通的用户会非常喜欢一个完全不需要安装和更新第三方插件的音视频聊天软件。如果你正在找一个适合进行商业通话的实时通信平台的话,WebRTC依旧是一个好选择,端到端加密技术使WebRTC可以保证数据传输的安全性。但是即便你完全确信WebRTC移动版软件就是你所需要的,那么你离真正开始研发工作也还差一步之遥。
在本篇文章中,我们会尝试对比一下原生和混合WebRTC应用之间的主要区别。
WebRTC原生应用的优缺点
当我们不看WebRTC只谈论原生应用的时候,它主要的好处是对一个特定平台开发所带来的一系列有点。通常,这种应用会比混合应用更快。另一个有点就是有可能获取硬件的全部权限。如果你计划创建一个高性能的应用,比如一个有很多3D画面和动画的手机游戏,那么原生应用是一个很明显的选择。但是如果你正在犹豫那种解决方案对于你未来的聊天软件来说是最合适的,这里有几点声明值得记下了。WebRTC不是平台本身的特性而是针对一个特定的浏览器来说的。所以对硬件的要求不是你事先需要担心的事情。WebRTC应用不需要非常高级的性能就能够平稳运行,给用户带来良好的体验感。除此之外,WebRTC应用不需要原生应用提供的特定硬件功能的使用权限。这需要开发者指定针对特定的移动平台开发原生WebRTC应用,可能会造成额外的开销。
即便你无需担心资源受限,还有一个关于WebRTC应用的重要的事情必须记住。直到2017年中旬,苹果都没有支持WebRTC。终于,苹果公司宣布iOS 11+版本支持WebRTC技术。JavaScript API在Safari 11版本中被应用,并且在新版本的iOS和macOS系统中也将可用。这样的话,你就必须百分百确认你的目标用户没有使用过时的(在你开始开发自己的WebRTC应用之前的)软件。
安卓方面,没有什么可以限制你。原生WebView早在4.4版本的时候就支持WebRTC。所以只要你不打过时安卓设备市场的主意的话,你就不会遇到任何困难。如果你没有其他选择必须做一个基于WebRTC的iOS应用,你就应该考虑一下混合应用。
WebRTC混合应用的强势及弱势之处
如果你准备搭建一个混合应用,你可以依赖像JavaScript,CSS,和HTML这类的网络技术。这样的应用可以被看做一个运行在网页浏览器上的典型HTML 5应用。从用户的角度来看,混合和原生WebRTC应用并没有多大区别。区别可能会在高负载的情况下显现出来。原因就是混合应用必须使用对于一个特定平台来说并不是最佳的代码。除此之外,原生应用不提供硬件的完整权限。想要实现对设备权限的获取,以及提供与原生应用相似的用户体验度,就需要依靠开发者所搭建的框架了。好处是原生应用可以在不同的平台上重新使用一段代码。如果你的目标用户使用的是不同的浏览器和操作系统的话,你不需要聘请好几组WebRTC开发人员来实现目标。因为不需要清楚某种特定浏览器的规范,所以混合应用开发起来会更快,更省钱。
混合应用开起来可能像是原生应用的廉价版本。混合应用的运行速度更慢,不能使用移动设备的全部权限,并且只是一个装作是原生应用的HTML 5应用。但是众多的混合应用给这种选择拉票不少,像印象笔记,苹果商店,Gmail,Uber和其他很多软件都是混合应用。你肯定用过上述软件中的至少一款,并且你可能从未遇到严重的卡顿和错误。我们想说的是,高性能并不是有些软件的必不可少的要求。对于WebRTC来说,获取特定硬件的权限也不是必需的。所以,在绝大多数情况下,用户根本注意不到原生和混合WebRTC应用之间的差别。
总结
总而言之,当我们必须在原生和混合应用中做出一个选择的话,事情会变得比较简单。如果你想要高性能的话,那么就选原生应用,但是要准备好服务一些额外的时间和资源来针对每个目标平台编写代码。而混合开发过程是一个退而求其次的解决方案,如果你的应用不需要超高的性能的话,这会大幅减少你的研发开销。
但是对于WebRTC应用来说,上一段所说的一些事情就变得无关紧要了。这类应用通常都不需要先进的性能。混合应用能提供的硬件权限对于开发一个完整功能的解决方案来说就足够了。但是,如果我们将WebRTC作为核心技术来使用的话,这些事情是你应该技术的。WebRTC直到最近才被苹果所支持。苹果宣布会在Safari 11版本中加入WebRTC技术。但是此时此刻我们不清湖具体哪些特性会被实施。在本文章的撰写时间,根据应用商店(App Store)的数据,14%的用户还是使用老旧的操作系统版本。很难预计未来这个数据会如何变化。但是如果你的目标用户中有很大一部分使用的是苹果的产品,你最好确认一下他们使用的是Safari 11或者更新的版本。