0

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

  • 应用程序必须能够为不同的用户提供不同的 GUI。
  • 应用程序必须显示从服务器获取的数据。
  • 应用程序必须为用户提供修改服务器数据的方法。
  • 当其中一个用户修改服务器数据时,必须通知其他用户。

根据我的研究,我得出以下结论:

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

我认为应用程序与服务器通信的最佳方式是调用基于 REST 的服务(GET 检索初始数据,PUT 更新服务器状态)。

当其中一个用户修改服务器状态时,将使用通知(谷歌云消息传递或取代旧 C2DM 的 GCM)通知所有其他用户。由于大多数活动都依赖于通知来显示更新,我认为实现这一点的最佳方法是创建一个 android 服务。该服务将与应用程序一起启动,并且将与应用程序一样运行。当服务启动时,它会向 GCM 注册它自己,然后使用广播通知当前活动发生了一些变化。

我为一篇很长的帖子道歉,但我尽量简短。正如我所说,这是一个非常粗略的设计,因此非常欢迎任何想法、想法或批评。

乌罗什

4

1 回答 1

0

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

REST API 似乎是合乎逻辑的选择——我在客户端使用RestSharp来进行此类通信,我对此非常满意。

GCM 是一个快速设置,所以它是一个不错的选择。您也可以根据需要考虑自定义长轮询解决方案,但 GCM 会更容易。

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

于 2013-05-15T08:10:59.690 回答