14

애플 리케이션.모범 사례 <p></p> 내가 웹/모바일 솔루션으로 안드로이드 개발에 새로운, 기본적으로 새로운 해요 .. 하나 개의 디자인/모범 사례 질문은 여기에

내 질문은 - 원격 서버에서 데이터를 가져 오는 안드로이드 응용 프로그램의 구조를 구성 할 때 가장 좋은 방법은 무엇입니까?

서버와의 통신 (get 및 post 요청)을 수행하는 하나의 클래스로 이동해야합니까, 아니면 모든 데이터 클래스가 자체적으로 관리한다는 것을 의미하는 데이터 소스로 내 요청을 봐야합니까?

또는 더 많은 추상화 수준을 가져야합니까 - 데이터 수집을위한 한 수준, 데이터 원본 출처를 모른 채 일부 인터페이스를 사용하는 모델? 나는 안드로이드 개발자들이 이러한 설계 문제에 접근하는 방법을 경험 궁금

...

답변

9

Virgil Dobjanschi presentation 좋은 자원이다, 기본적으로 백그라운드 서비스에서 요청을 실행하여 활동이 파기되지 않도록하고 데이터를 가능한 한 빨리 데이터베이스에 저장하도록 지시합니다. 간단한 어떤을 처리 할 수있는 HTTP 요청과 (ApacheHTTP 포함) 응답의 처리를 캡슐화하는

1 라이브러리 : 더 기술적 인 세부 사항에 대한

, 나는 그 일을하고있는 방법은 세 가지 구성 요소로 응용 프로그램을 분할하는 것입니다 요청/응답 및 쿠키가 포함될 수있는 고급 기능 (로그인에 필요할 수 있음) 및 HTTP 헤더 수정.

2 마샬/언 마샤 레이어. 서버 데이터 (예 : XML 또는 JSON)를 구문 분석하고 나머지 내 앱이 처리 할 개체 (예 : 모델)로 변환합니다.

3- 지속 층.

Dobjanschi의 프레젠테이션에 따르면 데이터 요청은 활동 내 스레드 작업자의 이 아닌 서비스에서 실행됩니다.

+0

위대한 동영상입니다. 감사합니다. 이제 B (activity-> contentProvider-> ServiceHelper-> Service-> Rest-> Processor) 패턴을 구현하려고하는데, 이제는 어떻게해야하는지 알아내는 데 어려움을 겪고 있습니다. 예를 들어, 모델 개체 또는 User, UserDetails, City, Category 등의 데이터베이스 테이블이있는 경우이 서비스의 세분성이 무엇인지 이해할 수 없습니다. 모든 "데이터 형식"에 대해이 클래스를 사용해야합니까? , 또는 전문? – daneejela

+0

예를 들어, UserProcessor, CategoryProcessor (등)가 있어야합니까? UserService, CategoryService (등) UserContentProvide, CategoryContentProvider (등)? – daneejela

6

사용이 구글 I/O의 이야기에서 발표 3 개 모델 중 하나. 앱 아키텍처의 전체 정의 과정에서 도움이 될 제안을 제공합니다.

http://www.youtube.com/watch?v=xHXn3Kg2IQE

이 포스트는 당신을 도울 것입니다 : 그것은 또한 초보자가 사용하는 일반적인 실수는하게 만드는 것을 방지 할 수 있습니다 앞서 지적했듯이

Need sample Android REST Client project which implements Virgil Dobjanschi REST implementation pattern