카우치베이스 모바일

Zebra 데이터웨지 및 카우치베이스 모바일을 사용한 오프라인 재고 스캔

Couchbase%20Server v5.5 red Sync%20Gateway v2.1 red Couchbase%20Lite v2.1 red

소개

Zebra 기술는 바코드 인쇄, 모바일 컴퓨팅, 데이터 캡처 및 관련 기능 분야의 글로벌 리더입니다. Zebra는 바코드 스캐너가 내장된 견고한 핸드헬드 컴퓨터 제품군을 제공합니다. 이러한 안드로이드 기반 디바이스는 배송 추적, 판매 지원, 자산 관리 등 다양한 용도로 사용할 수 있습니다.

이러한 애플리케이션 중 상당수는 카우치베이스 모바일 스택을 제공하여 백업 데이터 플랫폼을 제공합니다. Couchbase Lite는 본격적인 NoSQL 데이터베이스이므로 온디바이스 데이터의 성능과 손쉬운 오프디바이스 동기화가 결합되어 있습니다.

한 가지 사용 사례를 보여드리기 위해 샘플 재고 스캔 애플리케이션을 구축했습니다.

Screenshot

스크린샷

데이터는 가상의 책 세트에 대한 정보로 구성됩니다. ISBN 바코드를 스캔하면 다음에서 정보를 가져옵니다. 카우치베이스 라이트 임베디드 데이터베이스를 사용합니다. 이 데이터베이스는 Zebra DataWedge ISBN 바코드 스캔을 위한 서비스입니다.

샘플 데이터와 함께 전체 애플리케이션은 GitHub에서 확인할 수 있습니다. 여기. 이 게시물에서는 코드를 살펴보겠습니다. 데모가 실제로 작동하는 모습을 보고 Zebra와 Couchbase에 대해 자세히 알아보려면 이 Zebra DEVTALK 웨비나를 시청하십시오.

개요

애플리케이션은 단일 활동으로 구성됩니다. 카우치베이스 라이트는 프로젝트에 라이브러리로 통합됩니다. 애플리케이션은 데이터 없이 설치됩니다. 인벤토리 데이터는 Couchbase Server에 저장됩니다. 디바이스 데이터는 양방향 복제를 사용하여 런타임에 채워집니다.

DataWedge는 기기에서 별도의 구성 요소로 실행됩니다. API는 전적으로 인텐트에서 구동됩니다. 인텐트를 브로드캐스팅하여 스캔을 트리거하고 인텐트를 통해 데이터를 가져옵니다. 이를 활성화하려면 DataWedge 프로필을 애플리케이션과 연결합니다. (이렇게 하면 DataWedge는 무엇보다도 결과를 반환할 때 앱을 구체적으로 타겟팅할 수 있습니다.)

코드(UI 작업 제외)는 데이터베이스 설정, 복제 시작, 스캔 트리거 버튼 추가 등으로 구성되어 있습니다. 스캔 결과가 반환되면(ISBN을 떠올려 보세요) 앱은 데이터베이스에서 책 세부 정보를 쿼리하여 표시합니다. (참고로 멀티 스레딩을 처리하기 위해 RxJava를 사용합니다.)

Zebra 데이터웨지 프로필

DataWedge는 안드로이드 인텐트 시스템을 우아하게 활용합니다. 이를 위해서는 프로필 구성이 필요합니다. 이 스크린샷은 여기에 사용된 옵션을 보여줍니다.

Enable Scanning

스캔 사용

Enable Intents

인텐트 사용

특히 '인텐트 액션' 설정에 주목하세요. 애플리케이션 자체에도 동일한 문자열이 필요합니다.

데이터베이스 초기화 및 복제 시작

앱을 컴팩트하게 유지하기 위해 데이터베이스를 초기화합니다. onCreate 메서드의 스캔 활동 클래스를 생성합니다. 또한 거기에서 복제를 설정합니다.

이것은 모두 간단합니다. 엔드포인트는 동기화 게이트웨이 인스턴스의 주소입니다. 복제를 다음 주소로 설정합니다. 연속 를 사용하면 Couchbase가 백그라운드에서 데이터베이스를 지속적으로 업데이트합니다.

소프트 스캔 버튼

Zebra 디바이스에는 스캔을 트리거하는 전용 하드웨어가 있습니다. 이를 위해 UI에 버튼도 추가했습니다. 버튼 클릭에 대한 콜백은 DataWedge 인텐트 기반 API를 사용하는 방법을 보여줍니다. 몇 가지 키 문자열로 인텐트를 채우고 나머지는 안드로이드가 처리하도록 맡기면 됩니다.

스캔 결과 받기

트리거되면 스캐너에 불이 켜지고 백그라운드에서 데이터를 캡처합니다. 성공하면 인텐트를 사용하여 바코드 정보가 반환됩니다.

다음을 사용하여 의도를 전달하도록 DataWedge를 구성했습니다. 시작 활동. 여기에서 인텐트 액션 설정이 프로필에서 작동합니다. Android 매니페스트에서 해당 설정의 문자열과 일치하도록 인텐트 필터를 설정합니다.

