{"id":7737,"date":"2019-10-07T10:00:05","date_gmt":"2019-10-07T17:00:05","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=7737"},"modified":"2025-06-13T20:52:22","modified_gmt":"2025-06-14T03:52:22","slug":"best-practices-common-patterns-couchbase-mobile-part1","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/best-practices-common-patterns-couchbase-mobile-part1\/","title":{"rendered":"Pr\u00e1ticas recomendadas para usar o Couchbase Mobile: Parte 1"},"content":{"rendered":"<p>Desde o primeiro lan\u00e7amento oficial em 2014, <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/products\/mobile\/\">Couchbase Mobile<\/a> O Couchbase Mobile possibilitou uma ampla variedade de casos de uso com diferentes graus de escala e complexidade. Apesar da varia\u00e7\u00e3o, h\u00e1 alguns padr\u00f5es comuns de uso do Couchbase Mobile.<\/p>\n<p>Elaborei uma s\u00e9rie de publica\u00e7\u00f5es no blog que abordam alguns padr\u00f5es de uso comuns e dicas e pr\u00e1ticas recomendadas para lidar com esses casos de uso. Nesta publica\u00e7\u00e3o do blog, discutiremos padr\u00f5es comuns se voc\u00ea estiver desenvolvendo aplicativos com <a href=\"https:\/\/docs-archive.couchbase.com\/couchbase-lite\/2.6\/introduction.html\">Couchbase Lite<\/a>. Esta publica\u00e7\u00e3o pressup\u00f5e que voc\u00ea esteja familiarizado com os fundamentos do Couchbase Mobile. Se precisar de uma introdu\u00e7\u00e3o, consulte os documentos em <a href=\"https:\/\/docs-archive.couchbase.com\/couchbase-lite\/2.6\/introduction.html\">Couchbase Lite<\/a>.<\/p>\n<h3 id=\"pattern1:handlinglargevolumeofpublicnon-userspecificdata\">Padr\u00e3o 1: lidar com um grande volume de dados p\u00fablicos e n\u00e3o espec\u00edficos do usu\u00e1rio<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/09\/prebuilt.png\" alt=\"Couchbase Mobile pattern for preloading couchbase lite data\" \/><\/figure>\n<p>Com o suporte do Couchbase Lite para <a href=\"https:\/\/docs-archive.couchbase.com\/couchbase-lite\/2.6\/swift.html#loading-a-pre-built-database\">pr\u00e9-constru\u00eddo<\/a> bancos de dados, voc\u00ea pode pr\u00e9-carregar o aplicativo com dados em vez de sincroniz\u00e1-los a partir do Sync Gateway durante a inicializa\u00e7\u00e3o.<\/p>\n<h4><strong>Caso de uso<\/strong><\/h4>\n<p>Evitar a sincroniza\u00e7\u00e3o inicial ajudar\u00e1 a reduzir o tempo de inicializa\u00e7\u00e3o e os custos de transfer\u00eancia de rede. Isso normalmente se aplica a dados p\u00fablicos\/compartilhados, n\u00e3o espec\u00edficos do usu\u00e1rio, que s\u00e3o em sua maioria est\u00e1ticos. Mesmo que os dados n\u00e3o sejam est\u00e1ticos, voc\u00ea ainda pode aproveitar os benef\u00edcios de pr\u00e9-carregar os dados e sincronizar apenas as altera\u00e7\u00f5es na inicializa\u00e7\u00e3o.<\/p>\n<h4><strong>Abordagem<\/strong><\/h4>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Criar um <em>n\u00e3o criptografado<\/em> c\u00f3pia do banco de dados .cblite com os dados relevantes. H\u00e1 duas op\u00e7\u00f5es para criar um .cblite\n<ul>\n<li>Use um aplicativo baseado no Couchbase Lite para extrair dados relevantes por meio do Sync Gateway. Isso criar\u00e1 uma inst\u00e2ncia de um aplicativo <code>cblite<\/code> (com extens\u00e3o .cblite2). O local do arquivo gerado \u00e9 espec\u00edfico da plataforma e pode ser obtido na se\u00e7\u00e3o <a href=\"https:\/\/docs.couchbase.com\/mobile\/2.6.0\/couchbase-lite-swift\/Classes\/DatabaseConfiguration.html#\/s:18CouchbaseLiteSwift21DatabaseConfigurationC9directorySSvp\"><code>DatabaseConfiguration<\/code><\/a> objeto.<\/li>\n<li>Use o c\u00f3digo aberto, couchbaselabs <a href=\"https:\/\/github.com\/couchbaselabs\/couchbase-mobile-tools\/blob\/master\/README.cblite.md\">cblite<\/a> ferramenta. Essa ferramenta permite que voc\u00ea carregue dados de uma variedade de fontes.<\/li>\n<\/ul>\n<\/li>\n<li>Carregue o .cblite no aplicativo de duas maneiras. Voc\u00ea tem duas op\u00e7\u00f5es\n<ul>\n<li>A primeira op\u00e7\u00e3o \u00e9 agrupar o arquivo .cblite2 com o aplicativo.<\/li>\n<li>A segunda op\u00e7\u00e3o \u00e9 hospedar o arquivo .cblite em uma CDN, de onde ele pode ser recuperado pelos clientes na inicializa\u00e7\u00e3o. Embora ainda exista o custo de download do arquivo de banco de dados, haver\u00e1 uma economia consider\u00e1vel nos custos de largura de banda e lat\u00eancia ao fornec\u00ea-lo a partir de uma CDN.<\/li>\n<\/ul>\n<\/li>\n<li>Depois de carregado, siga as etapas para <a href=\"https:\/\/docs-archive.couchbase.com\/couchbase-lite\/2.6\/swift.html#loading-a-pre-built-database\">copy()<\/a> o arquivo .cblite2 empacotado no aplicativo. Isso criar\u00e1 uma inst\u00e2ncia do banco de dados exclusiva para o cliente<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 id=\"pattern2:segregatingclient-localandsynceddata\">Padr\u00e3o 2: segrega\u00e7\u00e3o de dados locais do cliente e sincronizados<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/09\/multi-db.png\" alt=\"Couchbase mobile pattern for local only data\" \/><\/figure>\n<p>Voc\u00ea pode oferecer suporte a v\u00e1rias inst\u00e2ncias do Couchbase Lite em seu aplicativo. Embora n\u00e3o haja limites r\u00edgidos para o n\u00famero de inst\u00e2ncias de banco de dados, h\u00e1 limites e restri\u00e7\u00f5es pr\u00e1ticas, por exemplo, voc\u00ea n\u00e3o pode fazer uni\u00f5es entre bancos de dados.<\/p>\n<h4><strong>Caso de uso<\/strong><\/h4>\n<p>Um caso de uso comum de v\u00e1rios bancos de dados no aplicativo \u00e9 separar os dados que s\u00e3o locais apenas para o cliente em uma inst\u00e2ncia de banco de dados separada do restante dos dados. H\u00e1 outras maneiras de impor restri\u00e7\u00f5es somente locais, como veremos em um padr\u00e3o separado discutido posteriormente. No entanto, a segrega\u00e7\u00e3o dos dados permitiria que os aplicativos aplicassem o controle de acesso no n\u00edvel do banco de dados, garantindo que as consultas e as opera\u00e7\u00f5es do banco de dados tivessem o escopo do n\u00edvel do banco de dados. Por exemplo, voc\u00ea pode excluir o banco de dados somente local sem afetar o restante dos dados sincronizados.<\/p>\n<h4><strong>Abordagem<\/strong><\/h4>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Crie uma inst\u00e2ncia do banco de dados Couchbase Lite para dados somente locais. O banco de dados pode ser criado ou copiado de uma c\u00f3pia empacotada de um banco de dados pr\u00e9-constru\u00eddo<\/li>\n<li>N\u00e3o configure nenhum replicador para o banco de dados somente local<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 id=\"pattern3:supportingmulti-userapp\">Padr\u00e3o 3: suporte ao aplicativo multiusu\u00e1rio<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/09\/multi-user.png\" alt=\"Couchbase Mobile pattern share database with multiple users\" \/><\/figure>\n<p>Os aplicativos com o Couchbase Lite podem oferecer suporte a v\u00e1rios usu\u00e1rios. Esse \u00e9 outro padr\u00e3o que \u00e9 ativado com a capacidade de oferecer suporte a v\u00e1rias inst\u00e2ncias do Couchbase Lite em seu aplicativo. Aplicativos com v\u00e1rios usu\u00e1rios imp\u00f5em requisitos rigorosos de segrega\u00e7\u00e3o de dados e controle de acesso a dados para garantir que os usu\u00e1rios n\u00e3o acessem ou pisem nos dados uns dos outros, de forma deliberada ou inadvertida.<\/p>\n<h4><strong>Caso de uso<\/strong><\/h4>\n<p>Aplicativos multiusu\u00e1rios s\u00e3o comuns, especialmente em cen\u00e1rios em que os dispositivos s\u00e3o compartilhados.<\/p>\n<h4><strong>Abordagem<\/strong><\/h4>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>Crie uma inst\u00e2ncia separada do banco de dados do Couchbase Lite para cada usu\u00e1rio<\/li>\n<li>Embora n\u00e3o seja obrigat\u00f3rio, cada inst\u00e2ncia do banco de dados pode estar em uma pasta espec\u00edfica do usu\u00e1rio, cujo local pode ser especificado por meio do par\u00e2metro <a href=\"https:\/\/docs.couchbase.com\/mobile\/2.6.0\/couchbase-lite-swift\/Classes\/DatabaseConfiguration.html#\/s:18CouchbaseLiteSwift21DatabaseConfigurationC9directorySSvp\">DatabaseConfiguration<\/a> no momento da cria\u00e7\u00e3o do banco de dados. Se desejar, cada banco de dados do Couchbase Lite pode ser <a href=\"https:\/\/docs-archive.couchbase.com\/couchbase-lite\/2.6\/swift.html#database-encryption\">criptografado<\/a> usando a senha\/chave espec\u00edfica do usu\u00e1rio.<\/li>\n<li>Os dados comuns compartilhados entre os usu\u00e1rios podem ser armazenados em uma inst\u00e2ncia compartilhada do banco de dados em uma pasta \"comum\".<\/li>\n<li>Ao alternar entre usu\u00e1rios ou \"fazer logoff\", verifique o seguinte\n<ul>\n<li>Remover todos os ouvintes em <a href=\"https:\/\/docs.couchbase.com\/mobile\/2.6.0\/couchbase-lite-swift\/Classes\/Query.html#\/s:18CouchbaseLiteSwift5QueryC17addChangeListeneryAA0G5TokenCyAA0dF0VcF\">consultas<\/a><\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/mobile\/2.6.0\/couchbase-lite-swift\/Classes\/Replicator.html#\/s:18CouchbaseLiteSwift10ReplicatorC4stopyyF\">Parar<\/a> todos os replicadores<\/li>\n<li><a href=\"https:\/\/docs.couchbase.com\/mobile\/2.6.0\/couchbase-lite-swift\/Classes\/Database.html#\/s:18CouchbaseLiteSwift8DatabaseC5closeyyKF\">Fechar<\/a> o banco de dados<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h3 id=\"pattern4:sharingdatabetweenappsonadevice\">Padr\u00e3o 4: compartilhamento de dados entre aplicativos em um dispositivo<\/h3>\n<figure><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/09\/multi-app.png\" alt=\"Couchbase Mobile pattern share database between apps\" \/><\/figure>\n<p>Os aplicativos m\u00f3veis s\u00e3o executados em um ambiente de sandbox. Portanto, um determinado aplicativo s\u00f3 tem acesso ou s\u00f3 pode modificar seus pr\u00f3prios dados. No entanto, em determinadas plataformas, existem op\u00e7\u00f5es que facilitam o compartilhamento de recursos entre aplicativos com os direitos corretos. Usando esses mecanismos que s\u00e3o especificados pela plataforma, uma inst\u00e2ncia do banco de dados Couchbase Lite pode ser compartilhada por v\u00e1rios aplicativos. Isso est\u00e1 de acordo com as diretrizes prescritas pela plataforma.<\/p>\n<table>\n<colgroup>\n<col style=\"text-align: center\" \/>\n<col style=\"text-align: left\" \/> <\/colgroup>\n<thead>\n<tr>\n<th style=\"text-align: center\">Configura\u00e7\u00e3o<\/th>\n<th style=\"text-align: left\">Implica\u00e7\u00f5es<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: center\">Todos os leitores, nenhum escritor<\/td>\n<td style=\"text-align: left\">OK<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\">Um \u00fanico escritor, v\u00e1rios leitores<\/td>\n<td style=\"text-align: left\">OK - sem notifica\u00e7\u00f5es de altera\u00e7\u00e3o entre processos<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center\">V\u00e1rios escritores<\/td>\n<td style=\"text-align: left\">N\u00e3o testado. O banco de dados ser\u00e1 bloqueado com v\u00e1rios acessos simult\u00e2neos (YMMW*)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4><strong>Caso de uso<\/strong><\/h4>\n<p>V\u00e1rios aplicativos do mesmo fornecedor podem estar trabalhando com os mesmos dados. Em vez de cada aplicativo manter uma c\u00f3pia id\u00eantica dos dados, o compartilhamento do banco de dados reduzir\u00e1 os custos de transfer\u00eancia e de armazenamento local no dispositivo.<\/p>\n<h4><strong>Abordagem<\/strong><\/h4>\n<ul>\n<li style=\"list-style-type: none\">\n<ul>\n<li>A ideia \u00e9 hospedar o banco de dados em uma pasta ou local no sistema de arquivos que seja acess\u00edvel aos aplicativos que o compartilham. A configura\u00e7\u00e3o dos aplicativos para compartilhar dados \u00e9 uma implementa\u00e7\u00e3o em n\u00edvel de plataforma\n<ul>\n<li>No iOS, voc\u00ea usaria <a href=\"https:\/\/developer.apple.com\/documentation\/xcode\/configuring-app-groups\/\">Grupos de aplicativos<\/a> semelhante ao que \u00e9 descrito neste <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/sharing-data-ios-app-extensions-sync-capability\/\">blog<\/a> para configurar o acesso ao recurso compartilhado do Couchbase Lite a partir de v\u00e1rios aplicativos.<\/li>\n<li>No Android, voc\u00ea pode aproveitar <a href=\"https:\/\/developer.android.com\/guide\/topics\/providers\/content-providers\">Provedores de conte\u00fado<\/a> para permitir o compartilhamento de dados do Couchbase Lite entre aplicativos<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2 id=\"whatnext\">O que vem a seguir<\/h2>\n<p>Nesta postagem, abordamos alguns padr\u00f5es de uso comuns no Couchbase Lite. Continuaremos a publicar postagens descrevendo outras dicas e recomenda\u00e7\u00f5es para resolver problemas comuns.<br \/>\nSe tiver d\u00favidas ou coment\u00e1rios, deixe um coment\u00e1rio abaixo ou entre em contato comigo pelo Twitter\u00a0<a href=\"https:\/\/twitter.com\/rajagp\">@rajagp<\/a>\u00a0ou envie-me um e-mail\u00a0<a href=\"mailto:priya.rajagopal@couchbase.com\">priya.rajagopal@couchbase.com<\/a>.  O\u00a0<a href=\"https:\/\/www.couchbase.com\/blog\/pt\/forums\/\">F\u00f3runs do Couchbase<\/a> s\u00e3o outro bom lugar para entrar em contato com perguntas.<\/p>\n<h2 id=\"acknowledgments\">Agradecimentos<\/h2>\n<p>Gostaria de agradecer as contribui\u00e7\u00f5es da equipe de desenvolvimento do Couchbase Lite, especificamente\u00a0<a href=\"https:\/\/github.com\/borrrden\">Jim Borden<\/a> por sua avalia\u00e7\u00e3o desta postagem do blog.<\/p>","protected":false},"excerpt":{"rendered":"<p>Since the first official release in 2014, Couchbase Mobile has enabled a wide variety of use cases of varying degrees of scale and complexity. Despite the variation, there are some common usage patterns for using Couchbase Mobile. I have put [&hellip;]<\/p>","protected":false},"author":1423,"featured_media":10733,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[1811,2370,1814,1815,7667,1810,2366],"tags":[2213,2004,1536,2349],"ppma_author":[8948],"class_list":["post-7737","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dotnet","category-android","category-application-design","category-best-practices-and-tutorials","category-couchbase-lite","category-couchbase-mobile","category-sync-gateway","tag-couchbase-lite-2-0","tag-couchbase-mobile-2-0","tag-ios","tag-xamarin"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.1 (Yoast SEO v26.1.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Best Practices For Using Couchbase Mobile : Part 1 - The Couchbase Blog<\/title>\n<meta name=\"description\" content=\"This blog post covers patterns and approaches for implementing common use cases when building mobile apps with Couchbase Lite as your NoSQL data store.\" \/>\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\/best-practices-common-patterns-couchbase-mobile-part1\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Best Practices For Using Couchbase Mobile : Part 1\" \/>\n<meta property=\"og:description\" content=\"This blog post covers patterns and approaches for implementing common use cases when building mobile apps with Couchbase Lite as your NoSQL data store.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/best-practices-common-patterns-couchbase-mobile-part1\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-10-07T17:00:05+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:52:22+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1250\" \/>\n\t<meta property=\"og:image:height\" content=\"652\" \/>\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=\"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\/best-practices-common-patterns-couchbase-mobile-part1\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/\"},\"author\":{\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c\"},\"headline\":\"Best Practices For Using Couchbase Mobile : Part 1\",\"datePublished\":\"2019-10-07T17:00:05+00:00\",\"dateModified\":\"2025-06-14T03:52:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/\"},\"wordCount\":1050,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.png\",\"keywords\":[\"Couchbase Lite 2.0\",\"couchbase mobile 2.0\",\"ios\",\"xamarin\"],\"articleSection\":[\".NET\",\"Android\",\"Application Design\",\"Best Practices and Tutorials\",\"Couchbase Lite\",\"Couchbase Mobile\",\"Sync Gateway\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/\",\"name\":\"Best Practices For Using Couchbase Mobile : Part 1 - The Couchbase Blog\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.png\",\"datePublished\":\"2019-10-07T17:00:05+00:00\",\"dateModified\":\"2025-06-14T03:52:22+00:00\",\"description\":\"This blog post covers patterns and approaches for implementing common use cases when building mobile apps with Couchbase Lite as your NoSQL data store.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.png\",\"width\":1250,\"height\":652,\"caption\":\"A hand holding a smartphone showing multiple icons and on-screen activity\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Best Practices For Using Couchbase Mobile : Part 1\"}]},{\"@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\/c2da90e57717ee4970c48a87a131ac2c\",\"name\":\"Priya Rajagopal, Senior Director, Product Management\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@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\/pt\/author\/priya-rajagopalcouchbase-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Best Practices For Using Couchbase Mobile : Part 1 - The Couchbase Blog","description":"This blog post covers patterns and approaches for implementing common use cases when building mobile apps with Couchbase Lite as your NoSQL data store.","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\/best-practices-common-patterns-couchbase-mobile-part1\/","og_locale":"pt_BR","og_type":"article","og_title":"Best Practices For Using Couchbase Mobile : Part 1","og_description":"This blog post covers patterns and approaches for implementing common use cases when building mobile apps with Couchbase Lite as your NoSQL data store.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/best-practices-common-patterns-couchbase-mobile-part1\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-10-07T17:00:05+00:00","article_modified_time":"2025-06-14T03:52:22+00:00","og_image":[{"width":1250,"height":652,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.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":"6 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/"},"author":{"name":"Priya Rajagopal, Senior Director, Product Management","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/c2da90e57717ee4970c48a87a131ac2c"},"headline":"Best Practices For Using Couchbase Mobile : Part 1","datePublished":"2019-10-07T17:00:05+00:00","dateModified":"2025-06-14T03:52:22+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/"},"wordCount":1050,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.png","keywords":["Couchbase Lite 2.0","couchbase mobile 2.0","ios","xamarin"],"articleSection":[".NET","Android","Application Design","Best Practices and Tutorials","Couchbase Lite","Couchbase Mobile","Sync Gateway"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/","url":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/","name":"Best Practices For Using Couchbase Mobile : Part 1 - The Couchbase Blog","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.png","datePublished":"2019-10-07T17:00:05+00:00","dateModified":"2025-06-14T03:52:22+00:00","description":"This blog post covers patterns and approaches for implementing common use cases when building mobile apps with Couchbase Lite as your NoSQL data store.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/10\/Realtime-data-sync_RESIZED-1.png","width":1250,"height":652,"caption":"A hand holding a smartphone showing multiple icons and on-screen activity"},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/best-practices-common-patterns-couchbase-mobile-part1\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Best Practices For Using Couchbase Mobile : Part 1"}]},{"@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\/c2da90e57717ee4970c48a87a131ac2c","name":"Priya Rajagopal, Diretora S\u00eanior, Gerenciamento de Produtos","image":{"@type":"ImageObject","inLanguage":"pt-BR","@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 \u00e9 diretora s\u00eanior de gerenciamento de produtos da Couchbase, respons\u00e1vel pelas plataformas de desenvolvedor para a nuvem e a borda. Ela desenvolve software profissionalmente h\u00e1 mais de 20 anos em v\u00e1rios cargos t\u00e9cnicos e de lideran\u00e7a de produtos, com mais de 10 anos de foco em tecnologias m\u00f3veis. Como delegada de padr\u00f5es de IPTV da TISPAN, ela foi uma das principais colaboradoras das especifica\u00e7\u00f5es de padr\u00f5es de IPTV. Ela tem 22 patentes nas \u00e1reas de rede e seguran\u00e7a de plataforma.","sameAs":["https:\/\/x.com\/rajagp"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/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 \u00e9 diretora s\u00eanior de gerenciamento de produtos da Couchbase, respons\u00e1vel pelas plataformas de desenvolvedor para a nuvem e a borda. Ela desenvolve software profissionalmente h\u00e1 mais de 20 anos em v\u00e1rios cargos t\u00e9cnicos e de lideran\u00e7a de produtos, com mais de 10 anos de foco em tecnologias m\u00f3veis. Como delegada de padr\u00f5es de IPTV da TISPAN, ela foi uma das principais colaboradoras das especifica\u00e7\u00f5es de padr\u00f5es de IPTV. Ela tem 22 patentes nas \u00e1reas de rede e seguran\u00e7a de plataforma."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/7737","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\/1423"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=7737"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/7737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/10733"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=7737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=7737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=7737"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=7737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}