{"id":8679,"date":"2020-05-18T06:30:08","date_gmt":"2020-05-18T13:30:08","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=8679"},"modified":"2025-06-13T20:08:54","modified_gmt":"2025-06-14T03:08:54","slug":"learn-couchbase-lite-in-5-minutes","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/learn-couchbase-lite-in-5-minutes\/","title":{"rendered":"Aprenda a usar o Couchbase Lite em 5 minutos"},"content":{"rendered":"<h2>Aprenda o Couchbase Lite em 5 minutos e siga o CRUD<\/h2>\n<p><span style=\"font-weight: 400\"><em>Por Matteo Sist, l\u00edder de tecnologia m\u00f3vel, <em class=\"ka\">@<a href=\"https:\/\/molo17.com\/\">MOLO17<\/a><\/em><\/em><br \/>\n<\/span><\/p>\n<p><span style=\"font-weight: 400\">Um dos principais ingredientes para aprender a criar um \u00f3timo aplicativo m\u00f3vel \u00e9 usar um bom banco de dados. Portanto, neste artigo, mostraremos como \u00e9 f\u00e1cil integrar o Couchbase Lite em um aplicativo iOS.<\/span><\/p>\n<p><span style=\"font-weight: 400\">O que \u00e9 o Couchbase Lite? O Couchbase Lite \u00e9 o SDK m\u00f3vel do <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/mobile\/\">Couchbase Mobile<\/a> que permite que os desenvolvedores integrem facilmente um banco de dados NoSQL em aplicativos m\u00f3veis.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Este blog analisar\u00e1 as opera\u00e7\u00f5es CRUD (criar, ler, atualizar, excluir), fornecendo detalhes, al\u00e9m de dicas e truques para cada uma das etapas necess\u00e1rias, e destacar\u00e1 um dos meus recursos favoritos, o Sync Gateway.<\/span><\/p>\n<h2><span style=\"font-weight: 400\">C como Criar<\/span><\/h2>\n<p><span style=\"font-weight: 400\">A primeira etapa \u00e9 criar um documento com o Couchbase. O Couchbase tem um m\u00e9todo para criar um documento, <em><strong>salvarDocumento<\/strong><\/em>. Esse m\u00e9todo aceita dois par\u00e2metros. O primeiro \u00e9 o documento (<span class=\"lang:default decode:true crayon-inline\">CouchbaseLiteSwift.MutableDocument)<\/span>\u00a0 a ser salvo, e o segundo \u00e9 um par\u00e2metro opcional (<span class=\"lang:default decode:true crayon-inline\">CouchbaseLiteSwift.ConcurrencyControl<\/span>\u00a0) que d\u00e1 aos usu\u00e1rios a op\u00e7\u00e3o de resolver poss\u00edveis conflitos automaticamente ou lan\u00e7ar uma exce\u00e7\u00e3o para permitir que os usu\u00e1rios resolvam o conflito manualmente. O valor padr\u00e3o \u00e9 \"<em><strong>LastWriteWins<\/strong><\/em>&#8220;.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><span style=\"font-weight: 400\">Como usar <em><strong>salvarDocumento<\/strong><\/em> m\u00e9todo?<\/span><\/p>\n<p><span style=\"font-weight: 400\">Primeiro, precisamos de uma inst\u00e2ncia de banco de dados (<span class=\"lang:default decode:true crayon-inline\">CouchbaseLiteSwift.Database<\/span>\u00a0), portanto, basta iniciar um novo banco de dados:<\/span><\/p>\n<pre class=\"lang:swift decode:true\">do {\r\n    database = try Database(name: \"DatabaseName\")\r\n} catch {\r\n    fatalError(\"Error opening database\")\r\n}<\/pre>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><span style=\"font-weight: 400\">Em seguida, precisamos criar o documento que queremos salvar. Portanto, crie um novo documento <span class=\"lang:default decode:true crayon-inline\">CouchbaseLiteSwift.MutableDocument<\/span>\u00a0 e adicionar alguns campos:<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let doc = MutableDocument(id: \"MyUniqueDocumentIdentifier\")\r\ndoc.setString(\"Mickey\", forKey: \"name\")\r\ndoc.setString(\"Mouse\", forKey: \"surname\")\r\ndoc.setInt(91, forKey: \"age\")\r\ndoc.setString(\"Contact\", forKey: \"type\")<\/pre>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><span style=\"font-weight: 400\">Por fim, salve-o:<\/span><\/p>\n<pre class=\"lang:swift decode:true\">do {\r\n    try database.saveDocument(doc, concurrencyControl: .lastWriteWins)\r\n} catch {\r\n    fatalError(\"Error saving document\")\r\n}<\/pre>\n<p><span style=\"font-weight: 400\">Como voc\u00ea pode ver, criar e salvar um documento no Couchbase \u00e9 muito simples e intuitivo.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Dicas e truques para aprender com o Couchbase Lite<\/span><\/h3>\n<p><span style=\"font-weight: 400\">&#8211; <\/span><b>Digita\u00e7\u00e3o:<\/b><span style=\"font-weight: 400\"> No documento, adicionei um campo chamado <strong>tipo<\/strong> <span class=\"lang:default decode:true crayon-inline\">doc.setString(&#8220;Contact&#8221;, forKey: &#8220;type&#8221;)<\/span>\u00a0. Esse \u00e9 um truque que permite dividir facilmente um documento em tipos e facilita as opera\u00e7\u00f5es de leitura. Mais adiante, demonstrarei como usar esse campo.<\/span><\/p>\n<p><span style=\"font-weight: 400\">&#8211; <\/span><b>Id:<\/b><span style=\"font-weight: 400\"> Voc\u00ea n\u00e3o precisa fornecer um ID ao criar um documento. \u00c9 um campo opcional e, se voc\u00ea n\u00e3o o fizer, o Couchbase gera um UUID para voc\u00ea.<\/span><\/p>\n<p><span style=\"font-weight: 400\">&#8211; <\/span><b>Cria\u00e7\u00e3o de documentos:<\/b><span style=\"font-weight: 400\"> Se desejar, voc\u00ea pode criar um documento a partir de um dicion\u00e1rio (ou de um mapa de valores chave) simplesmente passando o dicion\u00e1rio como par\u00e2metro no construtor do documento.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400\">R como leitura<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Agora que criamos nosso primeiro documento, tamb\u00e9m queremos l\u00ea-lo e exibi-lo em uma lista.\u00a0<\/span><span style=\"font-weight: 400\">H\u00e1 duas maneiras de recuperar um documento:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400\"> Obter por id<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Consulta<\/span><\/li>\n<\/ol>\n<h3><span style=\"font-weight: 400\">Obter por id<\/span><\/h3>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><span style=\"font-weight: 400\">Para recuperar um documento usando seu ID, primeiro precisamos de uma inst\u00e2ncia do banco de dados para uma opera\u00e7\u00e3o de leitura.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">do {\r\n    database = try Database(name: \"DatabaseName\")\r\n} catch {\r\n    fatalError(\"Error opening database\")\r\n}<\/pre>\n<p><span style=\"font-weight: 400\">Ent\u00e3o, podemos usar o m\u00e9todo <em><strong>documento<\/strong><\/em>\u00a0que precisa do ID do documento para recuper\u00e1-lo. O tipo de retorno desse m\u00e9todo \u00e9 um objeto de documento opcional (CouchbaseLiteSwift.Document?) que ser\u00e1 nulo se o documento n\u00e3o existir.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let doc = database.document(withID: \"MyUniqueDocumentIdentifier\")<\/pre>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400\">Consulta<\/span><\/h3>\n<p><span style=\"font-weight: 400\">Quanto \u00e0 opera\u00e7\u00e3o get by id, tamb\u00e9m precisamos de uma inst\u00e2ncia do banco de dados para a consulta.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">do {\r\n    database = try Database(name: \"DatabaseName\")\r\n} catch {\r\n    fatalError(\"Error opening database\")\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">A pr\u00f3xima etapa \u00e9 criar a consulta. Para isso, precisamos usar a metalinguagem **N1QL**. N1QL, a linguagem de consulta do Couchbase que estende o SQL para dados JSON, permite que os usu\u00e1rios definam uma consulta com uma sintaxe semelhante \u00e0 do SQL em um banco de dados NoSQL. Veja o exemplo abaixo.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let query = QueryBuilder\r\n    .select(SelectResult.all())\r\n    .from(DataSource.database(database))\r\n    .where(Expression.property(\"type\").equalTo(Expression.string(\"Contact\")))<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Dessa forma, definimos uma consulta simples que pesquisou todos os documentos (com todos os campos, \u00e9 claro) do banco de dados em que o campo \"type\" \u00e9 igual a \"Contact\".<\/span><\/p>\n<p><span style=\"font-weight: 400\">Agora, basta executar a consulta e receberemos um conjunto de resultados contendo todos os documentos que observam as op\u00e7\u00f5es da consulta.<\/span><\/p>\n<pre class=\"lang:default decode:true\">do {\r\n    result = try query.execute()\r\n} catch {\r\n    fatalError(\"Invalid query\")\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">O resultado do objeto est\u00e1 em conformidade com o protocolo do iterador, portanto, pode ser iterado para obter cada documento e fazer coisas. O resultado retornado pela consulta \u00e9 um instant\u00e2neo dos dados no momento da execu\u00e7\u00e3o. As altera\u00e7\u00f5es feitas no documento posteriormente n\u00e3o ser\u00e3o consideradas.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<h3><span style=\"font-weight: 400\">Dicas e truques <\/span>para aprender com o Couchbase Lite<\/h3>\n<p><span style=\"font-weight: 400\">&#8211; <\/span><b>Ouvinte de consulta:<\/b><span style=\"font-weight: 400\"> O Couchbase tamb\u00e9m fornece outro m\u00e9todo para executar consultas que permitem que os usu\u00e1rios n\u00e3o apenas recuperem dados da consulta criada, mas tamb\u00e9m ou\u00e7am futuras altera\u00e7\u00f5es. Fazer isso \u00e9 t\u00e3o simples quanto o primeiro m\u00e9todo. D\u00ea uma olhada!<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let token = query.addChangeListener { queryChange in\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 result = queryChange.results?.allResults()\r\n}<\/pre>\n<p><span style=\"font-weight: 400\">The listener will be invoked every time the documents included in the query result change. The token returned from the &#8220;`addChangeListener&#8220;` methods can be used to stop listening as follows:<\/span><\/p>\n<pre class=\"lang:swift decode:true\">query.removeChangeListener(withToken: token)<\/pre>\n<p><span style=\"font-weight: 400\">&#8211; <\/span><b>Convers\u00e3o de documentos:<\/b><span style=\"font-weight: 400\"> Quanto \u00e0 cria\u00e7\u00e3o, voc\u00ea pode converter facilmente um documento em um dicion\u00e1rio (e vice-versa) usando <em><strong>toDictionary()<\/strong><\/em> m\u00e9todo.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400\">U como atualiza\u00e7\u00e3o<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Agora que podemos criar e ler documentos no Couchbase, vamos atualizar nosso documento.<\/span><\/p>\n<p><span style=\"font-weight: 400\">A atualiza\u00e7\u00e3o de um documento \u00e9 muito semelhante \u00e0 cria\u00e7\u00e3o de um. Voc\u00ea s\u00f3 precisa obter um documento para atualizar, depois atualiz\u00e1-lo e salv\u00e1-lo novamente. Vamos ver como.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Inicie o banco de dados:<\/span><\/p>\n<pre class=\"lang:swift decode:true\">do {\r\n   database = try Database(name: \"DatabaseName\")\r\n} catch {\r\n    fatalError(\"Error opening database\")\r\n}<\/pre>\n<p><span style=\"font-weight: 400\">Recupere o documento a ser atualizado:<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let doc = database.document(withID: \"MyUniqueDocumentIdentifier\")<\/pre>\n<p><span style=\"font-weight: 400\">Edite-o.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let docToUpdate = doc.toMutable()\r\ndocToUpdate.setString(\"Male\", forKey: \"gender\")<\/pre>\n<p><span style=\"font-weight: 400\">E, \u00e9 claro, salve-o:<\/span><\/p>\n<pre class=\"lang:default decode:true\">do {\r\n    try database.saveDocument(docToUpdate, concurrencyControl: .lastWriteWins)\r\n} catch {\r\n    fatalError(\"Error updating document\")\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400\">D como Excluir<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Por \u00faltimo, mas n\u00e3o menos importante, talvez voc\u00ea queira excluir alguns documentos, veja como isso pode ser feito.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Como sempre, precisamos do banco de dados.<\/span><\/p>\n<pre class=\"lang:default decode:true\">do {\r\n  database = try Database(name: \"DatabaseName\")\r\n} catch {\r\n  fatalError(\"Error opening database\")\r\n}<\/pre>\n<p><span style=\"font-weight: 400\">Da mesma forma que a opera\u00e7\u00e3o de atualiza\u00e7\u00e3o, devemos recuperar o documento a ser exclu\u00eddo. Portanto, voc\u00ea usar\u00e1 o m\u00e9todo document by id.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let doc = database.document(withID: \"MyUniqueDocumentIdentifier\")<\/pre>\n<p><span style=\"font-weight: 400\">Agora podemos usar o <em><strong>excluir<\/strong><\/em> para excluir um documento. Assim como no <em><strong>salvarDocumento<\/strong><\/em>Se o conflito for resolvido, podemos optar por resolv\u00ea-lo manual ou automaticamente.\u00a0<\/span><\/p>\n<pre class=\"lang:swift decode:true\">do {\r\n   try database.deleteDocument(doc, concurrencyControl: .lastWriteWins)\r\n} catch {\r\n    fatalError(\"Error deleting document\")\r\n}<\/pre>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400\">O Couchbase Sync Gateway \u00e9 t\u00e3o f\u00e1cil de aprender quanto o Couchbase Lite<\/span><\/h2>\n<p><span style=\"font-weight: 400\">Agora podemos integrar o Couchbase Lite em nossos aplicativos usando CRUD:<\/span><\/p>\n<ol>\n<li><span style=\"font-weight: 400\"> Criar um documento<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Ler um documento (ou v\u00e1rios) com atualiza\u00e7\u00f5es em tempo real, se quisermos<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Atualizar um documento (n\u00e3o \u00e9 t\u00e3o diferente da cria\u00e7\u00e3o)<\/span><\/li>\n<li><span style=\"font-weight: 400\"> Excluir um documento<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400\">Mas h\u00e1 mais. O Couchbase oferece outro recurso maravilhoso: Sync Gateway<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<h2><span style=\"font-weight: 400\">Sincroniza\u00e7\u00e3o<\/span><span style=\"font-weight: 400\">\u00a0<\/span><\/h2>\n<p><span style=\"font-weight: 400\">A sincroniza\u00e7\u00e3o \u00e9 uma das minhas funcionalidades favoritas do Couchbase porque \u00e9 t\u00e3o simples quanto eficaz. O Couchbase Lite fornece essa funcionalidade para configurar um banco de dados remoto.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Vamos nos aprofundar no c\u00f3digo.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Al\u00e9m do nosso banco de dados, precisamos de outro objeto: o replicador.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">do {\r\n    database = try Database(name: DatabaseName)\r\n} catch {\r\n    fatalError(\"Error opening database\")\r\n}<\/pre>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><span style=\"font-weight: 400\">O que eu preciso para iniciar um objeto replicador (CouchbaseLiteSwift.Replicator) \u00e9 um objeto de configura\u00e7\u00e3o em que o \u00fanico campo obrigat\u00f3rio \u00e9 a url do Sync Gateway.<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><span style=\"font-weight: 400\">Os outros campos opcionais incluem <em><strong>replicatorType<\/strong><\/em>onde os usu\u00e1rios podem escolher se a replica\u00e7\u00e3o deve funcionar para cima, para dentro, para baixo ou ambos. Outro campo \u00e9 <em><strong>cont\u00ednuo<\/strong><\/em>um sinalizador que permite que os usu\u00e1rios configurem se a replica\u00e7\u00e3o deve ou n\u00e3o ser executada uma vez ou continuamente.<\/span><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let targetEndpoint = URLEndpoint(url: \"ws:\/\/localhost:4984\/bucketname\/\")\r\nlet replConfig = ReplicatorConfiguration(database: database, target: targetEndpoint)\r\nreplConfig.replicatorType = .pushAndPull\r\nreplConfig.continuous = true\r\nreplConfig.authenticator = BasicAuthenticator(username: Username, password: Password)\r\nreplicator = Replicator(config: replConfig)<\/pre>\n<p><span style=\"font-weight: 400\">Com o <em><strong>replicador<\/strong><\/em>\u00a0precisamos apenas iniciar a replica\u00e7\u00e3o.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">replicator.start()<\/pre>\n<p><span style=\"font-weight: 400\">Ou interromper a replica\u00e7\u00e3o.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">replicator.stop()<\/pre>\n<p>&nbsp;<\/p>\n<h3><span style=\"font-weight: 400\">Dicas e truques para aprender com o Sync<\/span><\/h3>\n<p><span style=\"font-weight: 400\">&#8211; <\/span><b>Status da replica\u00e7\u00e3o de escuta:<\/b><span style=\"font-weight: 400\"> Tanto para a consulta quanto para a replica\u00e7\u00e3o, podemos adicionar um ouvinte para receber altera\u00e7\u00f5es no status da replica\u00e7\u00e3o. Abaixo est\u00e1 o c\u00f3digo.<\/span><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<pre class=\"lang:swift decode:true\">let token = replicator.addChangeListener { changes in\r\n    status = changes.status\r\n}<\/pre>\n<p><span style=\"font-weight: 400\">Quanto \u00e0s consultas, o token deve ser usado para remover o ouvinte do replicador.<\/span><\/p>\n<pre class=\"lang:swift decode:true\">replicator.removeChangeListener(withToken: token)<\/pre>\n<p>&nbsp;<\/p>\n<h2><span style=\"font-weight: 400\">Conclus\u00e3o, o Couchbase Lite \u00e9 f\u00e1cil de aprender<\/span><\/h2>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><span style=\"font-weight: 400\">O Couchbase Lite, como parte do pacote Couchbase Mobile, \u00e9 uma flecha poderosa na aljava de um desenvolvedor m\u00f3vel. \u00c9 f\u00e1cil de aprender e, neste artigo, mostramos apenas uma pequena parte de seu potencial, portanto, minha recomenda\u00e7\u00e3o \u00e9 que voc\u00ea se aprofunde nas funcionalidades do Couchbase que lhe permitir\u00e3o integrar facilmente e assumir o controle total do banco de dados que d\u00e1 suporte aos seus aplicativos m\u00f3veis.<\/span><\/p>\n<p id=\"7553\" class=\"he hs ap by hg b hh hi ht hj hk hu hl hm hv hn ho hw hp hq hx hr ei\" data-selectable-paragraph=\"\"><strong><em>Sobre Matteo Sist, @MOLO17<\/em><\/strong><\/p>\n<p><em>Matteo come\u00e7ou a colaborar com <a href=\"https:\/\/molo17.com\/\">MOLO17<\/a> como desenvolvedor Android quando estava no ensino m\u00e9dio (por meio de um curso de Tecnologia da Informa\u00e7\u00e3o). Recrutado em 2015, ele se juntou \u00e0 equipe de desenvolvimento m\u00f3vel, assumindo a fun\u00e7\u00e3o de desenvolvedor principal para as plataformas iOS e Android. Tem habilidade em linguagens para <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/native-mobile-development\/\">desenvolvimento de aplicativos m\u00f3veis nativos<\/a>Em sua carreira, ele projetou e desenvolveu v\u00e1rias solu\u00e7\u00f5es bem-sucedidas para dispositivos m\u00f3veis voltados para consumidores e empresas, desde Java e Objective-C at\u00e9 as mais recentes Kotlin e Swift. Em 2016, tornou-se l\u00edder t\u00e9cnico gerenciando a equipe de desenvolvimento de aplicativos m\u00f3veis e, em 2019, foi cofundador da MobileBridge (uma empresa irm\u00e3 da MOLO17).<\/em><\/p>\n<p>&nbsp;<\/p>","protected":false},"excerpt":{"rendered":"<p>Learn Couchbase Lite in 5 Minutes and follow the CRUD By Matteo Sist, Mobile Tech Lead, @MOLO17 One of the key ingredients in learning to make a great mobile app is to use a good database. So, in this article [&hellip;]<\/p>","protected":false},"author":31146,"featured_media":13873,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[7667,1810,9410,2366],"tags":[1536],"ppma_author":[8921],"class_list":["post-8679","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-couchbase-lite","category-couchbase-mobile","category-objective-c","category-sync-gateway","tag-ios"],"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>Learn Couchbase Lite in 5 Minutes - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"Couchbase Lite is easy to Learn. In fact, you can learn Couchbase Lite in as little as five minutes in order to begin building your Couchbae Mobile app.\" \/>\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\/pt\/learn-couchbase-lite-in-5-minutes\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Learn Couchbase Lite in 5 Minutes\" \/>\n<meta property=\"og:description\" content=\"Couchbase Lite is easy to Learn. In fact, you can learn Couchbase Lite in as little as five minutes in order to begin building your Couchbae Mobile app.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/learn-couchbase-lite-in-5-minutes\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-18T13:30:08+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:08:54+00:00\" \/>\n<meta name=\"author\" content=\"Guest Blogger\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Guest Blogger\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/\"},\"author\":{\"name\":\"Guest Blogger\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/486e2f1f4ce1b58c9252ddcf8b580f6f\"},\"headline\":\"Learn Couchbase Lite in 5 Minutes\",\"datePublished\":\"2020-05-18T13:30:08+00:00\",\"dateModified\":\"2025-06-14T03:08:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/\"},\"wordCount\":1294,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"keywords\":[\"ios\"],\"articleSection\":[\"Couchbase Lite\",\"Couchbase Mobile\",\"Objective-C\",\"Sync Gateway\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/\",\"name\":\"Learn Couchbase Lite in 5 Minutes - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2020-05-18T13:30:08+00:00\",\"dateModified\":\"2025-06-14T03:08:54+00:00\",\"description\":\"Couchbase Lite is easy to Learn. In fact, you can learn Couchbase Lite in as little as five minutes in order to begin building your Couchbae Mobile app.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Learn Couchbase Lite in 5 Minutes\"}]},{\"@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\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\/\/www.couchbase.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\/486e2f1f4ce1b58c9252ddcf8b580f6f\",\"name\":\"Guest Blogger\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ffd9358d5d91b7cb57e338eb9ea75b58\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/23ccf99ddbce59101a05cb50b016509b200fec485984487602f332dcff7f1d7f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/23ccf99ddbce59101a05cb50b016509b200fec485984487602f332dcff7f1d7f?s=96&d=mm&r=g\",\"caption\":\"Guest Blogger\"},\"description\":\"Welcome to Couchbase's Guest Blog profile, featuring thought-provoking content from industry influencers.\",\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/guest-blogger\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Learn Couchbase Lite in 5 Minutes - The Couchbase Blog","description":"O Couchbase Lite \u00e9 f\u00e1cil de aprender. Na verdade, voc\u00ea pode aprender o Couchbase Lite em apenas cinco minutos para come\u00e7ar a criar seu aplicativo Couchbae Mobile.","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\/pt\/learn-couchbase-lite-in-5-minutes\/","og_locale":"pt_BR","og_type":"article","og_title":"Learn Couchbase Lite in 5 Minutes","og_description":"Couchbase Lite is easy to Learn. In fact, you can learn Couchbase Lite in as little as five minutes in order to begin building your Couchbae Mobile app.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/learn-couchbase-lite-in-5-minutes\/","og_site_name":"The Couchbase Blog","article_published_time":"2020-05-18T13:30:08+00:00","article_modified_time":"2025-06-14T03:08:54+00:00","author":"Guest Blogger","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Guest Blogger","Est. reading time":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/"},"author":{"name":"Guest Blogger","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/486e2f1f4ce1b58c9252ddcf8b580f6f"},"headline":"Learn Couchbase Lite in 5 Minutes","datePublished":"2020-05-18T13:30:08+00:00","dateModified":"2025-06-14T03:08:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/"},"wordCount":1294,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","keywords":["ios"],"articleSection":["Couchbase Lite","Couchbase Mobile","Objective-C","Sync Gateway"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/","url":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/","name":"Learn Couchbase Lite in 5 Minutes - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","datePublished":"2020-05-18T13:30:08+00:00","dateModified":"2025-06-14T03:08:54+00:00","description":"O Couchbase Lite \u00e9 f\u00e1cil de aprender. Na verdade, voc\u00ea pode aprender o Couchbase Lite em apenas cinco minutos para come\u00e7ar a criar seu aplicativo Couchbae Mobile.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2022\/11\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/learn-couchbase-lite-in-5-minutes\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Learn Couchbase Lite in 5 Minutes"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"Blog do Couchbase","description":"Couchbase, o banco de dados 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":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"Blog do Couchbase","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@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\/486e2f1f4ce1b58c9252ddcf8b580f6f","name":"Blogueiro convidado","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/ffd9358d5d91b7cb57e338eb9ea75b58","url":"https:\/\/secure.gravatar.com\/avatar\/23ccf99ddbce59101a05cb50b016509b200fec485984487602f332dcff7f1d7f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/23ccf99ddbce59101a05cb50b016509b200fec485984487602f332dcff7f1d7f?s=96&d=mm&r=g","caption":"Guest Blogger"},"description":"Bem-vindo ao perfil do Blog de Convidados do Couchbase, que apresenta conte\u00fado instigante de influenciadores do setor.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/guest-blogger\/"}]}},"authors":[{"term_id":8921,"user_id":31146,"is_guest":0,"slug":"guest-blogger","display_name":"Guest Blogger","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/23ccf99ddbce59101a05cb50b016509b200fec485984487602f332dcff7f1d7f?s=96&d=mm&r=g","author_category":"","last_name":"Blogger","first_name":"Guest","job_title":"","user_url":"","description":"Bem-vindo ao perfil do Blog de Convidados do Couchbase, que apresenta conte\u00fado instigante de influenciadores do setor."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8679","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/31146"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=8679"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/8679\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/13873"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=8679"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=8679"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=8679"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=8679"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}