크로스 플랫폼 모바일 애플리케이션에서 데이터 처리하기

Altova MobileTogether는 모든 규모의 기업이 모든 모바일 플랫폼에서 실행되는 맞춤형 모바일 솔루션을 설계하고 배포할 수 있도록 지원합니다. 이 글은 MobileTogether 액션 대화 상자에 대한 설명의 2부입니다. 이 기능을 통해 개발자는 iOS®, Android™, Windows 장치뿐만 아니라 HTML5 기반 클라이언트에서도 동일하게 작동하는 정교한 이벤트 처리, 제어 흐름 및 작업을 빠르게 생성할 수 있습니다. 이를 통해 각 모바일 운영 체제에 대한 API 또는 SDK의 세부 사항에 대해 걱정할 필요가 없습니다.

1부 내용을 놓치셨다면, 이벤트 처리 및 제어 흐름 정의를 읽어보시고 내용을 따라가세요.

이 글에서는 MobileTogether에서 제공하는 데이터 조작 기능을 다루며, 이러한 기능들이 유연하고 강력하여 데이터 기반의 모바일 엔터프라이즈 앱 개발 속도를 높여, 언제 어디서든 바쁜 사용자들에게 최신 정보를 제공하는 데 기여하는 방법을 설명합니다.

아래 스크린샷은 재고 관리 모바일 애플리케이션의 소개 페이지를 보여줍니다. 이 페이지에는 간단한 설명이 나와 있으며, 사용자가 "더보기" 버튼을 클릭하면 자세한 설명을 볼 수 있습니다.

버튼에 대한 동작 정의는 MobileTogether Designer의 동작 대화 상자에서 아래와 같이 확인할 수 있습니다. 사용자가 버튼을 클릭하면, "노드 업데이트" 동작이 "ShowMore" 노드에 고정된 값 "true"를 삽입합니다.

긴 설명을 포함하는 텍스트 상자는 표시 여부를 결정하는 식을 사용하는 "표시" 속성을 가지고 있습니다.

"ShowMore" 값의 설정이 "true"로 변경되는 즉시, 모바일 기기에서 확장된 설명이 자동으로 표시됩니다

"더보기" 버튼은 "ShowMore" 값이 'false'일 때만 화면에 표시되도록 설정되어 있어, 해당 조건이 충족되면 동시에 숨겨집니다.

이 간단한 액션 정의는 모든 모바일 기기에서 작동하는 버튼을 생성하며, 심지어 데스크톱 워크스테이션의 브라우저 창에서도 작동합니다. 하지만 "업데이트 노드(들)" 기능은 훨씬 더 많은 기능을 제공합니다! 우리의 예시에서는 대상 노드와 페이로드 모두 고정된 값으로 설정되어 있습니다. 대상, 결과 또는 둘 다를 XPath 표현식으로 정의할 수도 있습니다. 이 XPath 표현식은 다른 데이터 요소, XPath 연산자, XQuery 함수, 특수한 MobileTogether 함수, 심지어 사용자가 직접 정의한 함수에 대한 참조를 포함할 수 있습니다.

개발자는 단순히 XPath 버튼 중 하나를 클릭하면 "XPath 식 편집 대화 상자가 열립니다. 이 대화 상자에서는 XML 데이터 소스 트리, XPath/XQuery 3.1 연산자 및 함수 라이브러리, 그리고 유효한 XPath/XQuery 3.1 식을 생성하고 편집하는 데 도움이 되는 다양한 기능을 활용할 수 있습니다.

간단한 예시로, "재고 관리" 앱은 실행 날짜를 기록하여 다음에 앱을 실행할 때 테이블을 새 달에 맞게 초기화해야 하는지 확인합니다. 이 "업데이트 노드(들)" 기능은 XQuery 날짜 함수를 사용합니다

MobileTogether에서는 플랫폼별 API 호출이 필요하지 않습니다. 하나의 표현식만으로 모든 모바일 플랫폼을 지원합니다.

노드(들) 삽입노드(들) 추가는 모두 XPath 표현식에 지정된 대로 하나 이상의 새로운 노드를 생성하는 작업입니다. 이 두 작업의 차이점은 "노드(들) 삽입"은 데이터 트리 내 지정된 위치에 노드/들을 추가하는 반면, "노드(들) 추가"는 선택된 노드/들의 자식 노드로 노드/들을 추가한다는 것입니다.

"노드 삽입" 및 "노드 추가" 기능을 사용하면 데이터 통합 모델을 실시간으로 확장하여 크기가 미리 정의되지 않은 데이터 세트를 처리할 수 있습니다. 예를 들어, "재고 관리" 앱의 핵심은 다양한 제품을 생산하는 데 필요한 부품의 상태를 설명하는 테이블입니다. 현실에서는 제품 관리자가 제품 변형을 추가하거나 삭제하거나 공급업체를 변경함에 따라 제품 부품 목록이 자주 변경됩니다. 특정 수의 부품에 맞춰 모바일 솔루션을 미리 코딩하는 것은 매우 비효율적입니다. 대신, 개발자는 단일 부품을 설명하는 단일 행의 내용을 정의하고, 각 요소에 대한 기본값을 제공할 수 있습니다

