Este post es una guía paso a paso para el uso de un Xcode Playground para explorar la nueva API de consulta en Couchbase Mobile 2.0. La página Lanzamiento de Couchbase Lite 2.0 introduce una API de consulta simplificada basada en N1QLel lenguaje de consulta declarativo de Couchbase que extiende SQL para JSON. Si estás familiarizado con SQLite, te sentirás como en casa con el nuevo Generador de consultas interfaz . La API de consulta está diseñada utilizando la Patrón de diseño de API fluidoy utiliza un método en cascada para leerse como un Lenguaje de Dominio Específico. (DSL). Esto hace que la interfaz sea muy intuitiva y fácil de entender.
Xcode Playground es un entorno interactivo que te permite escribir y ejecutar código swift inmediatamente, y ofrece una forma cómoda de aprender y explorar APIs sin tener que crear un proyecto completo de Xcode App. Este es un caso de uso perfecto para explorar la API Coucbase Lite 2.0. No vamos a crear una zona de juegos aquí. Utilizaremos uno que hemos creado específicamente para probar la API de consulta.
Mientras que el playground de Xcode muestra las consultas en swift, dada la naturaleza unificada de la API QueryBuilder a través de las diversas plataformas de Couchbase Lite, salvo modismos específicos del lenguaje, deberías ser capaz de traducir fácilmente las consultas a cualquiera de los otros lenguajes de plataforma soportados en Couchbase Lite. Así que, incluso si eres no un desarrollador Swift, usted debe ser capaz de aprovechar el patio de recreo Xcode para la exploración de la API. Este post no hace suposiciones acerca de su familiaridad con Swift o iOS Desarrollo por lo que incluso si usted es un novato completo para el desarrollo de iOS, usted debería ser capaz de seguir a lo largo. Por supuesto, ¡necesitarás un Mac!
Puede obtener más información sobre la API QueryBuilder en nuestra sección Referencias API guía.
Lecturas recomendadas
Estas entradas de blog tratan en detalle las distintas funciones de consulta
– Fundamentos de la API de consulta
– Consulta de colecciones de matrices
– Capacidad de búsqueda de texto completo.
– Consulta JOIN básica
Fondo
Si estabas usando versiones 1.x de Couchbase Mobile, probablemente estés familiarizado con Map-Views para crear índices y consultas. En la versión 2.0, ya no es necesario crear vistas y funciones de mapa. En su lugar, una sencilla interfaz le permite crear índices y puede utilizar una interfaz Query Builder para construir sus consultas. En comparación, la nueva interfaz de consulta es más sencilla de utilizar y mucho más potente.
TL;DR
Si lo prefiere, aquí tiene una grabación en vídeo de todo lo tratado en esta entrada del blog
Requisitos previos
- Xcode 8.3.3+ , última versión descargable desde Mac App Store
Playground es compatible con Swift 3.1+.
Instalación
- Clonar el couchbase-lite-ios-api-playground de GitHub ejecutando el siguiente comando desde el terminal
|
1 |
$ git clonar https://github.com/couchbaselabs/couchbase-lite-ios-api-playground |
- Utilizaremos Cartago para descargar e instalar CouchbaseLite. Carthage es un sistema de gestión de dependencias para aplicaciones Cocoa. Ten en cuenta que Couchbase Lite para iOS es distribuido a través de Cocoapods , Cartago o puede descargarlo directamente de nuestro Descargas página. Aquí utilizaremos Cartago.
Si no dispone de Carthage, siga estos pasos instrucciones para instalar Carthage en su MacOS - Verifique su instalación de carthage escribiendo el siguiente comando en su ventana de terminal. Se mostrará la versión de carthage instalada
|
1 |
$ Cartago versión |
- Cambie a la carpeta que contiene el Cartfile. Se encuentra en el Cartago carpeta. El Cartfile especifica las dependencias del proyecto, que en nuestro caso es el framework Couchbase Lite.
|
1 |
$ cd /ruta/a/couchbase-lite-ios-api-parque infantil/Cartago |
- Descargue Couchbase Lite utilizando Carthage. La versión de Couchbase Lite utilizada se especifica en el archivo Cartfile. Utilizaremos el
--no-buildpara especificar que carthage no construya el código fuente, sino que sólo compruebe los archivos del repositorio de GitHub especificado. Esto ahorra tiempo.
|
1 |
$ Cartago actualización -plataforma ios -no-construya |
- Compruebe que el framework Couchbase Lite se ha comprobado correctamente ejecutando este comando en su terminal
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$ cd /ruta/a/couchbase-lite-ios-api-parque infantil/Cartago $ ls -l Cartago/Salidas/couchbase-lite-ios/ total 24 -rw-r-r- 1 priya.rajagopal 141224203 957 Abr 11 17:06 CouchbaseLite.podspec drwxr-xr-x@ 6 priya.rajagopal 141224203 192 Abr 11 17:09 CouchbaseLite.xcodeproj -rw-r-r- 1 priya.rajagopal 141224203 987 Abr 11 17:06 CouchbaseLiteSwift.podspec -rw-r-r- 1 priya.rajagopal 141224203 10273 Abr 11 17:06 LICENCIA drwxr-xr-x 117 priya.rajagopal 141224203 3744 Abr 11 17:06 Objetivo-C -rw-r-r- 1 priya.rajagopal 141224203 2426 Abr 11 17:06 LÉAME.md drwxr-xr-x 11 priya.rajagopal 141224203 352 Abr 11 17:06 Guiones drwxr-xr-x 70 priya.rajagopal 141224203 2240 Abr 11 17:06 Swift drwxr-xr-x 4 priya.rajagopal 141224203 128 Abr 11 17:06 docs drwxr-xr-x 4 priya.rajagopal 141224203 128 Abr 11 17:06 vendedor drwxr-xr-x 13 priya.rajagopal 141224203 416 Abr 11 17:06 xcconfigs |
Configurar
Utilizaremos dos bases de datos pre-construidas de Couchbase Lite para ejercitar nuestras consultas. Para que Xcode Playground pueda acceder a estas bases de datos, deben estar ubicadas en un directorio especial "Datos compartidos del patio de recreo" dentro de la carpeta Documentos de tu Mac.
Los siguientes pasos son necesarios la primera vez que se configura para Playground. Posteriormente, deberá seguir estos pasos sólo si está modificando la base de datos.
- Cree una carpeta con el nombre "Datos compartidos de Playground" dentro de la carpeta "Documentos" de su Mac (si no existe ninguna).
|
1 |
$ mkdir ~/Documentos/Compartido\ Parque infantil\ Datos/ |
- Copie la carpeta "travel-sample.cblite2" que se extrae de la carpeta couchbase-lite-ios-api-playground en el "Shared Playground Data". Esta base de datos preconstruida se utilizará para probar las consultas.
|
1 2 |
$ cd /ruta/a/couchbase-lite-ios-api-parque infantil/ $ cp -r viaje-muestra.cblite2 ~/Documentos/Compartido\ Parque infantil\ Datos/ |
- Copie la carpeta "joindb.cblite2" que se extrae de la carpeta couchbase-lite-ios-api-playground en el "Shared Playground Data". Esta base de datos preconstruida se utilizará para probar las consultas relacionadas con JOINs.
|
1 2 |
$ cd /ruta/a/couchbase-lite-ios-api-parque infantil/ $ cp -r joindb.cblite2 ~/Documentos/Compartido\ Parque infantil\ Datos/ |
- Compruebe que los archivos se han copiado correctamente utilizando este comando
|
1 |
$ ls -l ~/Documentos/Compartido\ Parque infantil\ Datos/ |
Explorar el proyecto
Anteriormente en este post, he mencionado que el Xcode Playground no requiere un proyecto de aplicación en toda regla. Esto sigue siendo cierto. Sin embargo, en nuestro caso, tenemos que ser capaces de construir y vincular el CouchbaseLite.framework con el Playground. Puede haber otras opciones, pero la forma en que lo hice fue crear un proyecto Xcode ficticio llamado CBLTestBed.xcodeproj que incluye el Parque Infantil y el CouchbaseLite.xcodeproj.
Así que cuando construya el CBLTestCama construiría el framework CouchbaseLiteSwift que es importado por Playground. Examinemos esto más a fondo.
- Abra el
CBLTestBed.xcodeprojcon Xcode
|
1 2 |
$ cd /ruta/a/couchbase-lite-ios-api-parque infantil/ $ abra CBLTestCama.xcodeproj/ |
- Deberías ver
CBLQueryPlayground.playgroundyCouchbaseLite.xcodeprojcontenida en elCBLTestBed.xcodeproj

