모바일 앱을 위한 데이터 소스로서의 REST 서비스
MobileTogether는 개발자들이 외부 소스에서 가져온 정보를 활용하여 모바일 앱에 콘텐츠를 쉽게 추가할 수 있도록 지원합니다 REST 및 SOAP 웹 서비스, 그리고 XML, JSON 또는 HTML 등 어떤 형태의 데이터든 수신하여 활용할 수 있습니다. MobileTogether는 REST와 SOAP을 모두 지원하여, 모바일 앱 개발자들이 다양한 애플리케이션을 위해 방대한 온라인 데이터 리소스에 접근할 수 있도록 합니다.

MobileTogether 디자이너의 "소스 추가" 옵션은 REST, SOAP, HTTP 요청에 대한 상세 정보를 입력할 수 있는 특수 대화 상자를 제공합니다. 이번 블로그 게시물에서는 위도와 경도로 제공된 좌표에 대한 고도 데이터를 조회하는 REST 요청을 구현하는 방법을 설명합니다.
과제:
GPS 데이터는 편리할 수도 있지만, 때로는 불편함을 초래하기도 합니다. 모바일 앱이 GPS 추적 기능을 지속적으로 실행하면, 사용자는 몇 초마다 엄청난 양의 데이터를 받게 되고, 기기의 배터리가 빠르게 소모될 수 있습니다. 또한, GPS 시스템은 x/y 좌표를 기록하는 데는 매우 정확하지만, 고도 정보를 제공하는 데는 부정확합니다. 예를 들어, 언덕의 아래에서 위로 고도 변화를 기록하고 싶다면, 더 나은 솔루션이 필요합니다.
MobileTogether Designer를 사용하면 다양한 운영체제에서 실행되는 모바일 앱을 개발하여, 최종 사용자가 특정 위치에 대한 데이터를 필요에 따라 수집할 수 있습니다. 또한, 각 지점의 좌표를 추출하고, USGS 웹사이트에 설명된 USGS 포인트 쿼리 웹 서비스를 통해 정확한 고도 데이터를 확인할 수 있습니다.
먼저, 웹 브라우저를 통해 다음 URL 주소(http://ned.usgs.gov/epqs)에서 해당 웹 서비스를 직접 사용해 볼 수 있습니다

저희는 단순히 좌표를 입력하고, 단위를 선택하며, 출력 데이터 유형을 지정한 다음 "고도 정보 가져오기" 버튼을 클릭하면 됩니다. "고도 정보 조회 서비스"는 다음과 같은 결과를 반환합니다

이 결과에서 주목할 만한 점은 두 가지입니다. 첫째, 결과 창에 생성되는 URL은 MobileTogether에서 REST 서비스 데이터 소스를 지정하는 데 사용할 수 있는 템플릿 역할을 합니다. 둘째, 결과 내용에 표시되는 XML 구조입니다. 확장된 URL은 다음과 같습니다

모바일 앱에서 REST 서비스를 페이지 소스로 추가하려면, RESTful API 요청 대화 상자에 URL을 붙여넣고, x축 및 y축 좌표에 해당하는 매개변수를 입력할 수 있습니다. 또한, 사용자가 피트 또는 미터 단위를 선택할 수 있도록 단위 매개변수도 사용할 것입니다.

저희 앱에서는, 액션 그룹을 통해 좌표 정보가 읽혀지고, 영구 데이터로 정의된 변수들이 위도와 경도 값으로 업데이트됩니다.

이 값들은 이후에 "매개변수" 테이블의 "값" 열에 정의된 XPath 표현식에 따라 GET 요청의 매개변수로 제공됩니다. MobileTogether Designer의 통합 도움말 시스템에는 REST 서비스의 다양한 옵션 및 설정에 대한 자세한 설명이 포함되어 있으며, 일부 서비스에서 요구하는 HTTP 헤더 필드 및 HTTP 멀티파트 콘텐츠에 대한 지원도 제공됩니다.
대화 상자를 닫으면, REST 요청에 해당하는 새로운 데이터 소스가 페이지 소스 창에 자동으로 추가됩니다. 새로 추가된 데이터 소스에서 마우스 오른쪽 버튼을 클릭하면 컨텍스트 메뉴가 열리며, 그 중 하나의 옵션은 "XML에서 구조 가져오기"입니다. 이 옵션을 선택하면 파일 선택 대화 상자가 열리고, 여기서 실제 파일을 지정하거나, 원본 예제 URL에 포함된 파라미터 값을 복사하여 붙여넣어 REST 서비스에서 직접 구조를 가져올 수 있습니다. 어떤 방법을 선택하든, 페이지 소스 창의 구조가 쿼리 결과에 해당하는 노드들로 업데이트됩니다

XML 대신 JSON 데이터를 사용하고 싶다면, RESTful API 요청 대화 상자에서 JSON을 선택하고, 웹 서비스에서 JSON 데이터를 가져오도록 URL을 수정하십시오. 컨텍스트 메뉴에서 "JSON에서 구조 가져오기" 옵션을 사용할 수 있으며, MobileTogether Designer의 다른 기능들도 동일한 방식으로 작동합니다.
아래 이미지는 완성된 앱의 주요 화면을 보여줍니다. 왼쪽 화면에서는 앱이 실행된 직후이며, 사용자가 라디오 버튼 중 하나를 클릭하여 GPS 추적 기능을 활성화하기를 기다리고 있습니다. 오른쪽 화면에서는 GPS가 켜져 있으며, "위치 업데이트" 버튼이 표시됩니다. 사용자는 이 버튼을 클릭하여 좌표를 획득하고, 앱은 REST 요청을 통해 해당 고도를 가져옵니다.

앱은 이후 GPS 추적 기능을 끄고 전력 소비를 줄이며, 새로운 위치 정보를 화면에 업데이트합니다

"주소 표시" 및 "지도 표시" 버튼을 누르면 최신 좌표에 대한 더 자세한 정보가 함께 화면이 확장됩니다. 설정 페이지에서는 사용자가 원하는 설정을 선택하고 좌표 데이터를 GPX 파일 형식으로 저장할 수 있으며, 완성된 앱에는 최신 기록된 지점에 대한 원시 GPS 데이터를 표시하는 "세부 정보" 페이지도 포함되어 있습니다.
앱을 직접 사용해보고 싶으시다면, MobileTogether Designer를 다운로드하세요. 사용은 무료입니다. 또한, GitHub에서 지오로케이션 앱과 관련 파일을 https://github.com/altova/MobileTogether-geolocation-example에서 다운로드할 수 있습니다. MobileTogether Designer에 내장된 시뮬레이터를 사용하여 앱을 실행하고, Android, iOS, Windows Phone 등 다양한 환경에서 앱이 어떻게 보이는지 미리 확인할 수 있습니다. 앱이 Designer에서 실행되는 동안 움직이는 모바일 기기를 시뮬레이션하기 위해 좌표 데이터 파일도 함께 제공합니다.