기본적으로 이렇게 하면 일반적으로 해당 활동의 새 인스턴스가 생성됩니다. 여기서는 동일한 활동을 계속 진행하면서 그 결과를 처리하도록 하려고 합니다. 활동 시작 모드를 다음과 같이 설정하여 이를 수행합니다. 싱글탑.

즉, 인텐트는 다음을 통해 전달됩니다. onNewIntent 메서드를 사용할 수 있습니다. 이는 처음 활동을 시작한 원래의 의도에 영향을 미치지 않습니다. 활동의 인텐트를 새로운 인텐트로 재설정하는 일반적인 패턴을 사용합니다. onNewIntent에서 처리한 다음 onResume.

쿼리 설정

내부 onResume를 입력하면 의도가 예상한 것과 일치하는지 확인합니다. 그런 다음 ISBN 번호를 가져와 쿼리를 수행합니다.

카우치베이스 라이트는 빌더 스타일의 인터페이스를 사용하여 쿼리를 생성합니다. 이 API는 SQL 문에 직접 매핑되도록 설계되었습니다. 여기서 해당하는 SQL은 다음과 같습니다. SELECT * FROM inventory WHERE isbn = "";에서 <scan result>는 우리에게 다시 전달된 문자열을 나타냅니다.

이는 곧 이 코드로 해석됩니다.

이 동적 쿼리 기능은 Couchbase Lite 2.0에 추가되었습니다. 이 기능은 SQL의 상위 집합인 Couchbase의 N1QL 쿼리 언어를 기반으로 합니다. Couchbase Lite의 쿼리에 대한 자세한 소개는 다음을 읽어보시기 바랍니다. 이 블로그 게시물.

쿼리 실행 및 결과

쿼리 객체를 손에 들고 쿼리를 실행하여 결과를 목록으로 검색합니다. 각 ISBN은 한 권의 책에 해당할 것으로 예상합니다. 성공하면 책 표지의 썸네일과 기타 정보를 표시합니다. 책이 누락되었거나 결과가 두 개 이상이면 책 표지 대신 오류를 표시합니다. 이 코드는 RxJava를 사용하여 래핑되어 쿼리가 백그라운드 스레드에서 실행됩니다.

전체 문서 내용을 Dictionary 객체로 검색합니다. (사전은 Couchbase Lite에서 정의한 맵과 같은 의미를 가진 불변의 데이터 구조입니다.) 블롭으로 첨부된 책 표지 이미지를 비트맵으로 변환해야 합니다. 편의를 위해 사전을 맵으로 변환하고 비트맵을 만든 다음 맵에 추가합니다. 그러면 UI 코드에 전달됩니다.

마무리

이 프로젝트의 GitHub 리포지토리에는 프로젝트를 실행하는 데 필요한 모든 추가 기능이 있습니다. 동기화 게이트웨이 구성 파일이 있으며, 로컬 Couchbase Server 인스턴스와 통신하도록 설정되어 있습니다. 몇 가지 샘플 바코드가 포함된 PDF도 찾을 수 있습니다.

앱에 바코드 스캔을 통합하는 방법에 대해 자세히 알아보려면 다음을 방문하세요. https://developer.zebra.com.

포스트 스크립트

Couchbase는 오픈 소스이며 무료 체험.
시작하기 와 함께 샘플 코드, 예제 쿼리, 튜토리얼 등.
더 많은 리소스 찾기 개발자 포털.
트위터에서 팔로우하기 카우치베이스 개발.
질문에 대한 답변을 게시할 수 있습니다. 포럼.
당사는 다음 사항에 적극적으로 참여합니다. 스택 오버플로.
질문, 의견, 보고 싶은 주제 등이 있으면 트위터에서 저에게 연락해 주세요. 호드그릴리

이 문서 공유하기
받은 편지함에서 카우치베이스 블로그 업데이트 받기
이 필드는 필수 입력 사항입니다.

작성자

게시자 호드 그릴리, 개발자 옹호자, 카우치베이스

호드 그레이리는 실리콘밸리에 거주하는 카우치베이스의 개발자 옹호자입니다. 그는 소프트웨어 엔지니어 및 엔지니어링 관리자로서 20년 이상의 경력을 보유하고 있습니다. 그는 전산 물리학 및 화학, 컴퓨터 및 네트워크 보안, 금융, 모바일 등 다양한 소프트웨어 분야에서 일해 왔습니다. 2016년 카우치베이스에 합류하기 전에는 삼성에서 모바일 개발자 관계를 이끌었습니다. 컬럼비아 대학교에서 화학 물리학 박사 학위를 받았습니다.

댓글 남기기

카우치베이스 카펠라를 시작할 준비가 되셨나요?

구축 시작

개발자 포털에서 NoSQL을 살펴보고, 리소스를 찾아보고, 튜토리얼을 시작하세요.

카펠라 무료 사용

클릭 몇 번으로 Couchbase를 직접 체험해 보세요. Capella DBaaS는 가장 쉽고 빠르게 시작할 수 있는 방법입니다.

연락하기

카우치베이스 제품에 대해 자세히 알고 싶으신가요? 저희가 도와드리겠습니다.