移动应用和web应用的关系
我们已经决定开发移动应用程序,但是什么类型的应用程序呢?
开发本机应用程序,移动网络应用程序或混合应用程序的合法利弊一直在进行着争论。
这些类型的应用之间有什么区别?
本机应用是使用相应平台支持的开发工具和语言(iOS应用的XCode和Objective C,Android的Eclipse,Android Studio和Java,Windows的Visual Studio和C#)构建的,因此只能在其目标平台上运行。
HTML5应用程序是跨平台的移动应用程序,可在多种设备上运行,因为它们大多在浏览器上运行。 开发人员可以使用标准的Web技术HTML5,Javascript和CSS编写复杂的应用程序。
混合应用程序是使用HTML5,javascript和CSS开发的应用程序,但可在设备上的Webview容器中运行,因此这些应用程序是本地打包的,因此也可以访问操作系统的本机API。
像在所有语言战争中一样,所有问题都没有一个答案。
这取决于您的应用程序所提供的功能,用户的期望以及您的核心开发优势是什么。
本机应用
优点:
- 本机应用程序具有最佳性能,并使用最后可用的硬件资源来提高性能。
- 应用程序将在离线模式下工作。
- 通过平台App Store分发应用程序,从而为潜在用户提供更好的可见性。
- 您的应用程序可以访问该平台上发布的最新API。
- 这些应用程序以平台支持的语言构建,因此可以访问IDE,这些IDE提供了最佳的工具来快速开发和调试项目。 可以在XCode的目标C中构建iOS应用,该工具具有调试,设计界面以及使用Instruments等检查性能的所有工具。
- Linkedin是从HTML5转换为Native的一个示例。
- 还有Facebook,它掉头了。
缺点
- 您需要庞大的预算来支持所有具有可观市场的平台。 您将需要维护多个团队,每个要支持的平台一个团队。 因此,基本上每个团队都将在其平台上复制相同的功能。
- 用户需要下载应用程序更新,因此,如果设计不正确,最终将在Web服务器上维护多个版本的应用程序。
- 开发人员是否有能力增加是另一个问题。 当iPhone发布后目标C突然恢复时,没有足够的优秀开发人员准备就绪。 也许可以对开发人员进行培训,但是对于中小型公司而言,甚至在可行的大型公司中,这都是不可行的,受过培训的开发人员的技术水平不会达到与技术人员相同的水平。他们正在努力。
HTML 5移动网络应用
专业版
- HTML5移动应用程序与普通的Web应用程序类似,不同之处在于它们被设计为在较小的屏幕上运行。
- 这些应用程序的分发非常容易。 您只需将Web应用程序部署在Web服务器上,用户就可以从其浏览器访问它。
- 有一些非常好的移动UI框架,例如JQuery Mobile,Sencha Touch,当然还有我最喜欢的mgwt,它提供了一些用于移动的小部件。
- 这些应用程序可能运行在浏览器上,并且所有现代智能手机都具有浏览器,因此可能会覆盖所有平台。
- 这些应用程序的开发和测试更加容易,因为它们类似于具有工具支持的普通Web应用程序。
缺点
- 这些应用无法访问本机功能。
- 性能与本机应用不匹配。
- 这些应用无法离线使用。 实际上可以在脱机模式下工作,但是与本机应用程序提供的功能不匹配。
混合应用
优点:
- 混合应用程序的开发速度更快,因为大多数开发工作都是通过跨平台的Web技术完成的,并且仅在需要访问本机层时才进行少量本机编码。 因此,只需要为其他平台重新实现一小部分代码即可,从而节省了开发时间和成本,您可以专注于开发新功能,而不必在每个平台上复制相同的功能。
- 您将接近“一次编写,随处运行”的策略,该策略使Java成为了主导力量。
- 与本地应用程序相比,用于构建混合应用程序的工具还不够成熟。 这种情况正在Swift变化,很快就会有一些好的工具支持跨平台混合应用程序的开发。
- 这些应用程序可以部署在特定于平台的应用程序商店中。
- 混合应用程序同时提供本机应用程序和HTML5 Web应用程序的优缺点。
- 他们可以访问本机层。
- 这些应用可以在离线模式下工作。
- Netflix是一个很酷的示例,它针对所有设备运行相同的代码库。
- Gartner预测,到2016年,部署的应用程序中有50%以上将是混合应用程序。
http://www.gartner.com/newsroom/id/2324917
缺点:
- 即使是本地打包的混合应用程序也不是本地应用程序。 它们在平台Web引擎(在Android和iOS上为Webkit)上执行,这是用户和应用程序之间的另一层,因此性能无法与本机应用程序匹配。
- 由于混合应用程序通常是使用标准的网络技术构建的,因此会有大量的开发人员可以进行扩展。 本机应用程序不是这种情况。
如果要构建生产力应用程序,实用程序应用程序或企业应用程序,则混合应用程序适合您。
如果您要构建游戏或照片,视频相关的应用程序,那么本机应用程序是您的最佳选择。
如果您要构建需要实时运行的应用程序,不需要访问本机层并且不影响性能,那么html5移动Web应用程序是您的不二之选。
因此,需要根据要构建的应用程序类型,可以提供的开发成本和时间来做出决定。
翻译自: https://www.javacodegeeks.com/2013/12/native-vs-mobile-web-vs-hybrid-applications.html
移动应用和web应用的关系