0

我正在使用 Web Api 作为后端和 AngularJS 在客户端构建产品,预计将在几个月内推出。所有逻辑都与客户端很好地分离。

作为唯一的开发人员(以及营销、销售等),我非常热衷于最大限度地提高效率,因此希望 Cordova 能够处理移动应用程序方面的事情。我从来没有做过任何 iOs/Android 开发,但是我很快就学会了新的语言和环境,所以我不认为这是我进入的主要障碍,但我更关心重复工作。

我的问题是这样的;以通过 Cordova 拥有单一代码库为目的的小型应用程序是否是正确的方法?我担心必须处理 3 种样式来处理 iOS/Android 菜单以及 Web 和移动应用程序之间的细微 UI 差异。我是否只是在代码中乱扔一大堆 if(iOS) menu=a, elseif(Android) menu=b, else menu=c ?

或者,尝试让客户端尽可能精简并编写原生 Android/iOS 应用程序会是一种更聪明的方法吗?在这里,我唯一真正的问题是为客户维护三个代码库的额外工作。

我已经阅读了很多资料,尽管意见似乎存在很大分歧,但没有人关注使用瘦客户端维护多个代码库的复杂性与跨多个平台使用一个代码库处理样式的编码开销。

感谢您的输入,

4

2 回答 2

1

几个月后...我正在深入开发应用程序,并且进展顺利。我最终将 Cordova 与 Ionic-Framework 一起使用,它完全符合我的要求。Ionic 无需大量额外工作即可干净地处理本机外观和感觉,而且 Cordova 似乎一切顺利。更好的是……通过 5 分钟的额外工作,我可以轻松地将我的所有代码重用于可从任何浏览器访问的移动 Web 应用程序。强烈推荐

离子框架

于 2015-02-04T19:42:43.450 回答
1

这是非常基于意见的,因此很快就会关闭。

几年前,我在一家软件公司工作,该公司在网络和桌面版本中有一些强大的应用程序。大约在 2011 年,很明显我们也必须解决移动市场问题。这家公司很小,所以我们当时负担不起原生多渠道开发。我们的主要能力是 Java、JSF 和 JavaScript(使列表非常简短)。此外,我们使用的 JS 技术很少能很好地支持移动设备。

我们评估了多种方法,最终决定使用 PhoneGap(Cordova 之前的名称)。我们使用了本地功能,如 GPS、数据库、相机(视频/照片)、录音、指南针等。

我们使用另一个基于 JS 的库来使外观“更加原生”。

据我所知,我们从来没有像

if (context.iPhone) { doThis(); } else { doThat(); }

我对代码非常深入。

我们为 iOS 和 Android 并行编写了一些我们自己的 Cordova 插件(我认为它正在解压缩)。他们使用相同的 JS API。

我们遇到的主要问题是该应用程序不是原生的。尽管有一切,但你有 UI 滞后,而不是原生的外观和感觉。该应用程序仍然相当不错,但与数百万市场领导者的类似应用程序相比,您真的可以分辨出差异。但是,我们的应用程序在图形(GIS/地图客户端)上非常繁重。

所以这是一个非常困难的问题,如果你做出错误的选择,可能会产生非常严重的后果。如果您的应用程序必须“性感”,那么在某些时候您可能会发现自己正在与盒装 HTML5 应用程序的功能极限相撞。

如果您的应用程序按照定义是不那么闪亮的(让我们以表格到填写到保存在数据库中的企业世界为例),那么您可能永远不会达到极限。

你问“它聪明吗”。如果不知道您要智能优化的目标函数,这是不可能回答的。您是否正在努力降低成本?缩短上市时间?那么 Cordova(或其他混合技术)可能是短期战术决策的一个非常好的选择。你有长远的打算吗?强调质量?然后,您可能想尽早投资学习原生开发。

从我在您的问题中读到的内容,就我个人而言,我会尝试一下。构建一些小东西,功能很少但可用,看看它是如何工作的。您将了解这项技术(这不是太难),并能够考虑手头有东西的下一步。我知道人们这样做的案例,结果很多——留在 PhoneGap,切换到另一种技术,以及筹集更多资金并为 iOS 和 Android 开发原生应用程序。

祝你好运和最良好的祝愿。

于 2014-10-15T17:00:14.427 回答