Phonegap / Cordova跨平台架构和单一代码库

时间:2014-10-15 16:29:06

标签: cordova hybrid-mobile-app multi-device-hybrid-apps

我正在使用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应用程序是一种更聪明的方法吗?在这里,我唯一真正的问题是为客户维护三个代码库的额外努力。

我已经完成了很多阅读,虽然这些意见似乎相当分散,但没有人关注使用瘦客户端维护多个代码库的复杂性与使用一个代码库处理样式的编码开销多个平台。

感谢您的意见,

2 个答案:

答案 0 :(得分:1)

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

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

我们已经评估了许多方法,最后决定使用PhoneGap(Cordova之前的名字)。我们使用了GPS,数据库,相机(视频/照片),录音,指南针等原生功能。

我们使用另一个基于JS的库来创建外观"更本土的#34;。

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

那样的东西
if (context.iPhone) { doThis(); } else { doThat(); }

我的代码很深。

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

我们遇到的主要问题是应用程序,不是原生的。尽管如此,你仍然拥有UI滞后,而不是原生的外观。该应用程序仍然相当不错,但与数百万市场领导者的类似应用程序相比,你可以真正区分它们。但是,我们的应用程序在图形(GIS /映射客户端)上相当沉重。

如果你做出错误的选择,这是一个非常难的问题,可能会产生非常严重的后果。如果你的应用必须是性感的,那么在某些时候你可能会发现自己正在抨击盒装HTML5应用的极限。

如果您的应用程序根据定义不那么闪耀(让我们采用表格填充到保存在数据库中的企业世界),那么您可能永远不会达到极限。< / p>

你问&#34;它是否聪明&#34;。如果不了解您尝试智能优化的目标函数,则无法回答这个问题。你想减少成本吗?缩短产品上市时间?然后Cordova(或其他混合式tehchology)可能是短期战术决策的一个非常好的选择。你在计划长期的事吗?强调质量?那么你可能希望尽早投入学习本土开发。

从我在你的问题中看到的,我个人,我试一试。构建一些小的,功能很少但可用的东西,看看它是如何工作的。您将了解该技术(这并不太难),并且能够考虑下一步手中有什么东西。我知道人们这样做的情况,有很多结果 - 坚持使用PhoneGap,转换到另一种技术,以及为iOS和Android筹集更多资金并使用本机应用程序。

祝你好运,祝福。

答案 1 :(得分:1)

几个月后......我对应用程序的开发很深入,而且它正在游泳。我最终将Cordova与Ionic-Framework结合使用,它完全符合我的要求。离子处理原生外观和在没有大量额外工作的情况下感觉干净利落,科多瓦的一切似乎都很顺利。更好......通过5分钟的额外工作,我可以轻松地将所有代码重新用于可从任何浏览器访问的移动Web应用程序。强烈推荐

离子框架