{"id":363974,"date":"2023-06-15T23:56:42","date_gmt":"2023-06-15T22:56:42","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=kotlin&#038;p=363974"},"modified":"2023-09-04T16:11:09","modified_gmt":"2023-09-04T15:11:09","slug":"o-compose-multiplatform-para-ios-esta-em-alpha","status":"publish","type":"kotlin","link":"https:\/\/blog.jetbrains.com\/pt-br\/kotlin\/2023\/06\/o-compose-multiplatform-para-ios-esta-em-alpha\/","title":{"rendered":"O Compose Multiplatform para iOS est\u00e1 em Alpha"},"content":{"rendered":"<p>O Compose Multiplatform, o framework declarativo da JetBrains para criar interfaces de usu\u00e1rio multiplataforma com o Kotlin, agora pode ser usado no iOS! Isso significa que voc\u00ea pode usar o Compose Multiplatform para criar sua interface de usu\u00e1rio uma vez, 100% em Kotlin, e us\u00e1-la no Android, iOS e muito al\u00e9m.<\/p>\n<p>Em resumo, aqui est\u00e1 o que voc\u00ea precisa saber sobre este lan\u00e7amento:<\/p>\n<ul>\n<li>A JetBrains lan\u00e7ou o Compose Multiplatform para iOS como Alfa, o que significa que ele est\u00e1 pronto para ser usado em experimentos e projetos de aprendizado. Experimente e ajude a moldar o futuro das interfaces de usu\u00e1rio m\u00f3veis compartilhadas com o Kotlin!<\/li>\n<li>O Compose Multiplatform usa APIs que j\u00e1 est\u00e3o sendo usadas para desenvolvimento de UIs no Android. Isso torna muito f\u00e1cil e r\u00e1pido para os desenvolvedores com experi\u00eancia em desenvolvimento em Android moderno come\u00e7arem a usar o Compose Multiplatform para iOS. Ele tamb\u00e9m permite que os rec\u00e9m-chegados baseiem seu aprendizado em conceitos estabelecidos e pr\u00e1ticas recomendadas.<\/li>\n<li>Como vers\u00e3o Alfa, o Compose Multiplatform para iOS ainda possui muitas \u00e1reas que est\u00e3o em andamento. Contamos com a comunidade para ajudar a embasar e moldar o futuro das interfaces de usu\u00e1rio Kotlin compartilhadas, ent\u00e3o experimente a tecnologia e <a href=\"#sharefeedback\">compartilhe seu feedback<\/a>!<\/li>\n<\/ul>\n<p><!--more--><\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"CTA\" href=\"https:\/\/jb.gg\/compose\" target=\"_blank\" rel=\"noopener\">Comece a usar o Compose para iOS<\/a><\/p>\n<p>A JetBrains anunciou pela primeira vez o Compose Multiplatform para iOS na KotlinConf 2023. Para uma vis\u00e3o detalhada do Compose Multiplatform para iOS em a\u00e7\u00e3o, assista \u00e0 grava\u00e7\u00e3o da palestra de an\u00fancio &#8220;Compose Multiplatform on iOS&#8221;, por Sebastian Aigner e Nikita Lipsky:<\/p>\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\">\n<div class=\"wp-block-embed__wrapper\">&nbsp;<\/div>\n<\/figure>\n<h2 class=\"wp-block-heading\">Levando o Kotlin Multiplatform al\u00e9m da l\u00f3gica de neg\u00f3cios<\/h2>\n<p>Com o <a href=\"https:\/\/kotlinlang.org\/docs\/multiplatform.html\" target=\"_blank\" rel=\"noopener\">Kotlin Multiplatform<\/a>, os desenvolvedores Kotlin j\u00e1 t\u00eam uma abordagem testada e comprovada para compartilhamento de c\u00f3digo. Ele permite que voc\u00ea compartilhe a l\u00f3gica de neg\u00f3cios entre diferentes plataformas sem ter que abrir m\u00e3o do acesso a APIs e recursos espec\u00edficos da plataforma: uma abordagem que foi validada por muitos aplicativos em produ\u00e7\u00e3o, com mais e mais empresas aproveitando-a para se livrar da duplica\u00e7\u00e3o desnecess\u00e1ria de l\u00f3gica em seus aplicativos.<\/p>\n<p>Mas faltava uma parte da hist\u00f3ria do Kotlin Multiplatform: uma solu\u00e7\u00e3o para quando voc\u00ea n\u00e3o deseja criar e manter interfaces de usu\u00e1rio separadas para cada plataforma de destino. Esse pode ser o seu caso por v\u00e1rios motivos: voc\u00ea pode n\u00e3o ter recursos ou pessoas para fornecer implementa\u00e7\u00f5es feitas sob medida para cada plataforma de destino. Ou voc\u00ea pode se encontrar em uma situa\u00e7\u00e3o em que precisa colocar seu aplicativo nas m\u00e3os dos usu\u00e1rios o mais r\u00e1pido poss\u00edvel, com itera\u00e7\u00f5es r\u00e1pidas, e n\u00e3o pode perder tempo mantendo manualmente duas ou mais implementa\u00e7\u00f5es de UI sincronizadas.<\/p>\n<p>O Compose Multiplatform resolve tudo isso. Ele oferece a op\u00e7\u00e3o de implementar sua interface de usu\u00e1rio uma \u00fanica vez e, em seguida, compartilh\u00e1-la nas plataformas de destino (seja esse o caso m\u00f3vel t\u00edpico de compartilhamento entre Android e iOS) ou inclui outras plataformas, como desktop ou Web.<\/p>\n<figure class=\"wp-block-image size-full is-resized\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-356420\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/architecture.png\" alt=\"\" width=\"840\" height=\"743\"><figcaption class=\"wp-element-caption\"><em>O Compose Multiplatform \u00e9 uma camada opcional para aplicativos Kotlin Multiplatform que permite criar interfaces de usu\u00e1rio declarativas uma vez e us\u00e1-las para v\u00e1rias plataformas de destino.<\/em><\/figcaption><\/figure>\n<h2 class=\"wp-block-heading\">Desenvolvido com base no Jetpack Compose<\/h2>\n<p>O Compose Multiplatform se baseia no <a href=\"https:\/\/developer.android.com\/jetpack\/compose\" target=\"_blank\" rel=\"noopener\">Jetpack Compose<\/a> do Google, o framework de UI recomendado para desenvolvimento moderno em Android, que \u00e9 100% Kotlin. A equipe da JetBrains que desenvolve o Compose Multiplatform colabora com o Google e atualiza regularmente as altera\u00e7\u00f5es nos reposit\u00f3rios do Jetpack Compose.<\/p>\n<p>As APIs do Compose Multiplatform s\u00e3o as mesmas que j\u00e1 foram experimentadas e testadas no Jetpack Compose. Isso significa que os desenvolvedores que t\u00eam experi\u00eancia em escrever interfaces de usu\u00e1rio Android modernas usando o Jetpack Compose podem transferir essas habilidades diretamente para escrever uma interface de usu\u00e1rio compartilhada com o Compose Multiplatform, para uso no iOS e al\u00e9m.<\/p>\n<p>Para ilustrar o fato de que as APIs realmente s\u00e3o as mesmas, confira este exemplo de trecho de c\u00f3digo do Compose Multiplatform que anima a visibilidade de uma imagem sempre que o usu\u00e1rio pressiona um bot\u00e3o:<\/p>\n<pre class=\"kotlin-code\" style=\"padding: 36px 0;\" data-highlight-only=\"true\">@Composable\nfun App() {\n    MaterialTheme {\n        var showImage by remember { mutableStateOf(false) }\n        Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {\n            Button(onClick = {\n                showImage = !showImage\n            }) {\n                Text(\"Toggle image\")\n            }\n            AnimatedVisibility(showImage) {\n                Image(\n                    painterResource(\"compose-multiplatform.xml\"),\n                    \"Compose Multiplatform Logo\"\n                )\n            }\n        }\n    }\n}\n<\/pre>\n<p>Se voc\u00ea j\u00e1 trabalhou com o Jetpack Compose antes, a maior parte desse c\u00f3digo deve ser familiar para voc\u00ea: o Compose Multiplatform permite que voc\u00ea use exatamente as mesmas APIs que usaria para o desenvolvimento moderno no Android, incluindo gerenciamento de estado, layout e at\u00e9 mesmo anima\u00e7\u00f5es. Para tarefas espec\u00edficas do sistema no Jetpack Compose, como carregar recursos, o Compose Multiplatform fornece alternativas convenientes que funcionam em todas as plataformas, como a fun\u00e7\u00e3o <code>painterResource<\/code> no snippet acima.<\/p>\n<p>Como voc\u00ea pode ver, esse c\u00f3digo \u00e9 executado tanto no Android quanto no iOS, com resultados consistentes:<\/p>\n<figure class=\"wp-block-video\"><video src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/gif2.mov\" loop=\"loop\" muted=\"\" controls=\"controls\" width=\"300\" height=\"150\"><\/video><\/figure>\n<p>No iOS, as interfaces de usu\u00e1rio do Compose Multiplatform s\u00e3o renderizadas por meio de uma implementa\u00e7\u00e3o de tela com base na biblioteca de gr\u00e1ficos <a href=\"https:\/\/github.com\/JetBrains\/skiko\" target=\"_blank\" rel=\"noopener\">Skiko<\/a>. No Android, o Compose Multiplatform \u00e9 o Jetpack Compose. Isso significa que, se voc\u00ea optar por mover seu aplicativo para UIs espec\u00edficas da plataforma, poder\u00e1 continuar usando seu aplicativo Compose Multiplatform no Android sem nenhuma desvantagem e sem ter que jogar fora o c\u00f3digo que escreveu.<\/p>\n<h2 class=\"wp-block-heading\">Desenvolvido no Kotlin Multiplatform<\/h2>\n<p>Os aplicativos criados com o Compose Multiplatform s\u00e3o aplicativos Kotlin Multiplatform, o que significa que podem usar os mesmos mecanismos estabelecidos para acessar as APIs da plataforma, como sensores, prefer\u00eancias, armazenamento de dados, criptografia e outros. Eles tamb\u00e9m podem usar o ecossistema cada vez maior de <a href=\"https:\/\/github.com\/terrakok\/kmm-awesome\" target=\"_blank\" rel=\"noopener\">bibliotecas Kotlin Multiplatform<\/a> que fornecem desde wrappers de banco de dados at\u00e9 wrappers multiplataformas para SDK. \u00c9 claro, voc\u00ea tamb\u00e9m pode continuar a usar o Kotlin Multiplatform independentemente do Compose Multiplatform para compartilhar l\u00f3gica de neg\u00f3cios, redes e outras abstra\u00e7\u00f5es.<\/p>\n<h2 class=\"wp-block-heading\">Interoperabilidade com visualiza\u00e7\u00f5es SwiftUI e UIKit<\/h2>\n<p>Os aplicativos do mundo real precisam de acesso a recursos espec\u00edficos do dispositivo e, em muitos casos, a camada de interface do usu\u00e1rio n\u00e3o \u00e9 uma exce\u00e7\u00e3o: seja incorporando um navegador ou reproduzindo um v\u00eddeo, voc\u00ea pode querer acessar a funcionalidade integrada que o iOS fornece para enriquecer a experi\u00eancia dos seus usu\u00e1rios.<\/p>\n<p>Para essas situa\u00e7\u00f5es, a vers\u00e3o Alfa do Compose Multiplatform vem com um prot\u00f3tipo para interoperabilidade bidirecional na camada de UI. Ao usar o <code>UIKitView<\/code>, voc\u00ea pode incorporar widgets complexos espec\u00edficos da plataforma, como mapas, exibi\u00e7\u00f5es da Web, players de m\u00eddia e feeds de c\u00e2mera na sua interface de usu\u00e1rio compartilhada. Na outra dire\u00e7\u00e3o, via <code>ComposeUIViewController<\/code>, voc\u00ea pode incorporar telas do Compose Multiplatform em aplicativos SwiftUI, ajudando voc\u00ea a adotar gradualmente o Compose Multiplatform em aplicativos iOS.<\/p>\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-356434\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/interop-2800x1454.png\" alt=\"\" width=\"2800\" height=\"1454\"><p><\/p>\n<figcaption class=\"wp-element-caption\"><em>O Compose Multiplatform no iOS permite interoperabilidade bidirecional com interfaces de usu\u00e1rio nativas: voc\u00ea pode incorporar exibi\u00e7\u00f5es de UI complexas como o MKMapView do MapKit na sua interface do UI do Compose ou incorporar telas do Compose em um aplicativo SwiftUI.<\/em><\/figcaption>\n<\/figure>\n<h2 class=\"wp-block-heading\">Trabalhando com uma excelente experi\u00eancia do usu\u00e1rio<\/h2>\n<p>O Compose Multiplatform para iOS est\u00e1 atualmente em Alfa, o que tamb\u00e9m significa que h\u00e1 v\u00e1rias \u00e1reas que ainda est\u00e3o em andamento. Oferecer uma excelente experi\u00eancia de usu\u00e1rio em v\u00e1rias plataformas \u00e9 um assunto que requer muito cuidado, e toda a equipe quer garantir que todos os aspectos necess\u00e1rios sejam abordados para tornar os aplicativos Compose Multiplatform confort\u00e1veis e naturais, n\u00e3o importa onde sejam usados. Isso come\u00e7a com as intera\u00e7\u00f5es mais b\u00e1sicas, como gestos e f\u00edsica de rolagem, que definem a sensa\u00e7\u00e3o fundamental de um aplicativo. Continua com princ\u00edpios de navega\u00e7\u00e3o e transi\u00e7\u00f5es, bem como intera\u00e7\u00f5es complexas como sele\u00e7\u00e3o de texto, gerenciamento de entradas, menus de contexto e intera\u00e7\u00f5es semelhantes.<\/p>\n<p>Tamb\u00e9m reconhecemos como \u00e9 importante que os aplicativos Compose Multiplatform forne\u00e7am integra\u00e7\u00f5es s\u00f3lidas de acessibilidade e tamb\u00e9m respeitem as escolhas do usu\u00e1rio, e estamos comprometidos em fornecer integra\u00e7\u00f5es s\u00f3lidas com os mecanismos subjacentes do iOS, integrando-se a tudo, desde a funcionalidade de convers\u00e3o de texto em fala do sistema at\u00e9 as prefer\u00eancias de zoom e contraste que os usu\u00e1rios definiram em seus dispositivos.<\/p>\n<p>Obviamente, este \u00e9 um conjunto diversificado e amplo de \u00e1reas de foco. Queremos dar a todos eles o n\u00edvel de cuidado necess\u00e1rio para garantir que o Compose Multiplatform no iOS forne\u00e7a a melhor experi\u00eancia poss\u00edvel para o usu\u00e1rio. Ao fazer isso, queremos ter certeza de que estamos colocando suas necessidades em primeiro lugar e <a href=\"#sharefeedback\">agradecemos pelo seu feedback<\/a>!<\/p>\n<p>Tamb\u00e9m estamos cientes de que o desempenho absolutamente suave, mesmo em monitores com alta taxa de atualiza\u00e7\u00e3o, \u00e9 um fator importante para proporcionar uma \u00f3tima experi\u00eancia ao usu\u00e1rio. Assim, as equipes do Compose Multiplatform e do Kotlin\/Native est\u00e3o trabalhando juntas para melhorar o desempenho de interfaces de usu\u00e1rio compartilhadas no iOS.<\/p>\n<h2 class=\"wp-block-heading\">Cria\u00e7\u00e3o de temas do Compose Multiplataforma para iOS<\/h2>\n<p>Como o Compose Multiplatform no iOS usa renderiza\u00e7\u00e3o baseada em tela, aplicativos iOS e Android t\u00eam a mesma apar\u00eancia por padr\u00e3o. Atualmente, o Compose Multiplatform fornece os widgets Material e Material 3 prontos para uso em todas as plataformas. Esses s\u00e3o os mesmos widgets com os quais voc\u00ea j\u00e1 deve estar familiarizado nos aplicativos Android. Usando a funcionalidade de temas integrada, voc\u00ea pode ajustar a apar\u00eancia desses widgets para refletir sua marca, consistentemente em todas as plataformas ou com temas personalizados espec\u00edficos da plataforma.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-356445\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/widgetdesign.png\" alt=\"\" width=\"2396\" height=\"990\"><p><\/p>\n<figcaption class=\"wp-element-caption\"><em>Prontos para uso, os aplicativos m\u00f3veis criados com o Compose Multiplatform atualmente v\u00eam com os widgets Material. Voc\u00ea pode personalizar sua apar\u00eancia, criar seus pr\u00f3prios componentes de interface e at\u00e9 mesmo aplicar temas espec\u00edficos da plataforma.<\/em><\/figcaption>\n<\/figure>\n<p>Obviamente, uma quest\u00e3o-chave para um framework de UI multiplataforma \u00e9 at\u00e9 que ponto os elementos devem imitar a apar\u00eancia de suas plataformas de destino. No est\u00e1gio atual, a equipe da JetBrains ainda n\u00e3o tomou nenhuma decis\u00e3o sobre o fornecimento de elementos de UI ou de apar\u00eancia comum. Como essa \u00e9 uma parte fundamental da experi\u00eancia do usu\u00e1rio do Compose Multiplatform, n\u00e3o queremos tomar decis\u00f5es sobre isso sem primeiro receber feedback da comunidade de desenvolvimento, e convidamos voc\u00ea a <a href=\"#sharefeedback\">compartilhar seus pensamentos e opini\u00f5es conosco<\/a>.<\/p>\n<h2 class=\"wp-block-heading\">Experimente voc\u00ea mesmo o Compose Multiplatform para iOS!<\/h2>\n<p>Esperamos que voc\u00ea esteja animado para experimentar o Compose Multiplatform para iOS! Como discutimos, h\u00e1 muitas coisas que ainda est\u00e3o em andamento, mas tamb\u00e9m h\u00e1 muitas que j\u00e1 funcionam bem e est\u00e3o prontas para voc\u00ea experimentar!<\/p>\n<p>Oferecemos v\u00e1rias maneiras diferentes para voc\u00ea se familiarizar com a vers\u00e3o Alfa do Compose Multiplatform para iOS, incluindo aplicativos de exemplo e templates de projeto.<\/p>\n<h3 class=\"wp-block-heading\">Comece com o template<\/h3>\n<p>A maneira mais f\u00e1cil de come\u00e7ar a escrever seus pr\u00f3prios aplicativos para uso no Android e iOS com o Compose Multiplatform \u00e9 usar o <a href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform-ios-android-template\" target=\"_blank\" rel=\"noopener\">template do GitHub<\/a> oficial, que vem com seu pr\u00f3prio tutorial para colocar seu primeiro aplicativo Compose Multiplatform em funcionamento.<\/p>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"CTA\" href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform-ios-android-template\/#readme\" target=\"_blank\" rel=\"noopener\">Comece a usar o Compose para iOS<\/a><\/p>\n<h3 class=\"wp-block-heading\">Explore o Compose para iOS com aplicativos de demonstra\u00e7\u00e3o<\/h3>\n<p>Uma boa maneira de explorar como uma nova tecnologia \u00e9 usada \u00e9 olhar alguns exemplos. Preparamos v\u00e1rios exemplos de projetos que demonstram o Compose Multiplatform no iOS e seus outros destinos. Voc\u00ea pode encontr\u00e1-los no <a href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform\/tree\/master\/examples\" target=\"_blank\" rel=\"noopener\">reposit\u00f3rio do Compose Multiplatform<\/a>.<\/p>\n<figure class=\"wp-block-image size-large is-resized\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-356456\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/05\/sampleapps-2800x1626.png\" alt=\"\" width=\"840\" height=\"487\"><\/figure>\n<p align=\"center\"><a class=\"ek-link jb-download-button\" title=\"CTA\" href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform\/tree\/master\/examples\" target=\"_blank\" rel=\"noopener\">Explorar exemplos de projetos<\/a><\/p>\n<p>Outros projetos de exemplo, como o <a href=\"https:\/\/github.com\/Kotlin\/kmm-production-sample\/tree\/compose-app\" target=\"_blank\" rel=\"noopener\">Kotlin Multiplatform Mobile Production Sample<\/a>, agora apresentam uma ramifica\u00e7\u00e3o que cont\u00e9m uma implementa\u00e7\u00e3o de UI baseada no Compose Multiplatform, permitindo comparar diferen\u00e7as e semelhan\u00e7as entre compartilhar apenas a l\u00f3gica de neg\u00f3cios entre aplicativos e compartilhar tamb\u00e9m a camada de UI do aplicativo.<\/p>\n<h3 id=\"sharefeedback\" class=\"wp-block-heading\">Compartilhe seu feedback!<\/h3>\n<p>O Compose Multiplatform no iOS est\u00e1 em Alfa e queremos evoluir a tecnologia com base nas suas necessidades.<\/p>\n<p>Ajude-nos a ajudar voc\u00ea, relatando problemas, informando-nos sobre as APIs que voc\u00ea acha que est\u00e3o faltando e solicitando os recursos que voc\u00ea gostaria de ver. Voc\u00ea pode fazer tudo isso no <a href=\"https:\/\/github.com\/JetBrains\/compose-multiplatform\/issues\" target=\"_blank\" rel=\"noopener\">rastreador de issues do projeto<\/a>.<\/p>\n<p>Se quiser conversar com a equipe por detr\u00e1s do Compose Multiplatform ou outros desenvolvedores, tamb\u00e9m convidamos voc\u00ea a participar da discuss\u00e3o no <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/compose-ios\" target=\"_blank\" rel=\"noopener\">Kotlin Slack<\/a>. No canal <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/compose-ios\" target=\"_blank\" rel=\"noopener\">#compose-ios<\/a>, voc\u00ea encontra discuss\u00f5es sobre o Compose Multiplatform para iOS. Em <a href=\"https:\/\/slack-chats.kotlinlang.org\/c\/compose\" target=\"_blank\" rel=\"noopener\">#compose<\/a>, voc\u00ea pode discutir t\u00f3picos gerais relacionados ao Compose Multiplatform e ao Jetpack Compose.<\/p>\n<p>Estamos ansiosos para ver o que voc\u00ea vai criar com o Compose Multiplatform!<\/p>\n<h2 class=\"wp-block-heading\">Veja tamb\u00e9m<\/h2>\n<ul>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2023\/04\/kotlinconf-2023-opening-keynote\/\">KotlinConf 2023: Uma olhada na keynote de abertura<\/a><\/li>\n<li><a href=\"https:\/\/blog.jetbrains.com\/kotlin\/2022\/10\/compose-multiplatform-1-2-is-out\/\">Lan\u00e7amento do Compose Multiplatform 1.2<\/a><\/li>\n<\/ul>\n<p><em><br>Artigo original em ingl\u00eas por:<\/em><\/p>\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":364005,"comment_status":"closed","ping_status":"closed","template":"","categories":[956,89],"tags":[8144,6706],"cross-post-tag":[6256],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/363974"}],"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=363974"}],"version-history":[{"count":5,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/363974\/revisions"}],"predecessor-version":[{"id":364016,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/kotlin\/363974\/revisions\/364016"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media\/364005"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/media?parent=363974"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/categories?post=363974"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/tags?post=363974"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/pt-br\/wp-json\/wp\/v2\/cross-post-tag?post=363974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}