【问题标题】:Cross-Platform Mobile Application Solution跨平台移动应用解决方案
【发布时间】:2012-03-18 06:39:48
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: database mobile cordova cross-platform


    【解决方案1】:
    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 等 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-Loading 类型听起来像是一种混合方法(不太确定),因此您可以使用 PhoneGap 来构建这种类型的应用程序。
      • 混合和 Web 应用程序使用手机浏览器的功能来管理 HTML/JavaScript。现在这些设备配备了非常强大的基于 WebKIt 的浏览器,因此单页模式可以毫无问题地工作。虽然,它是一种移动应用设计的穿戴方式。
      • 我认为您的应用程序不需要本地数据库,您可以简单地处理服务器中的所有数据并通过手机上的 RESTful Services 访问它。

      【讨论】:

      • 我知道这是一个老问题,但我们现在有一些很好的解决方案。我们将 Couchbase Mobile 用于我们的应用程序 - 复制基本上就像双向同步,只需要很少的代码。我还会研究 Firebase 或 Parse 等第三方数据服务。其中大多数使用带有 JSON 的 RESTful API。远离 XML 和 SOAP,它们是企业 Java 开发人员经常推荐的重量级解决方案 :-)
      【解决方案3】:

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

      很好!!!

      我应该使用哪种技术来创建网络服务? (RESTful/SOAP...?)

      我会选择 REST 服务。

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

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

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

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

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

      我个人倾向于 XML 它不是一个易于处理的标准。它与移动应用程序的性能有关。 JSON 通常比 XML 文档小,使用起来更快。JSON 可以被更有效地解析,因为它可以被解析为 JavaScript,内置的 eval() 函数将为您完成。

      本地数据库和主机上的数据库如何同步?

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

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

      我没明白这一点。你到底想要什么?

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

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

      我将使用跨平台框架制作一个应用程序,它将与本地数据库一起使用。我只是处理本地数据库和主机数据库之间的同步。问题:执行此操作的最佳数据库和最佳框架是哪个?

      数据库的选择取决于跨平台移动框架的选择。Phonegap正是您所需要的。并且数据库将是 sqlite。 Phonegap提供API存储,方便你访问不同移动平台的数据库。

      【讨论】:

        猜你喜欢
        • 2011-08-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多