{"id":5015,"date":"2018-04-17T10:00:01","date_gmt":"2018-04-17T17:00:01","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=5015"},"modified":"2025-06-13T21:37:10","modified_gmt":"2025-06-14T04:37:10","slug":"xcode-playground-couchbase-mobile","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/es\/xcode-playground-couchbase-mobile\/","title":{"rendered":"Xcode Playground para explorar la API de consulta en Couchbase Lite 2.0"},"content":{"rendered":"<p>Este post es una gu\u00eda paso a paso para el uso de un Xcode Playground para explorar la nueva API de consulta en Couchbase Mobile 2.0. La p\u00e1gina <a href=\"https:\/\/www.couchbase.com\/blog\/es\/couchbase-mobile-2-0\/\">Lanzamiento de Couchbase Lite 2.0<\/a> introduce una API de consulta simplificada basada en <a href=\"https:\/\/www.couchbase.com\/blog\/es\/products\/n1ql\/\">N1QL<\/a>el lenguaje de consulta declarativo de Couchbase que extiende SQL para JSON. Si est\u00e1s familiarizado con SQLite, te sentir\u00e1s como en casa con el nuevo <em>Generador de consultas<\/em> interfaz . La API de consulta est\u00e1 dise\u00f1ada utilizando la <a href=\"https:\/\/en.wikipedia.org\/wiki\/Fluent_interface\">Patr\u00f3n de dise\u00f1o de API fluido<\/a>y utiliza un m\u00e9todo en cascada para leerse como un Lenguaje de Dominio Espec\u00edfico. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Domain-specific_language\">(DSL)<\/a>. Esto hace que la interfaz sea muy intuitiva y f\u00e1cil de entender.<\/p>\n<p>Xcode Playground es un entorno interactivo que te permite escribir y ejecutar c\u00f3digo swift inmediatamente, y ofrece una forma c\u00f3moda 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\u00ed. Utilizaremos uno que hemos creado espec\u00edficamente para probar la API de consulta.<\/p>\n<p>Mientras que el playground de Xcode muestra las consultas en swift, dada la naturaleza unificada de la API QueryBuilder a trav\u00e9s de las diversas plataformas de Couchbase Lite, salvo modismos espec\u00edficos del lenguaje, deber\u00edas ser capaz de traducir f\u00e1cilmente las consultas a cualquiera de los otros lenguajes de plataforma soportados en Couchbase Lite. As\u00ed que, incluso si eres <em>no<\/em> un desarrollador Swift, usted debe ser capaz de aprovechar el patio de recreo Xcode para la exploraci\u00f3n 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\u00eda ser capaz de seguir a lo largo. Por supuesto, \u00a1necesitar\u00e1s un Mac!<\/p>\n<p>Puede obtener m\u00e1s informaci\u00f3n sobre la API QueryBuilder en nuestra secci\u00f3n <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/couchbase-lite\/index.html\">Referencias API<\/a> gu\u00eda.<\/p>\n<p><!--more--><\/p>\n<h3 id=\"recommendedreading\">Lecturas recomendadas<\/h3>\n<p>Estas entradas de blog tratan en detalle las distintas funciones de consulta<br \/>\n&#8211; <a href=\"https:\/\/www.couchbase.com\/blog\/es\/sql-for-json-query-interface-couchbase-mobile\/\">Fundamentos de la API de consulta<\/a><br \/>\n&#8211; <a href=\"https:\/\/www.couchbase.com\/blog\/es\/querying-array-collections-couchbase-mobile\/\">Consulta de colecciones de matrices<\/a><br \/>\n&#8211; <a href=\"https:\/\/www.couchbase.com\/blog\/es\/full-text-search-couchbase-mobile-2-0\/\">Capacidad de b\u00fasqueda de texto completo.<\/a><br \/>\n&#8211; <a href=\"https:\/\/www.couchbase.com\/blog\/es\/join-queries-couchbase-mobile\/\">Consulta JOIN b\u00e1sica<\/a><\/p>\n<h3 id=\"background\">Fondo<\/h3>\n<p>Si estabas usando versiones 1.x de Couchbase Mobile, probablemente est\u00e9s familiarizado con <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/1.4\/training\/develop\/using-the-database\/index.html#query-documents\">Map-Views<\/a> para crear \u00edndices y consultas. En la versi\u00f3n 2.0, ya no es necesario crear vistas y funciones de mapa. En su lugar, una sencilla interfaz le permite crear \u00edndices y puede utilizar una interfaz Query Builder para construir sus consultas. En comparaci\u00f3n, la nueva interfaz de consulta es m\u00e1s sencilla de utilizar y mucho m\u00e1s potente.<\/p>\n<h3 id=\"tldr\">TL;DR<\/h3>\n<p>Si lo prefiere, aqu\u00ed tiene una grabaci\u00f3n en v\u00eddeo de todo lo tratado en esta entrada del blog<\/p>\n<p><iframe loading=\"lazy\" title=\"Xcode Playground para probar y explorar APIs de consulta en Couchbase Mobile\" width=\"900\" height=\"675\" src=\"https:\/\/www.youtube.com\/embed\/9NA2OXdSiqA?feature=oembed&#038;enablejsapi=1&#038;origin=https:\/\/www.couchbase.com\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<h3 id=\"pre-requisites\">Requisitos previos<\/h3>\n<ul>\n<li>Xcode 8.3.3+ , \u00faltima versi\u00f3n descargable desde <a href=\"https:\/\/itunes.apple.com\/us\/app\/xcode\/id497799835?mt=12\">Mac App Store<\/a><\/li>\n<\/ul>\n<p>Playground es compatible con Swift 3.1+.<\/p>\n<h4 id=\"installation\">Instalaci\u00f3n<\/h4>\n<ul>\n<li>Clonar el <em>couchbase-lite-ios-api-playground<\/em> de GitHub ejecutando el siguiente comando desde el terminal<\/li>\n<\/ul>\n<pre><code> $ git clone https:\/\/github.com\/couchbaselabs\/couchbase-lite-ios-api-playground<\/code><\/pre>\n<ul>\n<li>Utilizaremos <a href=\"https:\/\/github.com\/Carthage\/Carthage\">Cartago<\/a> para descargar e instalar CouchbaseLite. Carthage es un sistema de gesti\u00f3n de dependencias para aplicaciones Cocoa. Ten en cuenta que Couchbase Lite para iOS es <a href=\"https:\/\/developer.couchbase.com\/documentation\/mobile\/2.0\/couchbase-lite\/swift.html#getting-started\">distribuido<\/a> a trav\u00e9s de Cocoapods , Cartago o puede descargarlo directamente de nuestro <a href=\"https:\/\/www.couchbase.com\/blog\/es\/downloads\/\">Descargas<\/a> p\u00e1gina. Aqu\u00ed utilizaremos Cartago.<br \/>\nSi no dispone de Carthage, siga estos pasos <a href=\"https:\/\/github.com\/Carthage\/Carthage#installing-carthage\">instrucciones<\/a> para instalar Carthage en su MacOS<\/li>\n<li>Verifique su instalaci\u00f3n de carthage escribiendo el siguiente comando en su ventana de terminal. Se mostrar\u00e1 la versi\u00f3n de carthage instalada<\/li>\n<\/ul>\n<pre><code> $ carthage version<\/code><\/pre>\n<ul>\n<li>Cambie a la carpeta que contiene el <a href=\"https:\/\/github.com\/Carthage\/Carthage\/blob\/master\/Documentation\/Artifacts.md#cartfile\"><em>Cartfile<\/em><\/a>. Se encuentra en el <em>Cartago<\/em> carpeta. El Cartfile especifica las dependencias del proyecto, que en nuestro caso es el framework Couchbase Lite.<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/carthage<\/code><\/pre>\n<ul>\n<li>Descargue Couchbase Lite utilizando Carthage. La versi\u00f3n de Couchbase Lite utilizada se especifica en el archivo <em>Cartfile<\/em>. Utilizaremos el <code>--no-build<\/code> para especificar que carthage no construya el c\u00f3digo fuente, sino que s\u00f3lo compruebe los archivos del repositorio de GitHub especificado. Esto ahorra tiempo.<\/li>\n<\/ul>\n<pre><code> $ carthage update \u2013platform ios \u2013no-build<\/code><\/pre>\n<ul>\n<li>Compruebe que el framework Couchbase Lite se ha comprobado correctamente ejecutando este comando en su terminal<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/carthage\r\n $ ls -l Carthage\/Checkouts\/couchbase-lite-ios\/\r\n total 24\r\n -rw-r\u2013r\u2013 1 priya.rajagopal 141224203 957 Apr 11 17:06 CouchbaseLite.podspec\r\n drwxr-xr-x@ 6 priya.rajagopal 141224203 192 Apr 11 17:09 CouchbaseLite.xcodeproj\r\n -rw-r\u2013r\u2013 1 priya.rajagopal 141224203 987 Apr 11 17:06 CouchbaseLiteSwift.podspec\r\n -rw-r\u2013r\u2013 1 priya.rajagopal 141224203 10273 Apr 11 17:06 LICENSE\r\n drwxr-xr-x 117 priya.rajagopal 141224203 3744 Apr 11 17:06 Objective-C\r\n -rw-r\u2013r\u2013 1 priya.rajagopal 141224203 2426 Apr 11 17:06 README.md\r\n drwxr-xr-x 11 priya.rajagopal 141224203 352 Apr 11 17:06 Scripts\r\n drwxr-xr-x 70 priya.rajagopal 141224203 2240 Apr 11 17:06 Swift\r\n drwxr-xr-x 4 priya.rajagopal 141224203 128 Apr 11 17:06 docs\r\n drwxr-xr-x 4 priya.rajagopal 141224203 128 Apr 11 17:06 vendor\r\n drwxr-xr-x 13 priya.rajagopal 141224203 416 Apr 11 17:06 xcconfigs<\/code><\/pre>\n<h4 id=\"setup\">Configurar<\/h4>\n<p>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 <em>\"Datos compartidos del patio de recreo\"<\/em> dentro de la carpeta <em>Documentos<\/em> de tu Mac.<br \/>\nLos siguientes pasos son necesarios la primera vez que se configura para Playground. Posteriormente, deber\u00e1 seguir estos pasos <em>s\u00f3lo si<\/em> est\u00e1 modificando la base de datos.<\/p>\n<ul>\n<li>Cree una carpeta con el nombre \"Datos compartidos de Playground\" dentro de la carpeta \"Documentos\" de su Mac (si no existe ninguna).<\/li>\n<\/ul>\n<pre><code> $ mkdir ~\/Documents\/Shared\\ Playground\\ Data\/<\/code><\/pre>\n<ul>\n<li>Copie la carpeta \"travel-sample.cblite2\" que se extrae de la carpeta <em>couchbase-lite-ios-api-playground<\/em> en el \"Shared Playground Data\". Esta base de datos preconstruida se utilizar\u00e1 para probar las consultas.<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/\r\n $ cp -r travel-sample.cblite2 ~\/Documents\/Shared\\ Playground\\ Data\/<\/code><\/pre>\n<ul>\n<li>Copie la carpeta \"joindb.cblite2\" que se extrae de la carpeta <em>couchbase-lite-ios-api-playground<\/em> en el \"Shared Playground Data\". Esta base de datos preconstruida se utilizar\u00e1 para probar las consultas relacionadas con JOINs.<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/\r\n $ cp -r joindb.cblite2 ~\/Documents\/Shared\\ Playground\\ Data\/<\/code><\/pre>\n<ul>\n<li>Compruebe que los archivos se han copiado correctamente utilizando este comando<\/li>\n<\/ul>\n<pre><code> $ ls -l ~\/Documents\/Shared\\ Playground\\ Data\/<\/code><\/pre>\n<h4 id=\"exploringtheproject\">Explorar el proyecto<\/h4>\n<p>Anteriormente en este post, he mencionado que el Xcode Playground no requiere un proyecto de aplicaci\u00f3n en toda regla. Esto sigue siendo cierto. Sin embargo, en nuestro caso, tenemos que ser capaces de construir y vincular el <code>CouchbaseLite.framework<\/code> con el Playground. Puede haber otras opciones, pero la forma en que lo hice fue crear un proyecto Xcode ficticio llamado <em>CBLTestBed.xcodeproj<\/em> que incluye el Parque Infantil y el <code>CouchbaseLite.xcodeproj<\/code>.<\/p>\n<p>As\u00ed que cuando construya el <em>CBLTestCama<\/em> construir\u00eda el framework CouchbaseLiteSwift que es importado por Playground. Examinemos esto m\u00e1s a fondo.<\/p>\n<ul>\n<li>Abra el <code>CBLTestBed.xcodeproj<\/code> con Xcode<\/li>\n<\/ul>\n<pre><code> $ cd \/path\/to\/couchbase-lite-ios-api-playground\/\r\n $ open CBLTestBed.xcodeproj\/<\/code><\/pre>\n<ul>\n<li>Deber\u00edas ver <code>CBLQueryPlayground.playground<\/code> y <code>CouchbaseLite.xcodeproj<\/code> contenida en el <code>CBLTestBed.xcodeproj<\/code><\/li>\n<\/ul>\n<figure><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/exploring_project.png\" alt=\"\" \/><\/figure>\n<ul>\n<li>Examinemos la <code>CBLQueryPlayground.playground<\/code>. Deber\u00eda ver varias p\u00e1ginas de Playground en su explorador de proyectos. Puede empezar por cualquier p\u00e1gina del Playground, pero probablemente lo m\u00e1s l\u00f3gico ser\u00eda empezar por la p\u00e1gina \"ToC\". Esta es la \"Tabla de Contenidos\" y proporciona un punto de entrada a otras p\u00e1ginas.<\/li>\n<li>Marque la casilla \"Renderizar documentaci\u00f3n\" en la ventana de utilidades para activar la renderizaci\u00f3n de las p\u00e1ginas de la zona de juegos.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/pages.png\" alt=\"\" \/><\/li>\n<li>Desde la p\u00e1gina \"ToC\", puede navegar a cualquiera de las otras p\u00e1ginas de la zona de juegos. Cada p\u00e1gina 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\u00fan corresponda. Como se explica en la secci\u00f3n \"Configuraci\u00f3n\", estas bases de datos se encuentran en la carpeta \"~\/Documents\/Shared\\ Playground\\ Data\/\".<\/li>\n<li>Todas las p\u00e1ginas de Playground siguen el mismo patr\u00f3n. Abrimos la base de datos local y luego invocamos funciones que realizan la consulta utilizando la API QueryBuilder.<br \/>\nEsta es la estructura b\u00e1sica ....<\/li>\n<\/ul>\n<pre class=\"lang:swift decode:true\">do {\r\n   \/\/ Open or Create Couchbase Lite Database\r\n   if let db:Database = try createOrOpenDatabase() {\r\n      let results1 = try queryForDocumentsByTestingArrayContainment(db, limit: 5)\r\n      print(\"\\n*****\\nResponse to queryForDocumentsByTestingArrayContainment : \\n \\(results1)\")\r\n  }\r\n}\r\ncatch {\r\n   print (\"Exception is (error.localizedDescription)\")\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h4 id=\"buildandrun\">Construir y ejecutar<\/h4>\n<p>Para poder ejecutar el Playground, primero hay que construir la aplicaci\u00f3n <em>CouchbaseLiteSwift<\/em> framework. Puede hacerlo construyendo el contenedor <code>CBLTestBed.xcodeproj<\/code>.<\/p>\n<ul>\n<li>Selecciona el esquema \"CBLTestBed\" y selecciona un simulador como objetivo. Construye el proyecto utilizando <em>Cmd-B<\/em>.<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/project_build.png\" alt=\"\" \/><\/li>\n<li>Una vez que el proyecto se ha creado correctamente, puede ejecutar un campo de juego pulsando el bot\u00f3n \"Ejecutar\".<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2018\/04\/run_page.gif\" alt=\"\" \/><\/li>\n<li>Los resultados deber\u00edan mostrarse en la consola de salida<\/li>\n<li>Por supuesto, como se trata de un patio de recreo, tambi\u00e9n puede examinar los resultados en l\u00ednea<\/li>\n<\/ul>\n<h4 id=\"exploringotherqueryoptions\">Otras opciones de consulta<\/h4>\n<p>Las consultas proporcionadas con el patio de recreo de muestra est\u00e1n pensadas para ser utilizadas como referencia. Deber\u00eda ser sencillo ver que puedes actualizar las consultas para explorar otras opciones de consulta.<\/p>\n<p>As\u00ed, por ejemplo, en el ejemplo siguiente, cambie la propiedad \"type\" y el valor \"limit\" por otros y vea qu\u00e9 ocurre con los resultados. Tambi\u00e9n puede a\u00f1adir sus propias consultas.<\/p>\n<pre class=\"lang:swift decode:true\">func queryForDocumentsOfSpecificTypeFromDB(_ db:Database,limit:Int = 10 ) throws -&gt; [Data]? {\r\n  let searchQuery = QueryBuilder\r\n     .select(SelectResult.all())\r\n     .from(DataSource.database(db))\r\n     .where(Expression.property(&amp;amp;quot;type&amp;amp;quot;).equalTo(Expression.string(&amp;amp;quot;hotel&amp;amp;quot;)))\r\n     .limit(Expression.int(limit))\r\n\r\n  var matches:[Data] = [Data]()\r\n  do {\r\n    for row in try searchQuery.execute() {\r\n        matches.append(row.toDictionary())\r\n    }\r\n }\r\n return matches\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h3 id=\"whatnext\">\u00bfQu\u00e9 sigue?<\/h3>\n<p>Esta entrada de blog demostr\u00f3 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\u00f1adir nuevas consultas, por favor env\u00ede un Github <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-lite-ios-api-playground\">PR<\/a>.<\/p>\n<p>Si tiene alguna pregunta o sugerencia, deje un comentario a continuaci\u00f3n o p\u00f3ngase en contacto conmigo en Twitter\u00a0<a href=\"https:\/\/twitter.com\/rajagp\">@rajagp<\/a>\u00a0o env\u00edeme un correo electr\u00f3nico\u00a0<a href=\"mailto:priya.rajagopal@couchbase.com\">priya.rajagopal@couchbase.com<\/a>.  En\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/es\/forums\/\">Foros de Couchbase<\/a> son otro buen lugar para plantear preguntas.<\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>This post is a step-by-step guide for using an Xcode Playground for exploring the new querying API in Couchbase Mobile 2.0. The Couchbase Lite 2.0 Release introduces a simplified query API based on N1QL, Couchbase\u2019s declarative query language that extends [&hellip;]<\/p>","protected":false},"author":1423,"featured_media":11842,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2370,1815,7667,1810,2165,9410,1812],"tags":[1536,1909],"ppma_author":[8948],"class_list":["post-5015","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-best-practices-and-tutorials","category-couchbase-lite","category-couchbase-mobile","category-full-text-search","category-objective-c","category-n1ql-query","tag-ios","tag-swift"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.2 (Yoast SEO v26.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Xcode Playground for Exploring Couchbase Mobile Query API<\/title>\n<meta name=\"description\" content=\"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/es\/xcode-playground-couchbase-mobile\/\" \/>\n<meta property=\"og:locale\" content=\"es_MX\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Xcode Playground for Exploring Query API in Couchbase Lite 2.0\" \/>\n<meta property=\"og:description\" content=\"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/es\/xcode-playground-couchbase-mobile\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-04-17T17:00:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T04:37:10+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"728\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rajagp\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Priya Rajagopal, Senior Director, Product Management\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"Xcode Playground for Exploring Query API in Couchbase Lite 2.0\",\"datePublished\":\"2018-04-17T17:00:01+00:00\",\"dateModified\":\"2025-06-14T04:37:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\"},\"wordCount\":1277,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\",\"keywords\":[\"ios\",\"swift\"],\"articleSection\":[\"Android\",\"Best Practices and Tutorials\",\"Couchbase Lite\",\"Couchbase Mobile\",\"Full-Text Search\",\"Objective-C\",\"SQL++ \/ N1QL Query\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\",\"name\":\"Xcode Playground for Exploring Couchbase Mobile Query API\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\",\"datePublished\":\"2018-04-17T17:00:01+00:00\",\"dateModified\":\"2025-06-14T04:37:10+00:00\",\"description\":\"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png\",\"width\":1200,\"height\":728,\"caption\":\"An Xcode playground for Couchbase Lite 2.0\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Xcode Playground for Exploring Query API in Couchbase Lite 2.0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png\",\"width\":218,\"height\":34,\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\",\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g\",\"caption\":\"Priya Rajagopal, Senior Director, Product Management\"},\"description\":\"Priya Rajagopal is a Senior Director of Product Management at Couchbase responsible for developer platforms for the cloud and the edge. She has been professionally developing software for over 20 years in several technical and product leadership positions, with 10+ years focused on mobile technologies. As a TISPAN IPTV standards delegate, she was a key contributor to the IPTV standards specifications. She has 22 patents in the areas of networking and platform security.\",\"sameAs\":[\"https:\/\/x.com\/rajagp\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/es\/author\/priya-rajagopalcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Xcode Playground for Exploring Couchbase Mobile Query API","description":"Este post es una gu\u00eda paso a paso para usar Xcode Playground para probar y explorar la API Query en Couchbase Mobile 2.0. Dada la naturaleza unificada de la API QueryBuilder, deber\u00edas ser capaz de traducir f\u00e1cilmente las consultas swift a cualquiera de los otros lenguajes de plataforma soportados en Couchbase Lite.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/es\/xcode-playground-couchbase-mobile\/","og_locale":"es_MX","og_type":"article","og_title":"Xcode Playground for Exploring Query API in Couchbase Lite 2.0","og_description":"This post is a step-by-step guide to using Xcode Playground to test and explore the Query API in Couchbase Mobile 2.0. Given the unified nature of the QueryBuilder API you should be able to easily translate the swift queries to any of the other platform languages supported in Couchbase Lite","og_url":"https:\/\/www.couchbase.com\/blog\/es\/xcode-playground-couchbase-mobile\/","og_site_name":"The Couchbase Blog","article_published_time":"2018-04-17T17:00:01+00:00","article_modified_time":"2025-06-14T04:37:10+00:00","og_image":[{"width":1200,"height":728,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","type":"image\/png"}],"author":"Priya Rajagopal, Senior Director, Product Management","twitter_card":"summary_large_image","twitter_creator":"@rajagp","twitter_misc":{"Written by":"Priya Rajagopal, Senior Director, Product Management","Est. reading time":"8 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"Xcode Playground for Exploring Query API in Couchbase Lite 2.0","datePublished":"2018-04-17T17:00:01+00:00","dateModified":"2025-06-14T04:37:10+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/"},"wordCount":1277,"commentCount":1,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","keywords":["ios","swift"],"articleSection":["Android","Best Practices and Tutorials","Couchbase Lite","Couchbase Mobile","Full-Text Search","Objective-C","SQL++ \/ N1QL Query"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/","url":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/","name":"Xcode Playground for Exploring Couchbase Mobile Query API","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","datePublished":"2018-04-17T17:00:01+00:00","dateModified":"2025-06-14T04:37:10+00:00","description":"Este post es una gu\u00eda paso a paso para usar Xcode Playground para probar y explorar la API Query en Couchbase Mobile 2.0. Dada la naturaleza unificada de la API QueryBuilder, deber\u00edas ser capaz de traducir f\u00e1cilmente las consultas swift a cualquiera de los otros lenguajes de plataforma soportados en Couchbase Lite.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2018\/04\/xcode-playground-couchbase-lite-2-0.png","width":1200,"height":728,"caption":"An Xcode playground for Couchbase Lite 2.0"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/xcode-playground-couchbase-mobile\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Xcode Playground for Exploring Query API in Couchbase Lite 2.0"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"El blog de Couchbase","description":"Couchbase, la base de datos NoSQL","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"El blog de Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2023\/04\/admin-logo.png","width":218,"height":34,"caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c","name":"Priya Rajagopal, Directora de Gesti\u00f3n de Productos","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/4b50a54778b979d8c345b036ab138734","url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","caption":"Priya Rajagopal, Senior Director, Product Management"},"description":"Priya Rajagopal es directora s\u00e9nior de gesti\u00f3n de productos en Couchbase y responsable de las plataformas de desarrollo para la nube y el per\u00edmetro. Lleva m\u00e1s de 20 a\u00f1os dedic\u00e1ndose profesionalmente al desarrollo de software en varios puestos de liderazgo t\u00e9cnico y de producto, con m\u00e1s de 10 a\u00f1os centrados en tecnolog\u00edas m\u00f3viles. Como delegada de est\u00e1ndares IPTV de TISPAN, fue una colaboradora clave en las especificaciones de est\u00e1ndares IPTV. Tiene 22 patentes en las \u00e1reas de redes y seguridad de plataformas.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/es\/author\/priya-rajagopalcouchbase-com\/"}]}},"authors":[{"term_id":8948,"user_id":1423,"is_guest":0,"slug":"priya-rajagopalcouchbase-com","display_name":"Priya Rajagopal, Senior Director, Product Management","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/acfb2349788955262cd069497a9e7bdb0e97c26326f2e55811e7c1174e9ef1be?s=96&d=mm&r=g","author_category":"","last_name":"Rajagopal, Senior Director, Product Management","first_name":"Priya","job_title":"","user_url":"","description":"Priya Rajagopal es directora s\u00e9nior de gesti\u00f3n de productos en Couchbase y responsable de las plataformas de desarrollo para la nube y el per\u00edmetro. Lleva m\u00e1s de 20 a\u00f1os dedic\u00e1ndose profesionalmente al desarrollo de software en varios puestos de liderazgo t\u00e9cnico y de producto, con m\u00e1s de 10 a\u00f1os centrados en tecnolog\u00edas m\u00f3viles. Como delegada de est\u00e1ndares IPTV de TISPAN, fue una colaboradora clave en las especificaciones de est\u00e1ndares IPTV. Tiene 22 patentes en las \u00e1reas de redes y seguridad de plataformas."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/5015","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/users\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/comments?post=5015"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/posts\/5015\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media\/11842"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/media?parent=5015"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/categories?post=5015"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/tags?post=5015"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/es\/wp-json\/wp\/v2\/ppma_author?post=5015"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}