카우치베이스 모바일과 함께 Xamarin 솔루션을 구현하면 로컬 지속성을 갖춘 크로스 플랫폼 모바일 애플리케이션을 C#에서 제작하는 데 완벽한 조합입니다. 이를 통해 콘텐츠와 데이터가 일시적이지 않고 모바일 애플리케이션이 항상 네트워크 연결에 의존하지 않는다는 장점이 있습니다. 이 블로그에서는 다음을 시작하는 방법을 살펴봅니다. Xamarin 를 클릭하고 Couchbase Mobile 스택에서 Couchbase Lite 구성 요소를 구현하여 스토리지 계층을 생성하기 시작합니다.
새로운 Xamarin 솔루션
Xamarin을 사용하면 네이티브 성능을 갖춘 네이티브 사용자 인터페이스를 통해 어디서나 한 번 작성하고 실행할 수 있는 접근 방식을 사용할 수 있습니다. Xamarin Couchbase Lite NuGet 패키지를 사용하면 전체 API를 지원하는 C# 및 .NET Framework를 사용하여 여러 플랫폼에서 코드를 공유할 수 있습니다. Xamarin의 iOS 및 Android 구성 요소를 다운로드하여 설치한 후 Xamarin Studio를 열면 오른쪽에 개발자 센터 자료와 몇 가지 예제 솔루션이 표시됩니다. 여유가 있을 때 사용해 볼 수 있지만 대신 새 프로젝트를 생성하고 Couchbase Mobile 솔루션을 삽입하겠습니다. '새 솔루션'을 클릭합니다.
이제 Xamarin 솔루션 페이지가 표시됩니다. 이 블로그에서는 Android 애플리케이션을 만드는 데 중점을 두겠습니다.
- C# 드롭다운에서 '안드로이드'를 선택한 다음 프로젝트로 '안드로이드 애플리케이션'을 선택합니다.
- 아래와 같이 프로젝트 이름을 입력합니다. 여기서 이름은 'CouchbaseMobile_Xamarin_App'입니다.
- '확인'을 클릭합니다.

카우치베이스 NuGet 패키지 추가
이제 빈 Android 애플리케이션 프로젝트가 생겼으며 다음 단계로 Couchbase Mobile을 추가할 것입니다. 이제 Xamarin은 NuGet을 기본으로 완전히 통합하여 최고 수준의 지원을 제공합니다. NuGet은 .NET용 패키지 관리 시스템으로, 모바일 애플리케이션 내에서 Couchbase Lite와 같은 타사 라이브러리를 사용하는 프로세스를 간소화합니다. 이제 Xamarin Studio 내 NuGet에서 최신 Couchbase Lite.NET 패키지를 다운로드하겠습니다.
- '솔루션' 탐색기 섹션에서 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다. 'CouchbaseMobile_Xamarin_App'이라는 프로젝트를 정의하고 생성했습니다.
- '추가'를 선택합니다.
- '패키지 추가'를 선택합니다.
이제 아래와 같이 '패키지 추가' 대화 상자가 표시됩니다:
- 오른쪽 상단 검색 필드에 'Couchbase Lite'를 입력하고 Enter 키를 눌러 공식 NuGet 갤러리에서 설치할 패키지를 검색합니다.
- 반환 결과 목록에서 Couchbase Lite 패키지를 선택합니다.
- '패키지 추가'를 클릭합니다.
패키지 콘솔 및 폴더
이제 Xamarin Studio는 이 글을 쓰는 시점에 V1.1.2.0을 사용하고 있는 Couchbase Lite에 대한 패키지와 모든 종속성을 추가합니다. 설치 진행 상황을 확인하고 확인하려면 다음을 클릭하세요:
- Xamarin Studio에서 오른쪽 하단의 '패키지 콘솔' 탭을 클릭합니다.
설치 중인 Couchbase.Lite 패키지에 대한 자세한 정보를 확인할 수 있습니다. 패키지 콘솔의 위치는 다음과 같습니다.
- Couchbase.Lite 추가...
- ...중간에 추가되는 다른 파일이 있습니다...
- 마지막으로 프로젝트에 ''Couchbase.Lite를 성공적으로 추가했습니다 ...'를 볼 수 있습니다.
다음으로 Xamarin Studio 왼쪽의 솔루션 탐색기 섹션에 다음 4개의 패키지가 설치되어 있는 것을 볼 수 있습니다. '패키지' 폴더를 드롭다운하면 다음과 같이 표시됩니다:
- Couchbase.Lite
- Newtonsoft.Json
- SQLitePCL.raw_basic
- SQLitePCL.ugly

