跨平台移动应用解决方案

时间:2012-03-18 06:39:49

标签: database mobile cordova cross-platform

我正在开发一个可以在移动设备上运行的移动应用程序(使用Android,iOS,WP7等操作系统)。此应用程序将从在线数据库获取数据,然后将它们存储到设备中的本地数据库,我可以使用数据进行CRUD。有三个想法:

  1. 我将创建一个web服务来处理主机上的数据库,并使用一些跨平台框架来构建应用程序,然后连接到webservice以获取数据并将数据发送到服务器。的问题:

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

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

  4. 谢谢

3 个答案:

答案 0 :(得分:3)

How to sync between local database and database on host?

要进行同步,您可以查看开源项目OpenMobster的同步服务。您可以执行所有类型的同步操作

  • 双向
  • 单向客户
  • 单向设备
  • 在启动。

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

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

支持PhoneGap,您可以灵活地使用HTML5和JavaScript等网络技术构建应用程序,并使用OpenMobster为本地数据创建同步。

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

如果您对框架有更多疑问,请与我们联系

以下是开源项目的链接:http://openmobster.googlecode.com

祝你好运!!!

答案 1 :(得分:2)

一些建议:

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

答案 2 :(得分:2)

  

我正在开发一个可以在移动设备上运行的移动应用程序   设备(使用Android,iOS,WP7等操作系统)。这个应用程序将获得   来自在线数据库的数据然后将它们存储到设备中的本地数   我可以用数据做CRUD

<强>尼斯!!!

  

我应该使用哪种技术来创建Web服务? (REST式/ SOAP ...?)

我会选择 REST 服务。

REST在以下情况下具有优势:

  • 您有一组要操作的资源。
  • 您希望支持资源之间的导航。
  • 您需要可扩展性。

SOAP具有以下优势:

  • 您希望发布Web服务描述(使用WSDL)。 WSDL 2也可以描述RESTful Web服务。 WADL是RESTDL Web服务的WSDL的替代方案。
  • 您希望使用依赖于使用SOAP标头的安全性等,或者在请求中添加和删除数据的某种类似机制。
  • 您需要更好的工具支持。
  • 您需要经过测试的平台互操作性。
  

哪种类型的返回数据易于处理? (XML / JSON ...?)

我个人选择 XML 它不是一个易于处理的标准。它关于移动应用程序的性能。 JSON通常比XML文档小,并且可以更快地使用.JSON可以更有效地解析,因为它可以解析为JavaScript,内置的eval()函数将为您做。

  

如何在主机上的本地数据库和数据库之间进行同步?

创建一个包含计时器并在后台运行的服务。每隔一段时间调用一次REST服务以获取最新值。但由于这是一种民意调查,因此效率不高,性能较差。其他方法将使用PUSH通知。只要服务器端有任何更改,就向客户端(移动)发送推送通知,从而执行本地数据库操作。

  

iOS,Android,WP7 ...接受在应用程序中加载外部URL?

我不明白这一点。你究竟想要什么?

  

我应该使用单页应用技术吗?

单页技术非常好。但它取决于您的业务。如果可以,则使用它.Else创建不同的HTML页面。

  

我将使用跨平台框架创建一个应用程序,它将与本地数据库一起使用。我只是处理本地数据库和主机数据库之间的同步。问题:这是最好的数据库和最佳框架吗?

选择数据库将取决于选择跨平台移动框架。 Phonegap 正是您所需要的。数据库将是 sqlite 。 Phonegap提供存储API,因此您可以轻松访问不同移动平台的数据库。