테이블이 초기화되면, "노드에 추가" 액션을 반복 액션 내에서 설정하여 원하는 만큼의 행을 추가할 수 있습니다. "재고 관리" 솔루션에서 "부품 수"는 고유한 부품의 개수를 저장하며, 이 값은 데이터베이스 쿼리 또는 외부 부품 목록 파일에서 읽어올 수 있습니다. 개발자는 정확한 개수를 알 필요가 없습니다.

위 정의에서, 새로운 노드는 데이터 모델의 행을 나타내는 XPath 표현식으로 정의됩니다. "노드 추가" 기능은 참조된 노드, 그리고 해당 노드의 모든 자식 노드, 그리고 이들의 모든 요소, 속성, 그리고 내용을 추가합니다. 새로운 노드는 첫 번째 자식 노드 또는 마지막 자식 노드로 추가될 수 있습니다.

MobileTogether에 내장된 시뮬레이터를 사용하여 개발 중인 작업을 실행하면, 앱이 실행되는 동안 데이터를 확인할 수 있습니다. 위에서 정의된 반복문이 모든 반복을 완료한 후, "PartNumbersCount" 값이 167로 표시되었고, 반복문은 정확히 166개의 추가 행을 추가했으며, 각 행은 원래 정의와 동일한 내용으로 채워졌습니다.

"노드 삽입" 및 "노드 추가" 기능은 또한 다음과 같은 직접적인 XML 구성 요소를 사용하여 새로운 노드를 생성할 수 있습니다. 예를 들어, Element Content과 같이 표현할 수 있습니다. 또는, XQuery를 사용하여 계산된 노드 구성 요소를 통해 조립할 수도 있습니다. 예를 들어, element MyElement-01 {xs:string("Element Content")} 또는 attribute myatt{"value"}과 같이 표현할 수 있습니다

새로고침은 데이터를 처리하는 데 사용되는 또 다른 강력한 기능입니다. "새로고침" 기능은 디자인에 포함된 모든 외부 리소스에 적용될 수 있으며, 여기에는 데이터베이스 쿼리, 외부 데이터 파일, 차트, 이미지 등이 포함됩니다. "새로고침" 기능은 이미 구성된 모든 외부 리소스를 편리하게 확인할 수 있는 드롭다운 목록을 제공합니다. "재고 관리자" 애플리케이션에서 "$ProductSalesMTD"는 회사 주문 데이터베이스에 대한 SQL 쿼리로, 현재 달까지 각 제품의 판매 건수를 가져옵니다. 제품은 부품 목록과 비교되어 각 부품의 수요 통계를 계산합니다.

여러 데이터 소스를 한 번에 다시 로드하려면, 여러 개의 "다시 로드" 작업을 편집 창으로 끌어다 놓으면 됩니다. 아래는 재고 관리자에서 다른 버튼이 수행하는 작업의 일부 정의입니다. 모든 데이터 소스가 새로 고쳐진 후, 마지막 단계에서 "다시 로드" 작업을 실행하여 최신 값을 기반으로 성능 차트를 다시 그립니다.

이 안드로이드 태블릿의 스크린샷은 재고 관리 시스템의 한 화면을 보여주는데, 이 버전은 수백 개의 개별 부품 대신 부분 조립품에 맞춰 설정되어 있습니다. 어떤 부품의 재고 수준이 목표치를 밑돌 경우, 사용자는 오른쪽 열에 수량을 입력한 후 "주문 제출" 버튼을 클릭하여 공급업체에 주문을 승인할 수 있습니다.

아이폰을 가로 모드로 사용할 때도 비슷한 화면이 나타나며, 사용자는 화면을 스크롤하여 모든 데이터를 확인할 수 있습니다.

짧은 영상 시리즈 영상 시연 자료 Altova 웹사이트에 게시된 자료는 MobileTogether Designer를 사용하여 모바일 엔터프라이즈 앱을 개발하는 것이 얼마나 쉬운지 보여줍니다. 또는, 웹 버전의 해당 자료를 살펴보세요 MobileTogether 디자이너 온라인 도움말 더 자세한 정보는 다음을 참고하십시오.

더 자세한 내용을 알아보고 무료 모바일 애플리케이션 개발 도구인 "MobileTogether Designer"를 다운로드하여 iOS®, Android™, Windows® Phone 8, Windows 8용 모바일 솔루션과 HTML5 기반 웹 클라이언트를 개발하려면 다음 웹사이트를 방문하십시오: www.altova.com/mobiletogether