Couchbase Lite가 출시된 지 얼마 되지 않았기 때문에 이제 RubyMotion의 CouchbaseLite 사용에 대한 업데이트를 해드릴 때가 되었다고 생각했습니다.

포팅할 때 ToDoLite-iOS 을 RubyMotion으로 전환하는 과정에서 몇 가지 문제가 있었지만 모두 해결되었습니다. 예를 들어 루비모션이 람다를 CouchbaseLite가 필요로 하는 방식으로 처리하지 못하는 문제가 있었지만 그 이후로 해결되었습니다. 무슨 말인지 모르시겠다면 만족하시고 다 잊어버리셔도 됩니다, 또는 읽어보십시오..

그렇다면 이제 Couchbase Lite와 iOS를 사용하려면 무엇이 필요할까요?

이제 Couchbase Lite를 사용하여 RubyMotion 프로젝트에 100% Ruby를 사용할 수 있게 되었습니다. Couchbase Lite는 공개적으로 출시되어 베타 버전이 나왔으며 모든 플랫폼에서 더욱 안정적으로 작동하도록 패치를 통해 이미 많은 사랑을 받고 있습니다. RubyMotion의 경우 이 덕분에 작업이 훨씬 쉬워졌고, 그 과정은 지금까지 진행 중입니다:

  • 코코아팟을 통해 카우치베이스 라이트 추가하기
  • 루비모션에 헤더 파일을 찾을 위치를 알려주세요.
  • 사용하세요!

코코아팟을 통해 Couchbase Lite 설치하기

코코아팟 는 iOS 및 MacOS 프로젝트를 위한 멋진 패키지 관리자로, RubyMotion과 매우 잘 통합됩니다. 코코아팟과 모션 코코아팟을 젬파일에 추가하기만 하면 됩니다:

출처 'https://rubygems.org'

gem 'rake'

# 빌드 종속성:
gem '코코아팟', ‘~> 0.33.1’
gem '모션-코코아팟', ‘~> 1.4.0’

# 종속성을 추가합니다:
gem '버블 랩', ‘~> 1.5.0’

이제 코코아포드를 레이크파일에 추가하고 "번들 실행 레이크 포드:설치"를 실행하여 설치할 수 있습니다:

Motion::Project::App.설정 do ||
  # 전체 프로젝트 설정을 보려면 '레이크 설정'을 사용합니다.
  앱으로 이동합니다.이름 = 'ToDoLite-Motion'
  앱으로 이동합니다.프레임워크 += ['계정', '소셜']
  앱으로 이동합니다.식별자 = 'com.couchbase.ToDoLite-Motion'

  # 구성 디렉토리 파일 추가
  앱으로 이동합니다.파일 << Dir.glob('./config/*.rb')

  # CouchbaseLite 헤더가 있는지 확인합니다.
  # 이것은 코코아팟을 일종의 중복으로 만들지만 현재로서는 이것이 작동하는 유일한 방법입니다.
  #
  # http://equip9.org/2014/03/06/adding-couchbase-in-a-rubymotion-app.html
  # https://groups.google.com/forum/#!topic/rubymotion/wVqdLWQ5uao
  #
  앱으로 이동합니다.공급업체_프로젝트('공급업체/팟/카우치베이스-lite-ios/CouchbaseLite.framework',
                     정적,
                     제품: ['카우치베이스 라이트'],
                     headers_dir: '헤더')

  앱으로 이동합니다.codesign_certificate = '아이폰 개발자: 필립 페레 (6W7Y595HZQ)'

  앱으로 이동합니다.포드 do
    pod 'couchbase-lite-ios', ‘~> 1.0’
 

중요 참고 사항, 반드시 포함하세요:

앱으로 이동합니다.공급업체_프로젝트('공급업체/팟/카우치베이스-lite-ios/CouchbaseLite.framework',
                     정적,
                     제품: ['카우치베이스 라이트'],
                     headers_dir: '헤더')

그렇지 않으면 헤더를 찾을 수 없기 때문입니다.

루비모션의 카우치베이스 라이트 사용

이제 RubyMotion의 다른 Obj-C 라이브러리처럼 Couchbase Lite를 사용할 수 있습니다. 예를 들어 데이터베이스의 모든 '목록'을 가져오는 보기를 정의하려면 다음과 같이 작성할 수 있습니다:

 def self.쿼리 목록 데이터베이스 데이터베이스
    보기 = 데이터베이스.보기 이름("목록")
    만약 !view.mapBlock
      지도 = 람다 { |doc, emit|
        방출합니다.통화(doc["title"], nil) 만약 doc["type"] == "목록"
      }
      보기.setMapBlock map, reduceBlock: nil버전: “2”
   
    보기.createQuery
 

자세한 내용은 깃허브의 루비모션 샘플 프로젝트.

작성자

게시자 필립 페레

필립 페레는 Couchbase의 개발자 옹호자로 Ruby/JRuby(on Rails), Rubymotion, Node.js, Java 및 Erlang을 사용하여 애플리케이션을 만드는 작업을 담당하고 있습니다.

댓글 남기기