업데이트 패키지
이제 '패키지' 폴더에서 마우스 오른쪽 버튼을 클릭하고 해당 메뉴 항목을 선택하면 개별 패키지 또는 모든 패키지를 최신 버전으로 쉽게 업데이트하거나 프로젝트에서 제거할 수 있습니다.
- '패키지'를 마우스 오른쪽 버튼으로 클릭하고 '업데이트'를 클릭하여 모든 패키지를 업데이트합니다.
- Xamarin Studio에서 이제 '프로젝트에서 4개의 패키지 업데이트 중...'이 표시되어야 합니다.
Android 및 iOS 모바일 앱
Xamarin Studio 내의 Android 프로젝트에 Couchbase Lite를 성공적으로 추가했습니다. 이제 로컬 모바일 데이터베이스가 있는 앱을 만들기 위한 몇 가지 시작 코드로 이동하겠습니다. 우리가 만들고 있는 앱은 로컬 지속성을 갖는 Tasky 추적 할 일 앱이며, 멋진 점은 Xamarin을 사용하기 때문에 iOS 및 Android 솔루션 모두에 대해 데이터베이스 코드를 한 번만 작성하면 된다는 것입니다. 하나의 데이터베이스와 두 개의 다른 플랫폼 솔루션. 아래에서 안드로이드 버전과 iOS UI를 모두 볼 수 있습니다.
여기서 장점은 플랫폼별로 데이터베이스 코드를 다시 작성하는 대신 하나의 데이터베이스 코드 베이스만으로 두 플랫폼을 모두 타겟팅할 수 있다는 것입니다. 아래 iOS 버전은 위의 Android 버전과 동일한 Couchbase Lite 클라이언트 측 코드 베이스를 실행하고 있습니다.
공유 프로젝트
데이터베이스를 만드는 데 필요한 프레임워크를 프로젝트에 가져오는 것부터 시작하겠습니다. 데이터베이스를 한 번만 생성하면 앱이 지원하는 다양한 플랫폼에서 참조할 수 있습니다.
- 솔루션 탐색기에서 앱 프로젝트를 마우스 오른쪽 버튼으로 클릭합니다.
- 선택: 선택: 추가>새 프로젝트 추가
이것이 데이터베이스 프로젝트 클래스가 될 것이므로 프로젝트 이름을 적절하게 지정하세요. 이 예제에서는 이름을 'shared_Couchbase_Database'로 지정했습니다.
- 선택 선택: C#
- 선택: 공유 프로젝트 옵션
카우치베이스 스타터 코드
데이터베이스를 만드는 데 필요한 프레임워크를 프로젝트에 가져오는 것부터 시작하겠습니다. 이 시점에서 애플리케이션 프로젝트에는 이제 앱 프로젝트와 데이터베이스용 프로젝트가 있어야 합니다. 우리의 프로젝트 이름은 'shared_Couchbase_Database'이고 생성된 파일 이름은 'TaskManager'로 변경되었습니다. 해당 파일을 열면 맨 위에 다음 문장을 추가하여 Couchbase API를 사용할 수 있도록 합니다:
1 |
사용 카우치베이스.Lite; |
데이터베이스 만들기
이제 모바일 데이터베이스를 만들기 위해 Couchbase Lite API를 사용하겠습니다. 현재 iOS 및 Android 앱 프로젝트에 참조할 데이터베이스 프로젝트를 만들고 있습니다. 여기에는 기본적인 데이터베이스 작업이 포함됩니다. 생성자 내에서 Database 변수를 선언하고 데이터베이스를 초기화하면서 데이터베이스의 이름이 될 이름을 'GetDatabase' 메서드에 전달할 것입니다. 데이터베이스가 존재하지 않으면 데이터베이스가 생성됩니다. 아래 코드를 사용하여 Couchbase Mobile API를 사용하여 프로그래밍 방식으로 데이터베이스를 생성했습니다:
1 |
db = 관리자.공유 인스턴스.데이터베이스 가져오기("name_db"); |
CRUD 작업
이제 모바일 데이터베이스에 대한 4가지 기본 작업을 만들어 보겠습니다. 생성-읽기-업데이트-삭제 작업입니다. 앞서 데이터베이스를 생성하면서 변수를 전달할 때 문서 데이터베이스도 생성하는 것을 이미 보았습니다. 따라서 '만들기'가 완료되었습니다. 간단하죠!
문서 검색
생성된 특정 태스크를 가져오려면 'GetTask' 메서드를 만들고 이 태스크와 관련된 특정 문서를 참조하는 '문자열 id'를 전달합니다.
메서드의 반환 유형은 '작업' 유형이며 나중에 생성됩니다. 앱에서 최종 사용자가 만든 각 Task 또는 항목은 데이터베이스에 고유한 문서 ID를 갖게 됩니다. 따라서 태스크가 생성되면 문서도 함께 생성됩니다. 여기서 문서를 태스크를 나타내는 것으로 생각할 수 있습니다. GetTask 메서드 내에서 연관된 문서를 반환합니다. 반환된 특정 문서에서 'UserProperties' API를 호출하여 문서의 속성을 가져옵니다. 이제 메서드에서 반환되는 작업에는 문서 속성에 대한 참조(예: id, 이름, 메모, 완료)가 포함됩니다.
1 |
var doc = db.문서 가져오기(id); |
1 |
var 소품 = doc.사용자 속성; |
작업 검색
'CreateAllDocumentsQuery' 메서드는 데이터베이스의 모든 문서와 일치하는 쿼리를 생성합니다.
1 |
var 쿼리 = db.CreateAllDocumentsQuery (); |
쿼리 변수에서 'Run()' 메서드를 호출하여 모든 문서를 캡처한 다음, 이 결과를 반복하여 사용 가능한 각 문서의 속성을 얻습니다. 결과 행을 인덱스인 쿠커베이스 라이트 뷰에 대해 작업하겠습니다.
특정 행의 'DocumentID' 속성을 호출하여 ID를 가져옵니다.
1 |
ID = 행.DocumentId, |
속성 결과가 초기화된 각 '작업' 개체를 작업 목록에 저장하고 이를 반환합니다.
작업 저장
새 작업 또는 문서를 저장하려면 'PutProperties' 메서드를 호출하면 지정된 속성을 가진 새 리비전이 생성되고 저장됩니다.
이 메서드는 Dictionary를 입력 매개변수로 사용하므로 작업 항목에서 'ToDictionary' 메서드를 호출합니다.
1 |
doc.PutProperties (항목.ToDictionary ()); |
작업 개체의 ID 값이 null이 아닌 경우 먼저 문서를 검색하여 키의 값을 업데이트합니다. 5단계에서도 이 작업을 수행했으므로 익숙해 보일 수 있습니다.
1 |
doc = db.문서 가져오기 (항목.ID); |
'else' 문이 끝나기 전에 Task 개체의 새 키 값으로 문서를 업데이트할 코드를 복사하여 붙여넣습니다.
작업 삭제
마지막 작업은 '삭제' 작업으로, 문서를 삭제하려면 먼저 데이터베이스에서 삭제하려는 문서 또는 작업 개체를 가져와야 합니다. 그런 다음 문서에서 '삭제' 메서드를 호출하여 데이터베이스에서 문서를 제거합니다.
이제 작업이 포함된 로컬 데이터베이스를 만들었으니 이제 사용자가 만드는 작업을 나타내는 속성을 포함하는 '작업' 파일을 만들겠습니다.
작업 클래스
Task 클래스를 만들려면 이전에 만든 데이터베이스 프로젝트를 마우스 오른쪽 버튼으로 클릭한 다음 선택합니다:
- 추가>새 파일 ...
'새 파일' 페이지에서 여기 예제에서는 'Task'라는 빈 C# 파일을 만든 다음 '새로 만들기'를 클릭합니다. 이것이 작업을 나타내기 위해 연결된 일반 속성을 생성할 작업 개체입니다.
작업 속성
다음으로, Task 객체의 모든 속성을 보유할 Task 클래스를 만들겠습니다. 사용하는 문을 포함하세요:
System.Collections.Generic을 사용합니다;
작업을 나타내는 속성으로 Task 클래스를 만들겠습니다. Couchbase Mobile은 NoSQL JSON 데이터베이스 솔루션이므로 데이터를 키-값으로 저장하고 있다는 점을 기억하세요. 아래에서는 같은 이름의 각 클래스 변수를 참조하는 'name', 'notes', 'done' 키에 대한 키-값 데이터 스키마를 나타내기 위해 'Dictionary' 유형을 사용하고 있습니다.
이제 모바일 앱에서 완전한 로컬 데이터베이스를 확보하고 GitHub 포털
을 클릭하여 Xamarin 모바일 작업 앱을 완성합니다. 애플리케이션 내에 이미 완성된 모바일 데이터베이스가 있으며 다음 단계는 iOS 또는 Android UX에 특화된 크로스 플랫폼 Xamarin 앱을 구축하는 것입니다. 카우치베이스 라이트의 경우 다음을 참조할 수 있습니다. Xamarin Android 가이드
또는 Xamarin iOS 가이드
를 참조하여 동기화를 통해 오프라인 모바일 환경을 만드는 방법과 보기를 사용하여 문서 색인을 만든 다음 모바일 앱용 문서를 쿼리하는 방법에 대해 자세히 알아보세요. 또한 카우치베이스 모바일 자마린 미니 해킹
에서 오프라인 모바일 애플리케이션을 빌드하는 방법을 배울 수 있으며, 다음 Xamarin Couchbase 블로그에서 이에 대해 자세히 살펴보겠습니다!