계정 정보를 검색하기 위해 공통 백엔드에 액세스해야하는 iPhone 및 Android 용 응용 프로그램을 만드는 방법에 대해 생각하고 있습니다. https를 통해 웹 서비스에 액세스 할 수 있습니까? 다른 방법으로는 둘 다 액세스 할 수있는 백엔드 인터페이스를 하나만 가질 수 있습니까?iPhone 및 Android 응용 프로그램에서 안전하게 액세스 할 수있는 공통 백엔드는 무엇입니까?
답변
둘 다 http와 https를 통해 작동하며 이는 일반적인 프로토콜입니다. RESTful 웹 서비스를 사용하여 클라이언트가 파싱 할 수있는 XML blob을 반환하는 http://www.myservice.com/weather/zip/98007과 같은 URI를 통해 서비스를 노출 할 것을 제안한다.
모든 표준 HTTP 및/또는 HTTPS 인 RESTful 웹 서비스 백엔드를 사용하는 것이 좋습니다. Ruby on Rails를 사용할 수 있다면, 기본 스캐 폴딩은 약 99 %를 얻을 것이며, iPhone의 경우이 Rails 백엔드와의 통신을 자동화하는 ObjectiveResource라는 오픈 소스 프로젝트가 있습니다. Android에서는 어떤 옵션을 사용할 수 있는지 아직 조사하지는 않았지만 모두 단순한 HTTP이므로 간단해야합니다. 나는 ObjectiveResource의 관리자가 아니지만 약간의 코드를 기여했다. 당신은 여기에서 확인할 수 있습니다 :
는내가 다른 서비스와 함께 사용 보았다 한가지 좋은 방법은 서로 다른 종류의 데이터를 다시 먹이를 수있는 방법으로 백엔드를 작성하는 것입니다 - 안드로이드 XML 응답에 대한 하지만, 아이폰에 대한 plist 데이터를 보내는 것이 좋습니다 (필요한 경우 XML로도 작업 할 수 있음). 두 경우 모두 XML로 업데이트를 래핑하는 것보다 POST 업데이트를 서버로 다시 보내는 것이 더 쉽습니다.
두 플랫폼 모두 사용하려는 인증 형식을 사용할 수 있어야합니다. 내가 아는 iPhone은 모든 HTTP 인증 방법을 지원합니다.
@kendall :하지만 plist 데이터를 보내는 iPhone이 선호됩니다. plist가 xml보다 왜 더 선호되는지 알려주실 수 있습니까? – Raj
plist 데이터를 사용하면 자동으로 반환 데이터를 배열이나 사전으로 쉽게 파싱 할 수 있습니다. XML을 사용하는 경우 결과를 파싱하기 위해 더 많은 노력을 기울여야합니다. 또한 plists를 사용하면 이진 plist를 사용하여 전송할 데이터의 양을 최소화하고 구문 분석 시간을 줄일 수 있습니다. –
JSON은 plist에 적합한 형식입니다. 바이너리 plist보다 공간 효율성이 약간 떨어지기 때문에 json-framework을 사용하여 원시 코코아 객체로 쉽게 파싱 할 수 있으며 웹 표준이므로 iOS, Android 및 기타 클라이언트 플랫폼에서 동일한 데이터를 쉽게 사용할 수 있습니다. –
아무 것도 시작하지 않는다면, RESTful
서비스로 돌아가거나 받아 들일 것입니다. JSON
... JSON
을 수락하고 배열과 사전으로 바꾸는 라이브러리가 많이 있습니다.
가능하면 xml 대신 json을 사용하십시오. 이렇게하면 전송되는 데이터 크기가 줄어들고 google gson을 사용하는 경우 데이터를 가져 오는 데 필요한 작업이 줄어 듭니다. – Janusz