{"id":407204,"date":"2023-11-21T00:49:42","date_gmt":"2023-11-20T23:49:42","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=407204"},"modified":"2023-11-21T00:49:47","modified_gmt":"2023-11-20T23:49:47","slug":"compose-multiplatform-1-5-10-o-momento-perfeito-para-comecar","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/pt-br\/kotlin\/2023\/11\/compose-multiplatform-1-5-10-o-momento-perfeito-para-comecar\/","title":{"rendered":"Compose Multiplatform 1.5.10 \u2013 O momento perfeito para come\u00e7ar"},"content":{"rendered":"<p>O Compose Multiplatform \u00e9 uma framework de IU declarativa criada pela JetBrains que permite aos desenvolvedores compartilhar as IUs de seus aplicativos em diferentes plataformas. Ele permite que voc\u00ea reutilize at\u00e9 100% da sua base de c\u00f3digo no Android, iOS, desktop e Web. A framework aproveita os recursos de compartilhamento de c\u00f3digo da tecnologia central do Kotlin Multiplatform, que acaba de se tornar <a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/kotlin-multiplatform-stable\/\" target=\"_blank\" rel=\"noreferrer noopener\">Est\u00e1vel em Kotlin 1.9.20<\/a>.<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Comece agora mesmo com o Compose Multiplatform\" href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-multiplatform-getting-started.html?utm_source=kotlinblog&amp;utm_medium=cta&amp;utm_campaign=compose1.5.10\" target=\"_blank\" rel=\"noopener\">Comece agora mesmo com o Compose Multiplatform<\/a><\/p>\n<p>Esta vers\u00e3o 1.5.10 do Compose Multiplatform oferece suporte para Kotlin 1.9.20, inclui integra\u00e7\u00e3o simplificada, apresenta um novo portal para documenta\u00e7\u00e3o e fornece os recursos listados abaixo:<\/p>\n<div class=\"wp-block-rank-math-toc-block\" id=\"rank-math-toc\">\n<h2>\u00cdndice<\/h2>\n<nav>\n<ul>\n<li><a href=\"#easier-to-get-started\">Mais f\u00e1cil de come\u00e7ar a usar<\/a><\/li>\n<li><a href=\"#new-material-3-components-in-common-code\">Novos componentes Material 3 no c\u00f3digo comum<\/a><\/li>\n<li><a href=\"#enhanced-text-fields-on-i-os\">Campos de texto aprimorados no iOS<\/a><\/li>\n<li><a href=\"#crossfade-animation-for-ui-kit-interoperability\">Anima\u00e7\u00e3o com crossfade para interoperabilidade com UIKit<\/a><\/li>\n<li><a href=\"#increased-compilation-speed\">Maior velocidade de compila\u00e7\u00e3o<\/a><\/li>\n<li><a href=\"#basic-support-for-the-k-2-compiler\">Suporte b\u00e1sico para o compilador K2<\/a><\/li>\n<li><a href=\"#enhanced-rendering-performance-on-i-os\">Desempenho de renderiza\u00e7\u00e3o aprimorado no iOS<\/a><\/li>\n<li><a href=\"#new-documentation-portal\">Novo portal de documenta\u00e7\u00e3o<\/a><\/li>\n<\/ul>\n<\/nav>\n<\/div>\n<p>Com essas melhorias gerais, nunca foi t\u00e3o f\u00e1cil adotar o Compose Multiplatform. Este \u00e9 um \u00f3timo momento para voc\u00ea come\u00e7ar a usar o Compose Multiplatform para desenvolvimento multiplataforma e, se voc\u00ea j\u00e1 \u00e9 um usu\u00e1rio, essas melhorias tornar\u00e3o seu trabalho mais eficiente do que nunca.<\/p>\n<h2 class=\"wp-block-heading\" id=\"easier-to-get-started\">Mais f\u00e1cil de come\u00e7ar a usar<\/h2>\n<p>Se voc\u00ea est\u00e1 pensando em se aprofundar no Compose Multiplatform e no Kotlin Multiplatform, temos \u00f3timas not\u00edcias:<\/p>\n<ul>\n<li>O <a href=\"https:\/\/kmp.jetbrains.com\/\" data-type=\"link\" data-id=\"https:\/\/kmp.jetbrains.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kotlin Multiplatform Web Wizard<\/a> permite que voc\u00ea crie novos projetos facilmente com apenas alguns cliques. O projeto cont\u00e9m l\u00f3gica compartilhada e uma IU do Compose Multiplatform para v\u00e1rias plataformas.<\/li>\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-multiplatform-getting-started.html\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-multiplatform-getting-started.html\" target=\"_blank\" rel=\"noreferrer noopener\">Novos tutoriais de integra\u00e7\u00e3o<\/a> est\u00e3o dispon\u00edveis para Android, iOS e desktop. Eles deixar\u00e3o voc\u00ea a par dos principais conceitos do Kotlin Multiplatform e do Compose Multiplatform.<\/li>\n<li>A documenta\u00e7\u00e3o do Compose Multiplatform foi integrada ao <a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/get-started.html\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/get-started.html\" target=\"_blank\" rel=\"noreferrer noopener\">portal de desenvolvimento do Kotlin Multiplatform<\/a>, facilitando e simplificando a localiza\u00e7\u00e3o das informa\u00e7\u00f5es de que voc\u00ea precisa.<\/li>\n<\/ul>\n<p>Voc\u00ea tamb\u00e9m pode se inscrever em nosso <a href=\"https:\/\/info.jetbrains.com\/kotlin-webinars-2023.html\" data-type=\"link\" data-id=\"https:\/\/info.jetbrains.com\/kotlin-webinars-2023.html\" target=\"_blank\" rel=\"noopener\">webinar sobre como come\u00e7ar a usar o Compose Multiplatform<\/a>, programado para 28 de novembro.<\/p>\n<h2 class=\"wp-block-heading\" id=\"new-material-3-components-in-common-code\">Novos componentes Material 3 no c\u00f3digo comum<\/h2>\n<p>Todos os componentes do Compose Material 3 agora est\u00e3o dispon\u00edveis em c\u00f3digo comum. Os componentes <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/material3\/package-summary#ModalBottomSheet(kotlin.Function0,androidx.compose.ui.Modifier,androidx.compose.material3.SheetState,androidx.compose.ui.unit.Dp,androidx.compose.ui.graphics.Shape,androidx.compose.ui.graphics.Color,androidx.compose.ui.graphics.Color,androidx.compose.ui.unit.Dp,androidx.compose.ui.graphics.Color,kotlin.Function0,androidx.compose.foundation.layout.WindowInsets,androidx.compose.ui.window.SecureFlagPolicy,kotlin.Function1)\" target=\"_blank\" rel=\"noreferrer noopener\">ModalBottomSheet<\/a>, <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/material3\/package-summary#ExposedDropdownMenuBox(kotlin.Boolean,kotlin.Function1,androidx.compose.ui.Modifier,kotlin.Function1)\" target=\"_blank\" rel=\"noreferrer noopener\">ExposedDropdownMenuBox<\/a>, <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/material3\/package-summary#SearchBar(kotlin.String,kotlin.Function1,kotlin.Function1,kotlin.Boolean,kotlin.Function1,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Function0,kotlin.Function0,kotlin.Function0,androidx.compose.ui.graphics.Shape,androidx.compose.material3.SearchBarColors,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.foundation.layout.WindowInsets,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)\" target=\"_blank\" rel=\"noreferrer noopener\">SearchBar<\/a> e <a href=\"https:\/\/developer.android.com\/reference\/kotlin\/androidx\/compose\/material3\/package-summary#DockedSearchBar(kotlin.String,kotlin.Function1,kotlin.Function1,kotlin.Boolean,kotlin.Function1,androidx.compose.ui.Modifier,kotlin.Boolean,kotlin.Function0,kotlin.Function0,kotlin.Function0,androidx.compose.ui.graphics.Shape,androidx.compose.material3.SearchBarColors,androidx.compose.ui.unit.Dp,androidx.compose.ui.unit.Dp,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)\" target=\"_blank\" rel=\"noreferrer noopener\">DockedSearchBar<\/a> foram adicionados nesta vers\u00e3o, que completa o conjunto de componentes definidos na vers\u00e3o 1.1.2 do <a href=\"https:\/\/developer.android.com\/jetpack\/androidx\/releases\/compose-material3\" target=\"_blank\" rel=\"noreferrer noopener\">Compose Material 3<\/a>.<\/p>\n<p>\u00c9 assim que ele aparecer\u00e1 no desktop:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/NewComponentsDesktop-1.png\" alt=\"Novos componentes no desktop\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/NewComponentsDesktop-1.gif\"><\/p>\n<p>E \u00e9 assim que ele aparecer\u00e1 no iOS e no Android:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/ezgif.com-resize-4.png\" alt=\"Novos componentes no iOS\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/ezgif.com-resize-4.gif\"><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/NewComponentsAndroid-1.png\" alt=\"Novos componentes no Android\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/NewComponentsAndroid-1.gif\"><\/p>\n<h2 class=\"wp-block-heading\" id=\"enhanced-text-fields-on-i-os\">Campos de texto aprimorados no iOS<\/h2>\n<p>Esta vers\u00e3o apresenta v\u00e1rios aprimoramentos em TextFields no iOS. Um novo modo Fast Delete est\u00e1 dispon\u00edvel, o manuseio de toques duplos e triplos foi aprimorado, a f\u00edsica de rolagem inclui o \u201cefeito el\u00e1stico\u201d e uma anima\u00e7\u00e3o de crossfade melhora a interoperabilidade.<\/p>\n<ul>\n<li>A partir desta vers\u00e3o, quando voc\u00ea pressiona a tecla de retrocesso, um novo modo Fast Delete \u00e9 ativado ap\u00f3s os primeiros 21 caracteres. Nesse modo, cada exclus\u00e3o remove duas palavras. Isso se alinha ao comportamento padr\u00e3o do iOS e \u00e9 o que os usu\u00e1rios esperam.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/FastDeleteMode-1.png\" alt=\"Modo Fast Delete no iOS\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/FastDeleteMode-1.gif\"><\/p>\n<ul>\n<li>A partir desta vers\u00e3o, os toques duplos e triplos em um TextField s\u00e3o sempre manipulados de forma consistente. Um toque duplo sempre selecionar\u00e1 a palavra atual, enquanto um toque triplo sempre selecionar\u00e1 o texto inteiro.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/DoubleAndTripleTaps-1.png\" alt=\"Toques duplos e triplos no iOS\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/DoubleAndTripleTaps-1.gif\"><\/p>\n<ul>\n<li>O Compose Multiplatform 1.5.0 introduziu suporte para o comportamento nativo da rolagem. Esta vers\u00e3o adiciona suporte para sobrerolagem (o \u201cefeito el\u00e1stico\u201d) em campos de texto grandes. Sua IU do Compose Multiplatform agora fornece a elasticidade que os usu\u00e1rios do iOS esperam.<\/li>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/RubberBandEffect-1.png\" alt=\"Efeito el\u00e1stico no iOS\" data-gif-src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/11\/RubberBandEffect-1.gif\"><\/p>\n<h2 class=\"wp-block-heading\" id=\"crossfade-animation-for-ui-kit-interoperability\">Anima\u00e7\u00e3o com crossfade para interoperabilidade com UIKit<\/h2>\n<p>Quando seu alvo \u00e9 o iOS, o Compose Multiplatform permite que voc\u00ea incorpore composables em uma <a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-ios-ui-integration.html\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-ios-ui-integration.html\" rel=\"noreferrer noopener\">hierarquia de componentes UIKit<\/a>. Isso permite combinar seus componentes de IU Kotlin com widgets Swift ou Objective-C existentes.<\/p>\n<p>A partir desta vers\u00e3o, ao incorporar composables em uma hierarquia UIKit, uma anima\u00e7\u00e3o de crossfade \u00e9 aplicada \u00e0 tela \u00e0 medida que a orienta\u00e7\u00e3o muda. Isso evita que os componentes pare\u00e7am temporariamente esticados.<\/p>\n<h2 class=\"wp-block-heading\" id=\"increased-compilation-speed\">Maior velocidade de compila\u00e7\u00e3o<\/h2>\n<p>No Kotlin 1.9.20, o cache do compilador e o Compose Multiplatform s\u00e3o compat\u00edveis. Portanto, a partir desta vers\u00e3o, o cache do compilador \u00e9 ativado automaticamente para aplicativos Compose Multiplatform que usam o compilador Kotlin 1.9.20. A compila\u00e7\u00e3o \u00e9 muito mais r\u00e1pida para todas as compila\u00e7\u00f5es ap\u00f3s a inicial.<\/p>\n<p>O armazenamento em cache permanece desabilitado quando voc\u00ea usa o Compose Multiplatform com uma vers\u00e3o anterior do compilador Kotlin. Definir\u00a0 <code>kotlin.native.cacheKind<\/code> como <code>none<\/code> manualmente faz com que o plug-in do compilador Gradle produza um erro. Portanto, remova-o se estiver presente.<\/p>\n<h2 class=\"wp-block-heading\" id=\"basic-support-for-the-k-2-compiler\">Suporte b\u00e1sico para o compilador K2<\/h2>\n<p>Nesta vers\u00e3o, apresentamos suporte parcial para o compiler K2 no Compose Multiplatform. Voc\u00ea pode usar o Compose Compiler e o K2 combinados para criar aplicativos b\u00e1sicos. O suporte total para o K2 est\u00e1 agendado para o pr\u00f3ximo lan\u00e7amento do CMP, portanto, fique atento.<\/p>\n<h2 class=\"wp-block-heading\" id=\"enhanced-rendering-performance-on-i-os\">Desempenho de renderiza\u00e7\u00e3o aprimorado no iOS<\/h2>\n<p>Nesta vers\u00e3o, melhoramos o desempenho no iOS, eliminando quaisquer inst\u00e2ncias de processamento redundante ou excessivo. Al\u00e9m disso, os comandos a serem executados na GPU para renderiza\u00e7\u00e3o s\u00e3o preparados em um thread separado.<\/p>\n<p>Essas mudan\u00e7as significam que os aplicativos Compose Multiplatform executados no iOS ter\u00e3o menos frames perdidos. Todos os travamentos ou atrasos causados por frames perdidos ser\u00e3o reduzidos ou removidos.<\/p>\n<h2 class=\"wp-block-heading\" id=\"new-documentation-portal\">Novo portal de documenta\u00e7\u00e3o<\/h2>\n<p>O novo portal de desenvolvimento do Kotlin Multiplatform apresenta tutoriais, perguntas frequentes, novos exemplos e outras documenta\u00e7\u00f5es \u00fateis. Isso significa que \u00e9 mais f\u00e1cil do que nunca come\u00e7ar a usar o Compose Multiplatform!<\/p>\n<p>Os t\u00f3picos abordados incluem:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-multiplatform-getting-started.html\" target=\"_blank\" rel=\"noreferrer noopener\">Primeiros passos com o Compose Multiplatform<\/a><\/li>\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-ios-ui-integration.html\" target=\"_blank\" rel=\"noreferrer noopener\">Interoperabilidade com UIKit e SwiftUI<\/a><\/li>\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-navigation-routing.html\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-navigation-routing.html\" target=\"_blank\" rel=\"noreferrer noopener\">Navega\u00e7\u00e3o<\/a><\/li>\n<\/ul>\n<p>Agrupar materiais do Compose Multiplatform com outras documenta\u00e7\u00f5es multiplataformas, num portal dedicado, os torna mais f\u00e1ceis de encontrar e consumir. Embora uma parte da documenta\u00e7\u00e3o permane\u00e7a no <a href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform#readme\" data-type=\"link\" data-id=\"https:\/\/github.com\/JetBrains\/compose-multiplatform#readme\" target=\"_blank\" rel=\"noreferrer noopener\">Compose Multiplatform GitHub<\/a>, nosso objetivo \u00e9 transferi-la para o novo portal em breve.<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"Comece agora mesmo com o Compose Multiplatform\" href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-multiplatform-getting-started.html?utm_source=kotlinblog&amp;utm_medium=cta&amp;utm_campaign=compose1.5.10\" target=\"_blank\" rel=\"noopener\">Comece agora mesmo com o Compose Multiplatform<\/a><\/p>\n<h2 class=\"wp-block-heading\" id=\"wrapping-up\">Concluindo<\/h2>\n<p>Nunca houve um momento melhor para come\u00e7ar a usar o Compose Multiplatform! Voc\u00ea pode usar os widgets do Compose Material 3 para criar interfaces de usu\u00e1rio bonitas que se comportam de forma consistente no Android, iOS, desktop e Web. Usando o <a href=\"https:\/\/kmp.jetbrains.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kotlin Multiplatform Web Wizard<\/a>, voc\u00ea pode come\u00e7ar a trabalhar em minutos, com os <a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-multiplatform-getting-started.html\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-multiplatform-getting-started.html\" target=\"_blank\" rel=\"noreferrer noopener\">novos tutoriais de integra\u00e7\u00e3o<\/a> para orienta\u00e7\u00e3o \u00e0 medida que voc\u00ea cria seus primeiros aplicativos Compose Multiplatform.<\/p>\n<p>Esperamos que a cria\u00e7\u00e3o de aplicativos com o Compose Multiplatform seja uma experi\u00eancia divertida e gratificante para voc\u00ea. Deixe seu feedback sobre como voc\u00ea est\u00e1 se saindo. Convidamos voc\u00ea a participar da discuss\u00e3o sobre o Kotlin Slack no canal <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/compose\" target=\"_blank\" rel=\"noreferrer noopener\">#compose<\/a>, onde voc\u00ea pode discutir t\u00f3picos gerais relacionados ao Compose Multiplatform e ao Jetpack Compose.<\/p>\n<h2 class=\"wp-block-heading\" id=\"what-else-to-read-and-watch\">O que mais ler e assistir<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-multiplatform-getting-started.html\" data-type=\"link\" data-id=\"https:\/\/www.jetbrains.com\/help\/kotlin-multiplatform-dev\/compose-multiplatform-getting-started.html\" target=\"_blank\" rel=\"noreferrer noopener\">Comece agora mesmo com o Compose Multiplatform \u2014 tutorial<\/a><\/li>\n<li><a href=\"https:\/\/www.jetbrains.com\/lp\/compose-multiplatform\/\" target=\"_blank\" rel=\"noreferrer noopener\">Vis\u00e3o geral do Compose Multiplatform<\/a><\/li>\n<li><a href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform\/releases\/tag\/v1.5.10?utm_source=kotlinblog&amp;utm_medium=blogpost&amp;utm_campaign=compose-1-5-10\" target=\"_blank\" data-type=\"link\" data-id=\"https:\/\/github.com\/JetBrains\/compose-multiplatform\/releases\/tag\/v1.5.10?utm_source=kotlinblog&amp;utm_medium=blogpost&amp;utm_campaign=compose-1-5-10\" rel=\"noreferrer noopener\">Compose Multiplatform 1.5.10 \u2013 notas de lan\u00e7amento no GitHub<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/kotlin-multiplatform-stable\/\" target=\"_blank\" rel=\"noreferrer noopener\">Kotlin Multiplatform est\u00e1vel e pronto para produ\u00e7\u00e3o<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/11\/kotlin-1-9-20-released\/\" target=\"_blank\" rel=\"noreferrer noopener\">Lan\u00e7amento do Kotlin 1.9.20<\/a><\/li>\n<\/ul>\n\n\n<p><em>Artigo original em ingl\u00eas por:<\/em><br><\/p>\n\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":1086,"featured_media":401960,"comment_status":"closed","ping_status":"closed","template":"","categories":[956],"tags":[6706,6436,76],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/407204"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/types\/kotlin"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/users\/1086"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/comments?post=407204"}],"version-history":[{"count":6,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/407204\/revisions"}],"predecessor-version":[{"id":407215,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/407204\/revisions\/407215"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media\/401960"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media?parent=407204"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/categories?post=407204"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/tags?post=407204"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/cross-post-tag?post=407204"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}