跨平台移动应用解决方案

4
我正在开发一款可以在移动设备上运行的应用程序(如Android、iOS、WP7等操作系统)。该应用程序将从在线数据库获取数据,然后将它们存储到设备中的本地数据库,我可以通过数据执行CRUD。有三种想法:
  1. 我将创建一个Web服务来处理主机上的数据库,并使用一些跨平台框架构建一个应用程序,然后连接到Web服务,以便获取和放置数据到服务器。问题:

    • 应该使用哪种技术创建Web服务?(RESTful/SOAP…?)
    • 哪种类型的返回数据易于处理?(XML/JSON…?)
    • 如何在本地数据库和主机数据库之间同步?
  2. 我将制作一个应用程序来加载外部URL并构建一个网站(具有我需要使用数据库的所有功能)。问题:

    • iOS、Android、WP7…接受在应用程序中加载外部URL吗?
    • 如何像我的第一个想法那样同步数据?
    • 应该使用单页面应用程序技术吗?
  3. 我将使用跨平台框架制作一个应用程序,它将与本地数据库一起工作。我只需处理本地数据库和主机数据库之间的同步。问题:哪种是最好的数据库和最好的框架来完成这个?

谢谢
3个回答

3
How to sync between local database and database on host?

为了同步,你可以看一下开源项目OpenMobster的同步服务。你可以进行各种类型的同步操作:

  • 双向同步
  • 单向客户端同步
  • 单向设备同步
  • 启动同步

此外,所有修改都会被自动跟踪并与云同步。当网络连接断开时,您可以离线使用应用程序。它会跟踪任何更改,并在连接恢复时自动在后台将其与云同步。此外,当在云中创建新数据时,它会使用推送通知将其自动与本地数据库同步。

目前仅支持Android和iOS上的原生开发。然而,下一个版本2.2-M8(三月底)将支持与PhoneGap的端到端集成在Android上,2.2-M9(四月底)将添加iOS。

对于PhoneGap的支持将为您提供使用诸如HTML5和JavaScript之类的Web技术构建应用程序以及使用OpenMobster同步本地数据的灵活性。

如果您想纯粹使用原生,那么您仍然可以使用Sync服务并将本地数据库与远程数据库同步。

如果您对该框架有更多问题,请告诉我。

这是一个开源项目的链接:http://openmobster.googlecode.com

祝你好运!


2

一些建议:

  • 如果您计划让您的移动应用程序与服务器交换数据,我强烈建议您使用RESTful服务。与SOAP服务相关的XML负荷可能会使您的手机和网络出现问题。
  • 返回的数据可以是JSON或XML。例如,在Blackberry应用程序中,我更喜欢XML,因为它在SDK中包含了支持。
  • 有三种类型的移动应用程序:Web应用程序(使用HTML / JavaScript构建并通过浏览器访问),本机应用程序(安装在设备上并使用Java / Objective-C或其他语言编写),以及混合应用程序(安装在设备上但使用HTML / JavaScript编码,并且可以访问操作系统的某些功能)。您的URL加载类型听起来像混合方法(不太确定),因此您可以使用PhoneGap构建该类型的应用程序。
  • 混合和Web应用程序使用手机浏览器的功能来管理HTML / JavaScript。现在的设备配备了非常强大的基于WebKIt的浏览器,因此单页面模式将无需任何问题。尽管如此,这种方法对于移动应用程序设计来说已经有点陈旧了。
  • 我不认为您的应用程序需要本地数据库,您可以简单地在服务器上处理所有数据,并通过手机上的RESTful服务访问它。

1
我知道这是一个老问题,但现在我们有一些好的解决方案可用。我们正在使用Couchbase Mobile作为我们应用程序的数据库 - 复制基本上就像双向同步,并且需要非常少的代码。我还会看看第三方数据服务,如Firebase或Parse。大多数这些服务都使用带有JSON的RESTful API。远离XML和SOAP,这些是企业级Java开发人员经常推荐的重量级解决方案 :-) - Eno

2
我正在开发一个可以在移动设备上运行的移动应用程序(使用Android、iOS、WP7等操作系统)。该应用程序将从在线数据库获取数据,然后将其存储到设备中的本地数据库,并且我可以对数据进行CRUD操作。
很好!
我应该使用哪种技术来创建Web服务?(RESTful / SOAP…?)
我会选择REST服务。
REST具有以下优点:
- 你有一组要操作的资源。 - 你想要支持资源之间的导航。 - 你需要可扩展性。
SOAP具有以下优点:
- 你想发布Web服务描述(使用WSDL)。 WSDL2同样可以描述RESTful Web服务。WADL是RESTful Web服务的替代品。 - 你想使用依赖于SOAP头部或一些类似机制的安全性等,其中数据被添加到请求并从请求中删除。 - 你想获得更好的工具支持。 - 你想要经过测试的平台互操作性。
返回哪种类型的数据更易于处理?(XML / JSON…?)
我个人选择XML,这不是易于处理的标准。这关乎移动应用程序的性能。JSON通常比XML文档小,因此更快速。JSON可以更有效地解析,因为它可以解析为JavaScript,内置的eval()函数可以为您执行此操作。
如何在本地数据库和主机数据库之间进行同步?
创建一个包含计时器并在后台运行的服务。以间隔调用REST服务以获取最新值。但由于这是一种轮询的方式,因此效率不高且性能较差。另一种方法是使用PUSH通知。只要服务器端有任何更改,则向客户端(移动设备)发送推送通知,然后执行本地数据库操作。
iOS、Android、WP7…是否接受在应用程序中加载外部URL?
我不明白这一点。你想要什么?
我应该使用单页应用程序技术吗?
单页技术非常好。但这将取决于您的业务。如果可能的话,请使用它。否则,请创建不同的HTML页面。
我将使用跨平台框架制作一个应用程序,并与本地数据库一起使用。我仅需要处理本地数据库和主机数据库之间的同步。问题是:哪个是最好的数据库和最好的框架来做到这一点?
选择数据库将取决于选择跨平台移动框架。Phonegap正是你所需要的。数据库将是SQLite。Phonegap提供存储API,因此可以轻松访问不同移动平台的数据库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接