- Examinemos la
CBLQueryPlayground.playground. Debería ver varias páginas de Playground en su explorador de proyectos. Puede empezar por cualquier página del Playground, pero probablemente lo más lógico sería empezar por la página "ToC". Esta es la "Tabla de Contenidos" y proporciona un punto de entrada a otras páginas. - Marque la casilla "Renderizar documentación" en la ventana de utilidades para activar la renderización de las páginas de la zona de juegos.

- Desde la página "ToC", puede navegar a cualquiera de las otras páginas de la zona de juegos. Cada página del patio de recreo incluye un conjunto de ejemplos de consulta que ejercitan la API de consulta con la base de datos "travel-sample.cblite" o la base de datos "joindb.cblite", según corresponda. Como se explica en la sección "Configuración", estas bases de datos se encuentran en la carpeta "~/Documents/Shared\ Playground\ Data/".
- Todas las páginas de Playground siguen el mismo patrón. Abrimos la base de datos local y luego invocamos funciones que realizan la consulta utilizando la API QueryBuilder.
Esta es la estructura básica ....
|
1 2 3 4 5 6 7 8 9 10 |
do { // Abrir o crear base de datos Couchbase Lite si deje db:Base de datos = pruebe createOrOpenDatabase() { deje resultados1 = pruebe queryForDocumentsByTestingArrayContainment(db, límite: 5) imprimir("\n*****\nResponse to queryForDocumentsByTestingArrayContainment : \n \(resultados1)") } } captura { imprimir ("La excepción es (error.localizedDescription)") } |
Construir y ejecutar
Para poder ejecutar el Playground, primero hay que construir la aplicación CouchbaseLiteSwift framework. Puede hacerlo construyendo el contenedor CBLTestBed.xcodeproj.
- Selecciona el esquema "CBLTestBed" y selecciona un simulador como objetivo. Construye el proyecto utilizando Cmd-B.

- Una vez que el proyecto se ha creado correctamente, puede ejecutar un campo de juego pulsando el botón "Ejecutar".

- Los resultados deberían mostrarse en la consola de salida
- Por supuesto, como se trata de un patio de recreo, también puede examinar los resultados en línea
Otras opciones de consulta
Las consultas proporcionadas con el patio de recreo de muestra están pensadas para ser utilizadas como referencia. Debería ser sencillo ver que puedes actualizar las consultas para explorar otras opciones de consulta.
Así, por ejemplo, en el ejemplo siguiente, cambie la propiedad "type" y el valor "limit" por otros y vea qué ocurre con los resultados. También puede añadir sus propias consultas.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
func queryForDocumentsOfSpecificTypeFromDB(_ db:Base de datos,límite:Int = 10 ) lanza -> [Datos]? { deje searchQuery = Constructor de consultas .seleccione(SeleccionarResultado.todos()) .de(Fuente de datos.base de datos(db)) .donde(Expresión.propiedad("tipo").equalTo(Expresión.cadena("hotel"))) .límite(Expresión.int(límite)) var coincide con:[Datos] = [Datos]() do { para fila en pruebe searchQuery.ejecutar() { coincide con.añadir(fila.toDictionary()) } } devolver coincide con } |
¿Qué sigue?
Esta entrada de blog demostró el uso de Xcode Playgrounds como una forma conveniente de explorar y probar la nueva API de consulta en Couchbase Mobile 2.0. Si desea añadir nuevas consultas, por favor envíe un Github PR.
Si tiene alguna pregunta o sugerencia, deje un comentario a continuación o póngase en contacto conmigo en Twitter @rajagp o envíeme un correo electrónico priya.rajagopal@couchbase.com. En Foros de Couchbase son otro buen lugar para plantear preguntas.
el
carthage update -plataforma ios -no-buildno funciona, probablemente estaba destinado a sercarthage update -plataforma ios --no-build?