2013-05-15 45 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