2013-05-15 44 views
0

我有一個問題很難在論壇上提出或回答。最近我一直負責設計(和實現)一個可以在android操作系統上運行的應用程序。由於我來自.net世界,我決定使用Xamarin.Android框架(以前稱爲android的mono)。我對目標框架做了一些研究,並提出了一個粗略的設計。但是由於我是Android新手,我不確定我的設計是否是最好的(甚至可以接受)。我會盡可能簡短地描述我的描述。 該應用程序的基本要求是:Xamarin.Android應用程序體系結構

  • 應用程序必須能夠爲不同的用戶提供不同的GUI。
  • 應用程序必須顯示從服務器獲取的數據。
  • 應用程序必須爲用戶提供修改服務器數據的方法。
  • 當其中一個用戶修改服務器數據時,必須通知其他用戶。

根據我的研究,我想出了以下內容:

要爲每個用戶提供定製GUI,比檢索這比使用到服務器的XML文件的應用程序會先驗證用戶以編程方式構建GUI。由於我必須支持設備旋轉和不同的設備,這意味着很多工作,所以對此的任何想法都非常受歡迎。

我認爲應用程序與服務器通信的最佳方式是通過調用基於REST的服務(GET來檢索初始數據,並通過PUT更新服務器狀態)。

當服務器狀態將由其中一個用戶修改時,所有其他用戶將使用通知(Google雲消息傳遞或替換舊C2DM的GCM)進行通知。由於大部分活動都依賴通知來顯示更新,我認爲實現這一點的最佳方式是創建一個android服務。該服務將從應用程序開始,並會在應用程序運行。當服務開始時,它將自行註冊到GCM,並使用廣播通知當前活動有所變化。

我爲一篇長文章道歉,但我試圖儘可能簡短。正如我所說,這是一個非常粗糙的設計,所以任何想法,想法或批評都會受到歡迎。

UROS

回答

0

我會更傾向於輸送/處理的GUI配置爲JSON。

REST API似乎是合乎邏輯的選擇 - 我已經使用RestSharp爲客戶端做這些類型的通信,我很滿意它。

GCM是一個快速設置,所以這是一個不錯的選擇。您也可以考慮根據您的需要定製長輪詢解決方案,但GCM可以更輕鬆。

PushSharp可能值得一看,如果你需要跨平臺的推送通知,但如果你不這樣做,編寫你自己的GCM服務器應用程序就像摔倒了 - 我有一個從頭開始的例子, 。

+0

感謝您的回答。我打算使用PushSharp庫,因爲應用程序很有可能會在iPhone上運行,所以我將使用相同的庫來通知這些客戶端。我會看看RestSharp庫。你可以指點我如何使用xml/json實現GUI生成的任何示例。 –

+0

我想你會有一個JSON/XML文件每個用戶和活動,使用這樣的技術創建任何動態內容:http://stackoverflow.com/questions/6216547/android-dynamically-add-views-into-查看 – manadart

+0

此回答有用嗎? ;) – manadart