O Couchbase Lite já foi lançado há algum tempo, então achei que era hora de dar uma atualização sobre o uso do CouchbaseLite do RubyMotion.

Quando fiz a portabilidade ToDoLite-iOS Para o RubyMotion, originalmente havia alguns obstáculos no caminho, mas funcionou no geral. Por exemplo, houve alguns problemas com o fato de o RubyMotion não lidar com lambdas da maneira que o CouchbaseLite precisa, mas isso foi resolvido desde então. Se você não sabe o que quero dizer com isso, pode ficar feliz e esquecer o assunto, ou ler sobre o assunto.

Então, do que preciso agora para começar a usar o Couchbase Lite e o iOS?

Agora é possível usar Ruby 100% em um projeto RubyMotion usando o Couchbase Lite, o que é ótimo. O Couchbase Lite foi lançado publicamente, saiu da versão beta e já recebeu muito carinho em termos de patches para que funcione de forma ainda mais confiável em todas as plataformas. No caso do RubyMotion, isso facilitou muito as coisas, e o processo já está em andamento:

  • Adicionar couchbase-lite via cocoapods
  • Informe ao RubyMotion onde encontrar os arquivos de cabeçalho
  • Use-o!

Instalação do Couchbase Lite via Cocoapods

Cocoápodes é um gerenciador de pacotes incrível para projetos iOS e MacOS, e ele se integra muito bem ao RubyMotion. Tudo o que você precisa fazer é adicionar cocoapods e motion-cocoapods ao seu gemfile:

fonte 'https://rubygems.org'

gema 'rake' (ancinho)

# Dependências de compilação:
gema 'cocoapods' (casulos), ‘~> 0.33.1’
gema 'motion-cocoapods', ‘~> 1.4.0’

# Adicione suas dependências:
gema "plástico-bolha, ‘~> 1.5.0’

Agora você pode instalar quaisquer cocoapods adicionando-os ao Rakefile e executando "bundle exec rake pod:install":

Motion::Project::App.configuração fazer |aplicativo|
  # Use o `rake config' para ver as configurações completas do projeto.
  aplicativo.nome = 'ToDoLite-Motion'
  aplicativo.estruturas += ["Contas, "Social]
  aplicativo.identificador = 'com.couchbase.ToDoLite-Motion'

  # Adicionar arquivos de diretório de configuração
  aplicativo.arquivos << Dir.globo('./config/*.rb')

  # Verifique se os cabeçalhos do CouchbaseLite foram encontrados
  # isso torna o CocoaPods um pouco redundante, mas atualmente é a única maneira de isso funcionar
  #
  # http://equip9.org/2014/03/06/adding-couchbase-in-a-rubymotion-app.html
  # https://groups.google.com/forum/#!topic/rubymotion/wVqdLWQ5uao
  #
  aplicativo.projeto_fornecedor('vendor/Pods/couchbase-lite-ios/CouchbaseLite.framework',
                     :static,
                     produtos: ['CouchbaseLite'],
                     headers_dir: "Cabeçalhos)

  aplicativo.codesign_certificate = 'Desenvolvedor de iPhone: Philipp Fehre (6W7Y595HZQ)'

  aplicativo.cápsulas fazer
    cápsula 'couchbase-lite-ios', ‘~> 1.0’
  final
final

Observação importante: não se esqueça de incluir:

aplicativo.projeto_fornecedor('vendor/Pods/couchbase-lite-ios/CouchbaseLite.framework',
                     :static,
                     produtos: ['CouchbaseLite'],
                     headers_dir: "Cabeçalhos)

pois os cabeçalhos não serão encontrados de outra forma.

Usando o Couchbase Lite do RubyMotion

Agora você pode usar o Couchbase Lite como faria com qualquer outra biblioteca Obj-C do RubyMotion. Por exemplo, para definir uma visualização que pegue todas as "listas" no banco de dados, você pode escrever o seguinte:

 def autônomo.queryListsInDatabase banco de dados
    view = banco de dados.viewNamed("listas")
    se !view.mapBlock
      mapa = lambda { |doc, emit|
        emitir.chamada(doc["título"], nulo) se doc["tipo"] == "lista"
      }
      vista.setMapBlock map, reduceBlock: nulo, versão: “2”
    final
    vista.createQuery
  final

Para obter mais detalhes, consulte o Projeto de amostra do RubyMotion no Github.

Autor

Postado por Philipp Fehre

Philipp Fehre é um Developer Advocate na Couchbase, trabalhando na criação de aplicativos usando Ruby/JRuby (on Rails), Rubymotion, Node.js, Java e Erlang.

Deixar uma resposta