【发布时间】:2014-10-15 03:24:40
【问题描述】:
当我下载一个应用程序时,是否可以判断该应用程序是通过跨平台解决方案而不是原生解决方案制作的?
本机和(我不知道如何称呼它)内置 Web UI 在性能方面是否存在明显差异?
【问题讨论】:
-
我认为你不能100%地看一眼就确定
标签: android ios cordova titanium coronasdk
当我下载一个应用程序时,是否可以判断该应用程序是通过跨平台解决方案而不是原生解决方案制作的?
本机和(我不知道如何称呼它)内置 Web UI 在性能方面是否存在明显差异?
【问题讨论】:
标签: android ios cordova titanium coronasdk
您可以使用任何APK 或IPA 文件并将文件扩展名更改为ZIP。从那里你可以解压缩包并寻找混合应用程序的迹象。最值得注意的是一个 www 文件夹,其中包含许多 JS/HTML/CSS 文件。
如果您找不到应用是本机而不是混合或基于 HTML5 的合理假设。
【讨论】:
本机应用程序是使用设备使用本机语言编码的应用程序,例如 iOS 的 Objective C。
移动网络应用程序是使用网络技术(HTML、CSS、JavaScript)通过使用像 Sencha Touch 这样的框架创建的。
混合应用程序介于这两者之间。例如,使用 PhoneGap 的 Sencha Touch 应用程序将被视为混合应用程序。我们正在使用网络技术,但 PhoneGap 让我们能够访问我们原本无法访问的原生 API——因此它是原生和网络的混合体。
本机应用程序
专业版:
a) 本机应用程序具有最佳性能,并使用最后可用的硬件资源来提高性能。
b) 应用程序将在离线模式下工作。
c) 应用程序通过平台应用程序商店分发,为潜在用户提供更好的可见性。
d) 您的应用程序将可以访问该平台上的最新 API 版本。
e) 应用程序以平台支持的语言构建,因此可以访问 IDE,这些 IDE 提供了快速开发和调试项目的最佳工具。 iOS 应用程序可以在 XCode 上使用 Objective C 构建,它具有调试、设计界面和使用 Instruments 等检查性能的所有工具。
f) Linkedin 是一个从 HTML5 转移到 Native 的例子。
g) 还有脸书,它掉头了。
缺点:
a)您需要巨额预算来支持所有具有可观市场的平台。您将需要维护多个团队,每个要支持的平台一个团队。所以基本上每个团队都会在他们的平台上复制相同的功能。
b) 用户需要下载应用程序更新,因此如果设计不当,您最终会在 Web 服务器上维护多个版本的应用程序。
c) 开发人员的可用性是另一个问题。当目标 C 在 iPhone 发布后突然复苏时,没有足够的优秀开发者做好准备。可能是开发人员可以接受培训,但对于中小型公司来说是不可行的,即使在可以进行培训的大公司中,受过培训的开发人员也不会达到他们在技术方面的专业水平他们正在努力。
HTML 5 移动网络应用:-
专业版:
a) HTML5 移动应用程序类似于普通的网络应用程序,不同之处在于它们是为在较小的屏幕上工作而设计的。
b) 这些应用程序的分发非常容易。您只需在 Web 服务器上部署 Web 应用程序,用户就可以通过浏览器访问它。
c) 有一些非常好的移动 UI 框架,例如 JQuery Mobile、Sencha Touch,当然还有我最喜欢的 mgwt,它为移动设备提供了几个小部件。
d) 这些应用程序可能可以覆盖所有平台,因为它们在浏览器上运行,并且所有现代智能手机都有浏览器。
e) 这些应用程序的开发和测试更容易,因为它们类似于您拥有工具支持的普通 Web 应用程序。
缺点:
f) 这些应用程序无法访问本机功能。
g) 性能与原生应用不匹配。
h) 这些应用程序无法离线运行。实际上在离线模式下工作,但这与原生应用程序提供的不匹配。
混合应用:-
专业版:
a) 混合应用程序的开发速度更快,因为大部分开发都是跨平台的 Web 技术,并且仅在需要访问本机层时才进行非常少量的本机编码。所以只需要为其他平台重新实现一小部分代码。这样可以节省开发时间和成本,您可以专注于开发新功能,而不是在每个平台上复制相同的功能。
b) 您已经接近“一次编写,随处运行”,这是使 Java 成为主导力量的策略。
c) 与原生应用程序相比,构建混合应用程序的工具还不够成熟。情况正在迅速变化,很快就会有一些支持跨平台混合应用程序开发的好工具。
d) 这些应用程序可以部署在特定平台的应用程序商店中。
e) 混合应用提供原生应用和 HTML5 Web 应用的优劣。
f) 他们可以访问本地层。
g) 这些应用程序可以在离线模式下工作。
h) Netflix 是一个很酷的例子,它针对所有设备运行相同的代码库。
i) Gartner 预测,到 2016 年,超过 50% 的部署应用程序将是混合应用程序。
缺点:
a) 混合应用程序,即使是原生打包的,也不是原生应用程序。它们在平台 web 引擎上执行,对于 Android 和 iOS,Webkit 是用户和应用程序之间的另一层,因此性能无法与原生应用程序相提并论。
b) 由于混合应用程序通常是使用标准 Web 技术构建的,因此将有大量开发人员可供开发。本机应用程序并非如此。
如果您正在构建生产力应用程序、实用程序应用程序或企业应用程序,混合应用程序适合您。
如果您正在构建游戏或照片、视频相关的应用程序,那么原生应用程序是您的最佳选择。
如果您正在构建需要实时工作、不需要访问原生层且不强调性能的应用程序,那么 html5 移动网络应用程序是您的最佳选择。
因此,需要根据您正在构建的应用程序类型、开发成本和可以提供的时间来做出决定。
【讨论】:
您应该能够通过玩该应用程序来判断。跨平台解决方案的外观和感觉就像一个网页。它们通常很迟钝并且可能没有响应(如网页)。在页面之间导航需要时间来加载并且经常使用微调器。原生应用程序通常可以即时转换,或者至少有动画。 Android 有诸如上下文菜单和操作栏之类的东西,这些东西通常不被 Web 类型实现使用。
【讨论】: