Architecture Android应用程序架构

Architecture Android应用程序架构,architecture,xamarin.android,Architecture,Xamarin.android,我有一个在论坛上很难被问到或回答的问题。最近,我的任务是设计(和实现)一个运行在android操作系统上的应用程序。由于我来自.net世界,我决定使用Xamarin.Android框架(以前称为mono for Android)。我对目标框架做了一些研究,并提出了一个粗略的设计。但由于我是android世界的新手,我不确定我的设计是否是最好的(甚至是可以接受的)。我将尽量简短地描述我的情况。 该应用程序的基本要求是: 应用程序必须能够为不同的用户提供不同的GUI 应用程序必须显示从服务器获取的

我有一个在论坛上很难被问到或回答的问题。最近,我的任务是设计(和实现)一个运行在android操作系统上的应用程序。由于我来自.net世界,我决定使用Xamarin.Android框架(以前称为mono for Android)。我对目标框架做了一些研究,并提出了一个粗略的设计。但由于我是android世界的新手,我不确定我的设计是否是最好的(甚至是可以接受的)。我将尽量简短地描述我的情况。 该应用程序的基本要求是:

  • 应用程序必须能够为不同的用户提供不同的GUI
  • 应用程序必须显示从服务器获取的数据
  • 应用程序必须为用户提供修改服务器数据的方法
  • 当其中一个用户修改服务器数据时,必须通知其他用户
根据我的研究,我得出以下结论:

为了为每个用户提供定制的GUI,应用程序将首先对用户进行身份验证,然后从服务器检索xml文件,该文件将用于以编程方式构建GUI。因为我必须支持设备旋转和不同的设备,这意味着大量的工作,所以任何关于这方面的想法都是非常受欢迎的

我认为应用程序与服务器通信的最佳方式是调用基于REST的服务(获取初始数据并放置以更新服务器状态)

当其中一个用户修改服务器状态时,所有其他用户都会收到通知(Google cloud messaging或取代旧C2DM的GCM)。由于大多数活动都依赖于通知来显示更新,我认为实现这一点的最佳方法是创建一个android服务。该服务将由应用程序启动,并在应用程序运行的时间内运行。当服务将启动时,它将向GCM自行注册,然后使用广播通知当前活动某些内容已更改

我很抱歉发了这么长的帖子,但我尽量简短。正如我所说,这是一个非常粗糙的设计,所以任何想法、想法或批评都是非常受欢迎的


Uroš

我更倾向于将GUI配置作为JSON进行传输/处理

RESTAPI似乎是一个合乎逻辑的选择——我曾经在客户端使用过这种通信,我对此非常满意

GCM的设置非常简单,因此是一个不错的选择。您也可以根据您的需要考虑自定义长轮询解决方案,但GCM更容易。


如果您需要跨平台推送通知,可能值得一看,但如果您不需要,编写您自己的GCM服务器应用程序就像跌倒一样-我有一个使用几十行Ruby的临时示例。

谢谢您的回答。我打算使用PushSharp库,因为它很可能有一天也会在IPhone上运行,所以我将使用相同的库通知这些客户。我将看一看RestSharp图书馆。您能给我介绍一下如何使用xml/json实现GUI生成的示例吗?我想每个用户都会有一个json/xml文档和一个活动,它使用以下技术创建任何动态内容:这个答案有用吗?;)