2012-03-18 138 views
4

我正在開發一款可以在移動設備上運行的移動應用程序(帶有像Android,iOS,WP7等操作系統)。這個應用程序將從在線數據庫中獲取數據,然後將它們存儲到設備中的本地數據庫中,並且可以對數據執行CRUD。有三種思路:跨平臺移動應用程序解決方案

  1. 我將創建一個web服務與數據庫來處理主機,並使用一些跨平臺的框架來構建應用程序,然後連接到Web服務,以獲取和放置數據服務器。問題:

    • 我應該使用哪種技術來創建webservice? (RESTful/SOAP ...?)
    • 哪種類型的返回數據易於處理? (XML/JSON ...?)
    • 如何同步主機上的本地數據庫和數據庫?
  2. 我會做一個應用程序加載一個外部URL和建立一個網站(具有我需要使用數據庫的所有功能)。問題:

    • iOS,Android,WP7 ...接受在應用程序中加載外部URL?
    • 如何同步數據,如我的第一個想法?
    • 我應該使用單頁面應用程序技術嗎?
  3. 我將使用跨平臺框架製作應用程序,它將與本地數據庫一起工作。我只是處理本地數據庫和主機數據庫之間的同步。問題:哪一個是最好的數據庫和最好的框架?

謝謝

回答

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會給你建立使用Web技術如HTML5應用程序的靈活性,並使用OpenMobster的JavaScript以及同步您的本地數據。

如果你想要去的純天然的,那麼你仍然可以使用同步服務與遠程數據庫同步的本地數據庫。

讓我知道如果您有任何關於框架

更多的問題這裏是一個鏈接到開源項目: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 Services訪問它。
+1

我知道這是一個老問題,但我們現在有一些很好的解決方案。我們爲我們的應用程序使用Couchbase Mobile - 複製基本上像雙向同步,只需很少的代碼。我還會看看Firebase或Parse等第三方數據服務。其中大部分使用帶有JSON的RESTful API。遠離XML和SOAP,它們是企業級Java開發人員經常推薦的重量級解決方案:-) – Eno 2015-04-15 19:16:13

2

我正在開發可在移動 設備上運行(與像Android,iOS設備WP7 ... OS)的移動應用程序。此應用程序將來自在線數據庫獲得 數據然後將它們存儲到本地數據庫中的設備 ,我可以用數據

尼斯做CRUD!

我應該使用哪種技術來創建webservice? (REST風格/ SOAP ......?)

我會去REST服務。

  • 您有一組要操縱的資源:當

    REST具有優勢。

  • 你想支持資源之間的導航。
  • 您需要可擴展性。

    • 要發佈Web服務描述(使用WSDL):當

    SOAP具有優勢。 WSDL 2也可以描述RESTful Web服務。 WADL是RESTful Web服務的WSDL的替代方案。

  • 您想要使用依賴於使用SOAP標頭或其他類似機制的安全性,其中數據是從請求中添加和刪除的。
  • 你想要更好的工具支持。
  • 您希望測試平臺的互操作性。

哪種類型的返回數據容易處理? (XML/JSON ...?)

我親自去XML 它不是其中標準很容易關於移動應用的性能handle.Its。 JSON通常比XML文檔小,並且可以更快地處理.JSON可以更高效地進行分析,因爲它可以被解析爲JavaScript,而內置的eval()函數將爲您執行該JavaScript。

如何同步主機上的本地數據庫和數據庫?

創建一個包含計時器並在後臺運行的服務。定期調用REST服務以獲取最新值。但由於這是一種輪詢類型的事情,所以它效率不高,性能也較差。其他方法將使用PUSH通知。只要服務器端發生任何更改,就會向客戶端(移動設備)發送推送通知,從而執行本地數據庫操作。

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

我不明白你真正想要這個point.What?

我應該使用單頁應用技術?

單頁技術是非常好的,但它取決於您的業務。如果有可能,那麼使用它。不要創建不同的HTML頁面。

我將使用跨平臺框架製作應用程序,它將與本地數據庫一起工作。我只是處理本地數據庫和主機數據庫之間的同步。問題:哪一個是最好的數據庫和最好的框架?

選擇數據庫將取決於選擇跨平臺移動框架。 Phonegap正是你所需要的。數據庫將是sqlite。 Phonegap爲存儲提供API,因此您可以輕鬆訪問不同移動平臺的數據庫。

相關問題