{"id":6978,"date":"2019-05-24T06:00:43","date_gmt":"2019-05-24T13:00:43","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/?p=6978"},"modified":"2025-06-13T20:52:27","modified_gmt":"2025-06-14T03:52:27","slug":"fluttercouch-flutter-and-couchbase","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/fluttercouch-flutter-and-couchbase\/","title":{"rendered":"Fluttercouch: Combinando o poder do Flutter e do Couchbase"},"content":{"rendered":"<p><em>Esta \u00e9 uma postagem de convidado escrita por Luca Christille. Luca \u00e9 um desenvolvedor autodidata e criador do <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a>. Ele escreveu sua primeira linha de c\u00f3digo quando tinha oito anos de idade, e sua paix\u00e3o pelo desenvolvimento s\u00f3 cresceu desde ent\u00e3o. Ele \u00e9 um desenvolvedor Android certificado pelo Google e trabalha em tempo integral como engenheiro de pilha completa. Passa a maior parte de seu tempo livre trabalhando como freelancer de desenvolvimento m\u00f3vel.<\/em><\/p>\n<p><em><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-6981\" style=\"float: left;margin-right: 20px\" src=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/2019\/05\/luca_christille-300x225.jpg\" alt=\"\" width=\"300\" height=\"225\" srcset=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-300x225.jpg 300w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-1024x768.jpg 1024w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-768x576.jpg 768w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-1536x1152.jpg 1536w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-20x15.jpg 20w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille-1320x990.jpg 1320w, https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/luca_christille.jpg 1600w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/em><\/p>\n<p><em>Luca n\u00e3o \u00e9 estranho aos bancos de dados NoSQL, tendo passado algum tempo trabalhando e avaliando v\u00e1rias solu\u00e7\u00f5es. Por fim, ele foi atra\u00eddo pelo Couchbase por seus recursos de sincroniza\u00e7\u00e3o de dados, pois um dos principais requisitos de muitos aplicativos m\u00f3veis \u00e9 ter a funcionalidade \"offline-first\".<\/em><\/p>\n<p><em>No in\u00edcio, Luca se concentrava estritamente na cria\u00e7\u00e3o de aplicativos totalmente nativos. No entanto, ele acabou se deparando com um cliente que exigia uma solu\u00e7\u00e3o multiplataforma e, depois de pesquisar as diversas op\u00e7\u00f5es dispon\u00edveis, optou por usar o <a href=\"https:\/\/flutter.dev\/\">Flutter.<\/a><\/em><\/p>\n<h2>Flutter: Crie aplicativos bonitos<\/h2>\n<p>Dando um passo atr\u00e1s, voc\u00ea pode estar se perguntando: o que \u00e9 <a href=\"https:\/\/flutter.dev\/\">Flutua\u00e7\u00e3o<\/a>? Em poucas palavras, <a href=\"https:\/\/github.com\/flutter\/flutter\">O Flutter \u00e9 um SDK de c\u00f3digo aberto<\/a> para criar aplicativos m\u00f3veis de alto desempenho e alta fidelidade para iOS e Android. A estrutura Flutter facilita a cria\u00e7\u00e3o de interfaces de usu\u00e1rio que reagem suavemente em seu aplicativo, reduzindo a quantidade de c\u00f3digo necess\u00e1ria para sincronizar e atualizar a visualiza\u00e7\u00e3o do aplicativo.<\/p>\n<p>Como muitos outros ecossistemas de desenvolvimento, o Flutter oferece a capacidade de integra\u00e7\u00e3o com projetos de c\u00f3digo componentizado conhecidos como <a href=\"https:\/\/pub.dev\/flutter\">Pacotes do Flutter<\/a>. Os pacotes do Flutter ajudam os desenvolvedores a integrar funcionalidades complexas em seus aplicativos m\u00f3veis. Os pacotes podem ser qualquer coisa, desde <a href=\"https:\/\/dart.dev\/\">Dardo<\/a>-bibliotecas baseadas em Flutter que estendem os recursos padr\u00e3o da estrutura do Flutter para solu\u00e7\u00f5es que interagem diretamente com as camadas nativas e permitem novas funcionalidades baseadas em SDKs do Android e do iOS.<\/p>\n<h2>Apresentando o Fluttercouch<\/h2>\n<p><a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a> \u00e9 um pacote que integra perfeitamente o <a href=\"https:\/\/docs.couchbase.com\/server\/4.1\/concepts\/cb-mobile-development.html\">Couchbase Mobile<\/a> em seus aplicativos Flutter, gerenciando as camadas nativas do Android e do iOS. O pacote evita que voc\u00ea tenha que criar um c\u00f3digo padr\u00e3o para configurar o banco de dados, usar documentos e executar a replica\u00e7\u00e3o. Em \u00faltima an\u00e1lise, o Fluttercouch permite que voc\u00ea se concentre na cria\u00e7\u00e3o da l\u00f3gica do aplicativo, usando Dart, em vez de criar c\u00f3digo espec\u00edfico da plataforma com os SDKs nativos do Couchbase Mobile.<\/p>\n<h3>Primeiros passos<\/h3>\n<p>Para come\u00e7ar a usar <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a> voc\u00ea precisar\u00e1 adicionar uma diretiva de depend\u00eancia ao <strong>pubspec.yaml<\/strong> arquivo.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-yaml\" data-lang=\"yaml\">dependencies:\r\n  fluttercouch: ^0.5.0<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Depois de adicionar a diretiva de depend\u00eancia, voc\u00ea pode usar <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a> em qualquer classe de modelo que voc\u00ea j\u00e1 tenha, ou simplesmente comece com uma nova. Voc\u00ea pode estender as classes de modelo de InheritedWidget, Scoped Model ou Bloc. Uma vez estendida, a classe <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">Fluttercouch<\/a> os superpoderes est\u00e3o liberados!<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-dart\" data-lang=\"dart\">class CounterBlock extends Bloc&lt;CounterBlock, int&gt; with Fluttercouch {\r\n\r\n    class FrogColor extends InheritedWidget with Fluttercouch {\r\n    \r\n        class CounterModel extends Model with Fluttercouch {\r\n\r\n            class MyModel extends Object with Fluttercouch {<\/code><\/pre>\n<\/div>\n<\/div>\n<h3>Opera\u00e7\u00f5es b\u00e1sicas<\/h3>\n<p>A partir desse ponto, voc\u00ea pode buscar uma inst\u00e2ncia de um banco de dados criado anteriormente ou instanciar um novo banco de dados diretamente da sua classe. Quando um banco de dados \u00e9 inicializado, ele se torna o <strong>escolha padr\u00e3o<\/strong>e qualquer outra invoca\u00e7\u00e3o de m\u00e9todo far\u00e1 refer\u00eancia a ele. Depois de criar uma inst\u00e2ncia de banco de dados, voc\u00ea poder\u00e1 executar facilmente todas as opera\u00e7\u00f5es CRUD que j\u00e1 espera dos bancos de dados do Couchbase Lite.<\/p>\n<p>Por exemplo, voc\u00ea pode recuperar um documento pelo seu id e obter uma string da propriedade <code>myProperty<\/code>. Em seguida, converta o documento em um documento mut\u00e1vel, modifique-o e salve-o novamente.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-dart\" data-lang=\"dart\">helloCouchbase() async {\r\n    await initDatabaseWithName('myDatabase');\r\n    Document myDocument = await getDocumentWithId('hello::world');\r\n    String helloWorld = myDocument.getString('greetings');\r\n    MutableDocument myMutableDocument = myDocument.toMutable();\r\n    myMutableDocument.setString('helloKey', 'worldValue');\r\n    saveDocument(myMutableDocument);<\/code><\/pre>\n<\/div>\n<\/div>\n<h3>Trabalhando com replicadores<\/h3>\n<p>A replica\u00e7\u00e3o de dados tamb\u00e9m \u00e9 poss\u00edvel com o Fluttercouch. Usando o Dart, voc\u00ea pode criar e configurar facilmente os replicadores.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-dart\" data-lang=\"dart\">\/\/ Supplies the address of the database replicated by the Sync Gateway server. \r\n\/\/ In case you want to enable SSL encryption, use wss:\/\/ insted of ws:\/\/. \r\n\/\/ To connect to a local Sync Gateway instance, use localhost as hostname for iOs simulator, and 10.0.2.2 for Android simulator.\r\nsetReplicatorEndpoint(\"ws:\/\/your-server-address:4984\/yourReplicationDatabaseName\");\r\n\r\n\/\/ Sets the replication type as PULL, PUSH or PUSH_AND_PULL\r\nsetReplicatorType(\"PUSH_AND_PULL\");\r\n\r\n\/\/ Sets the replication as continuous\r\nsetReplicatorContinuous(true);\r\n\r\n\/\/ Sets a BasicAuthenticator for the replication. The methods accept a parameter of type Map&lt;String, String&gt; \r\n\/\/ with two keys named \"username\" and \"password\".\r\nsetReplicatorBasicAuthentication(&lt;String, String&gt;{\r\n  \"username\": \"yourUsername\",\r\n  \"password\": \"yourPassword\"\r\n});\r\n\r\n\/\/ Sets a SessionAuthenticator for the replication. SessionID is retrieved querying the public REST API of your Sync Gateway\r\nsetReplicatorSessionAuthentication(sessionID);\r\n\r\n\/\/ Before starting the replication, you must init the replicator object\r\ninitReplicator();\r\n\r\n\/\/ Starts the replication\r\nstartReplicator();\r\n\r\n\/\/ Stops the replication\r\nstopReplicator();<\/code><\/pre>\n<\/div>\n<\/div>\n<p>Voc\u00ea tamb\u00e9m pode ouvir os eventos de replica\u00e7\u00e3o passando uma fun\u00e7\u00e3o para o m\u00e9todo listenReplicatorEvents. O listenReplicatorEvents chama a fun\u00e7\u00e3o com um par\u00e2metro que cont\u00e9m o tipo de evento.<\/p>\n<div class=\"listingblock\">\n<div class=\"content\">\n<pre class=\"highlight decode:true\"><code class=\"language-dart\" data-lang=\"dart\">listenReplicationEvents((dynamic event) {\r\n    switch(event) {\r\n      case (\"BUSY\"):\r\n        \/\/ executed when the replicator status changes to BUSY\r\n      case (\"IDLE\"):\r\n        \/\/ executed when the replicator status changes to IDLE\r\n      case (\"OFFLINE\"):\r\n        \/\/ executed when the replicator status changes to OFFLINE\r\n      case (\"STOPPED\"):\r\n        \/\/ executed when the replicator status changes to STOPPED\r\n      case (\"CONNECTING\"):\r\n        \/\/ executed when the replicator status changes to CONNECTING\r\n    }\r\n  }\r\n);\r\n<\/code><\/pre>\n<\/div>\n<\/div>\n<h2>Pr\u00f3ximas etapas<\/h2>\n<p>Agora voc\u00ea est\u00e1 pronto para liberar o potencial do Couchbase em seu pr\u00f3ximo aplicativo Flutter! Fa\u00e7a o download do Fluttercouch no site <a href=\"https:\/\/pub.dev\/packages\/fluttercouch\">reposit\u00f3rio p\u00fablico<\/a>e uma documenta\u00e7\u00e3o mais detalhada, voc\u00ea pode visitar a p\u00e1gina do projeto em <a href=\"https:\/\/github.com\/oltrenuovefrontiere\/fluttercouch\">GitHub<\/a> para obter uma refer\u00eancia completa sobre como interagir com seu banco de dados.<\/p>\n<p>O Fluttercouch \u00e9 um projeto de c\u00f3digo aberto que atualmente mantenho e adiciono durante meu tempo livre. Em um futuro pr\u00f3ximo, estou ansioso para concluir a camada de abstra\u00e7\u00e3o de consulta N1QL para Dart, adicionando suporte para Blob e <a href=\"https:\/\/www.couchbase.com\/blog\/pt\/subdoc-explained\/\">Subdocumento<\/a> e muitos outros recursos que existem nos SDKs do CouchbaseMobile.  O projeto se beneficiaria muito com as contribui\u00e7\u00f5es da comunidade, e todos os coment\u00e1rios, problemas e\/ou solicita\u00e7\u00f5es de pull ser\u00e3o apreciados!<\/p>","protected":false},"excerpt":{"rendered":"<p>This is a guest post written by Luca Christille. Luca is a self-taught developer, and the creator of Fluttercouch. He wrote his first line of code when he was eight years old, and his passion for development has only grown [&hellip;]<\/p>","protected":false},"author":34959,"featured_media":6980,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[2370,7667,1810,2371,2366],"tags":[2350,1536],"ppma_author":[9080],"class_list":["post-6978","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-couchbase-lite","category-couchbase-mobile","category-flutter","category-sync-gateway","tag-cross-platform-mobile","tag-ios"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.3 (Yoast SEO v26.3) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Fluttercouch Integrates Couchbase Mobile Functionality<\/title>\n<meta name=\"description\" content=\"Fluttercouch is a package that seamlessly integrates Couchbase Mobile functionality into your Flutter apps, managing your Android and iOS native layers.\" \/>\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\/fluttercouch-flutter-and-couchbase\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Fluttercouch: Combining the power of Flutter and Couchbase\" \/>\n<meta property=\"og:description\" content=\"Fluttercouch is a package that seamlessly integrates Couchbase Mobile functionality into your Flutter apps, managing your Android and iOS native layers.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/fluttercouch-flutter-and-couchbase\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-24T13:00:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-14T03:52:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@probablyrealrob\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\"},\"author\":{\"name\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/4fe39f690069382f7641d3a02f551e47\"},\"headline\":\"Fluttercouch: Combining the power of Flutter and Couchbase\",\"datePublished\":\"2019-05-24T13:00:43+00:00\",\"dateModified\":\"2025-06-14T03:52:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\"},\"wordCount\":673,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\",\"keywords\":[\"cross-platform mobile\",\"ios\"],\"articleSection\":[\"Android\",\"Couchbase Lite\",\"Couchbase Mobile\",\"Flutter\",\"Sync Gateway\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\",\"url\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\",\"name\":\"Fluttercouch Integrates Couchbase Mobile Functionality\",\"isPartOf\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\",\"datePublished\":\"2019-05-24T13:00:43+00:00\",\"dateModified\":\"2025-06-14T03:52:27+00:00\",\"description\":\"Fluttercouch is a package that seamlessly integrates Couchbase Mobile functionality into your Flutter apps, managing your Android and iOS native layers.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage\",\"url\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\",\"contentUrl\":\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png\",\"width\":1920,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.couchbase.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Fluttercouch: Combining the power of Flutter and Couchbase\"}]},{\"@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\/4fe39f690069382f7641d3a02f551e47\",\"name\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d2687b799f515d10560e40ed5b695b63\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g\",\"caption\":\"Rob Hedgpeth, Senior Developer Advocate, Couchbase\"},\"description\":\"Rob Hedgpeth is a Senior Developer Advocate at Couchbase specializing in mobile and IoT technologies. Rob has been developing applications of all flavors for over a decade, but has primarily been focused on the mobile space since 2010. Prior to working at Couchbase Rob worked as a Mobile Architect at Xamarin and Microsoft.\",\"sameAs\":[\"https:\/\/x.com\/probablyrealrob\"],\"url\":\"https:\/\/www.couchbase.com\/blog\/pt\/author\/robert-hedgpeth\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Fluttercouch Integrates Couchbase Mobile Functionality","description":"O Fluttercouch \u00e9 um pacote que integra perfeitamente a funcionalidade do Couchbase Mobile em seus aplicativos Flutter, gerenciando as camadas nativas do Android e do iOS.","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\/fluttercouch-flutter-and-couchbase\/","og_locale":"pt_BR","og_type":"article","og_title":"Fluttercouch: Combining the power of Flutter and Couchbase","og_description":"Fluttercouch is a package that seamlessly integrates Couchbase Mobile functionality into your Flutter apps, managing your Android and iOS native layers.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/fluttercouch-flutter-and-couchbase\/","og_site_name":"The Couchbase Blog","article_published_time":"2019-05-24T13:00:43+00:00","article_modified_time":"2025-06-14T03:52:27+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","type":"image\/png"}],"author":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","twitter_card":"summary_large_image","twitter_creator":"@probablyrealrob","twitter_misc":{"Written by":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","Est. reading time":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/"},"author":{"name":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/4fe39f690069382f7641d3a02f551e47"},"headline":"Fluttercouch: Combining the power of Flutter and Couchbase","datePublished":"2019-05-24T13:00:43+00:00","dateModified":"2025-06-14T03:52:27+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/"},"wordCount":673,"commentCount":3,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","keywords":["cross-platform mobile","ios"],"articleSection":["Android","Couchbase Lite","Couchbase Mobile","Flutter","Sync Gateway"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/","url":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/","name":"Fluttercouch Integrates Couchbase Mobile Functionality","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","datePublished":"2019-05-24T13:00:43+00:00","dateModified":"2025-06-14T03:52:27+00:00","description":"O Fluttercouch \u00e9 um pacote que integra perfeitamente a funcionalidade do Couchbase Mobile em seus aplicativos Flutter, gerenciando as camadas nativas do Android e do iOS.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/1\/2019\/05\/Flutter_Logo.png","width":1920,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/fluttercouch-flutter-and-couchbase\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Fluttercouch: Combining the power of Flutter and Couchbase"}]},{"@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\/4fe39f690069382f7641d3a02f551e47","name":"Rob Hedgpeth, defensor s\u00eanior do desenvolvedor, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/image\/d2687b799f515d10560e40ed5b695b63","url":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g","caption":"Rob Hedgpeth, Senior Developer Advocate, Couchbase"},"description":"Rob Hedgpeth \u00e9 um desenvolvedor s\u00eanior defensor da Couchbase, especializado em tecnologias m\u00f3veis e de IoT. Rob tem desenvolvido aplicativos de todos os tipos h\u00e1 mais de uma d\u00e9cada, mas tem se concentrado principalmente no espa\u00e7o m\u00f3vel desde 2010. Antes de trabalhar na Couchbase, Rob trabalhou como arquiteto m\u00f3vel na Xamarin e na Microsoft.","sameAs":["https:\/\/x.com\/probablyrealrob"],"url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/robert-hedgpeth\/"}]}},"authors":[{"term_id":9080,"user_id":34959,"is_guest":0,"slug":"robert-hedgpeth","display_name":"Rob Hedgpeth, Senior Developer Advocate, Couchbase","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/8059b152c76ec2d3d1a3a05ad6dfd02e2c74a4ae158b724c3420b254c5fd7499?s=96&d=mm&r=g","author_category":"","last_name":"Hedgpeth, Senior Developer Advocate, Couchbase","first_name":"Rob","job_title":"","user_url":"","description":"Rob Hedgpeth \u00e9 um desenvolvedor s\u00eanior defensor da Couchbase, especializado em tecnologias m\u00f3veis e de IoT. Rob tem desenvolvido aplicativos de todos os tipos h\u00e1 mais de uma d\u00e9cada, mas tem se concentrado principalmente no espa\u00e7o m\u00f3vel desde 2010. Antes de trabalhar na Couchbase, Rob trabalhou como arquiteto m\u00f3vel na Xamarin e na Microsoft."}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/6978","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\/34959"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=6978"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/6978\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/6980"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=6978"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=6978"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=6978"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=6978"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}