2013-05-15 2 views
0

포럼에서 질문하거나 대답하기 어려운 질문 중 하나가 있습니다. 최근에 나는 안드로이드 운영 체제에서 실행될 응용 프로그램을 설계 (및 구현)하는 임무를 맡았습니다. 이후 .net 세계에서 온, 나는 Xamarin.Android 프레임 워크 (이전에 안드로이드에 대한 모노로 알려진)를 사용하기로 결정했습니다. 타겟 프레임 워크에 대한 연구를했고 거친 디자인을 제안했습니다. 그러나 나는 안드로이드 세계에 처음 왔기 때문에, 내 디자인이 가장 좋은 것인지는 확신 할 수 없다. 나는 가능한 한 내 설명을 간략하게하려고 노력할 것이다. 응용 프로그램의 기본 요구 사항은 다음과 같습니다.Xamarin.Android 응용 프로그램 아키텍처

  • 응용 프로그램은 다른 사용자에게 다른 GUI를 제공 할 수 있어야합니다.
  • 응용 프로그램은 서버에서 가져온 데이터를 표시해야합니다.
  • 응용 프로그램은 사용자가 서버 데이터를 수정할 수있는 수단을 제공해야합니다.
  • 사용자 중 한 명이 서버 데이터를 수정하면 다른 사용자에게 알림을 보내야합니다.
  • 나는 다음에 와서 내 연구를 바탕으로

: 사용되는 것보다 서버에서 XML 파일을 검색보다

는 각 사용자에 대해 사용자 정의 GUI를 제공하기 위해이 응용 프로그램은 먼저 사용자를 인증하는 것 프로그래밍 방식으로 GUI를 빌드하십시오. 장치 회전과 다른 장치를 지원해야하기 때문에이 작업은 많은 작업을 의미하므로 이에 대한 생각은 매우 환영 할 것입니다.

응용 프로그램이 서버와 통신하는 가장 좋은 방법은 REST 기반 서비스 (GET을 사용하여 초기 데이터를 검색하고 PUT을 사용하여 서버 상태를 업데이트 함)를 호출하는 것입니다.

사용자가 서버 상태를 변경하면 다른 모든 사용자에게 알림 (Google 클라우드 메시징 또는 이전 C2DM을 대체 한 GCM)을 사용하여 알림이 전송됩니다. 대부분의 활동은 업데이트를 표시하는 알림에 의존하기 때문에이를 구현하는 가장 좋은 방법은 Android 서비스를 만드는 것입니다. 서비스는 응용 프로그램과 함께 시작되며 응용 프로그램이 실행되는 동안 실행됩니다. 서비스가 시작되면 GCM에 자체 등록하고 브로드 캐스트를 사용하여 현재 활동에 무언가가 변경되었음을 알립니다.

나는 긴 게시물에 대해 사과하지만 나는 최대한 짧게하려고 노력했다. 내가 말했듯이, 이것은 매우 거친 디자인이므로 어떤 생각, 아이디어 또는 비평도 매우 환영 할 것입니다.

우로스는

답변

0

나는/수송 JSON과 같은 GUI 구성을 처리하는 경향이 될 것입니다.

REST API가 논리적 인 것으로 보입니다. 클라이언트 쪽에서는 이런 종류의 통신을 수행하기 위해 RestSharp을 사용했으며 매우 만족합니다.

GCM은 설정하기 쉽기 때문에 좋은 선택입니다. 필요에 따라 사용자 정의 긴 폴링 솔루션을 고려할 수도 있지만 GCM은 더 쉬워야합니다.

PushSharp 크로스 플랫폼 푸시 알림이 필요하다면 살펴볼 가치가 있지만, 그렇지 않은 경우 나만의 GCM 서버 애플리케이션을 작성하는 것이 좋습니다. 몇 줄의 루비로 작업하는 스크래치 예제가 있습니다. .

+0

답변 해 주셔서 감사합니다. 앱이 언젠가는 IPhone에서도 실행될 가능성이 높기 때문에 PushSharp 라이브러리를 사용하려고 했으므로 동일한 라이브러리를 사용하여 해당 클라이언트에 알립니다.RestSharp 라이브러리를 살펴 보겠습니다. xml/json을 사용하여 GUI genereation을 구현하는 방법에 대한 예제를 가르쳐 주시겠습니까? –

+0

다음과 같은 기술을 사용하여 동적 컨텐츠를 만드는 사용자 및 활동별로 JSON/XML 문서가 생성됩니다. http://stackoverflow.com/questions/6216547/android-dynamically-add-views-into- 보기 – manadart

+0

이 대답이 도움이 되었습니까? ;) – manadart