我的任务是构建我们业务的移动应用程序平台。我在android中使用传递json的REST API构建了一个测试应用程序,但我不确定这是否是最好的解决方案。
应用程序必须最终在iphone,windows mobile,blackberry和android上运行。还有一些业务规则让我对整体架构应该如何动摇。
首先,让我解释一下一些术语。 客户是一家实际上是我们客户之一的企业。客户彼此不了解。 超级用户可以做所有客户的一切,也是我们的员工。 管理员可以为特定客户端执行所有操作,并由客户端使用。 最终用户是客户的客户。最终用户可以与我们的客户或其中一个客户开展业务。但他们无法知道这一点(我无法向他们提供所有客户的清单,让他们选择与之相关的客户名单。)
目前,我们有一个网络应用程序,客户网站上的链接表示最终用户与之关联的人。然后,他们使用与该客户的帐号将他们的客户数据附加到他们的网站帐户。
所以,我需要开发一些不同的应用程序,我认为我已将其命名为2.管理应用程序和最终用户应用程序。如果超级用户登录管理应用程序,他们将被允许选择他们正在处理的客户端。如果常规管理员登录,他们将只能使用与他们相关联的客户端。
最终用户应用程序让事情变得混乱。我必须知道他们正在与哪个客户合作,然后获取他们的帐号以附上他们的客户详细信息(一旦我知道他们正在使用什么客户,这很容易)。最初的想法是为每个想要将其提供给用户的个人客户发布应用程序版本(或者为他们提供源代码),然后将每个版本硬连线到该客户端。但这似乎是一个巨大的集群维护。我必须要处理的另一个警告是允许应用程序具有主题性和可品牌性。
这是我无法决定架构的地方。我应该像我使用其他应用程序那样做,并在移动平台上使用UI并通过服务传递数据,还是应该将移动应用程序作为Web托管应用程序的webview门户?两者都有优点和它们自己的问题,并且都没有解决必须将最终用户附加到客户端的问题。我正在寻找任何在多个平台上开发移动解决方案的人的建议。
答案 0 :(得分:1)
我没有构建移动解决方案的经验,但我的想法是我更喜欢第一种选择:“在移动平台上使用UI,并通过服务传递数据”。
我的理由是用户体验。我使用的是Windows Mobile(WP7),我非常喜欢原生用户界面 - 它具有吸引力且高效(最重要)。相比之下,浏览网络应用程序并不令人愉快或轻松。
如果您想创建一个人们想要使用的应用程序(这只会对您的业务产生积极影响),那么您需要采用原生UI路线。
此外,我没有看到架构选项是互斥的;您可以实现稳固的服务基础,而这些服务又可以由基于服务器的Web UI和移动UI使用。