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:
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":
# 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:
: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:
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.