{"id":11721,"date":"2021-04-28T16:39:52","date_gmt":"2021-04-28T19:39:52","guid":{"rendered":"https:\/\/geekblogti.wpengine.com\/?p=11721"},"modified":"2024-09-24T18:00:14","modified_gmt":"2024-09-24T21:00:14","slug":"introducao-a-kotlin","status":"publish","type":"post","link":"https:\/\/www.geekhunter.com/pt/blog\/introducao-a-kotlin\/","title":{"rendered":"Introdu\u00e7\u00e3o a Kotlin: um guia para come\u00e7ar"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Os criadores de Kotlin tinham duas op\u00e7\u00f5es: adaptar novas funcionalidades em linguagens j\u00e1 existentes ou criar uma linguagem nova. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por mais que a segunda op\u00e7\u00e3o demande todo um investimento no ecossistema, cria\u00e7\u00e3o de bibliotecas, documenta\u00e7\u00e3o, ferramentas de apoio, grupos e tudo que for necess\u00e1rio para a linguagem ser usada e adotada&#8230; a primeira op\u00e7\u00e3o era invi\u00e1vel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Assim nasceu Kotlin, pensada para ter as caracter\u00edsticas da linguagem Scala e Java, por\u00e9m eliminando tudo aquilo que \u00e9 desvantagem nesses ambientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00e1 com uma cara boa, n\u00e3o \u00e9? Ent\u00e3o acompanhe esse guia para conhecer essa linguagem moderna e queridinha de grandes empresas! <\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-o-que-kotlin\">O que \u00e9 Kotlin?<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"350\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/04\/kotlin.jpg\" alt=\"O que \u00e9 kotlin com logo\" class=\"wp-image-12040\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/kotlin.jpg 800w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/kotlin-150x66.jpg 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/kotlin-100x44.jpg 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/kotlin-600x263.jpg 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/kotlin-450x197.jpg 450w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption>Logo da linguagem Kotlin.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin \u00e9 uma linguagem de programa\u00e7\u00e3o open source multiplataforma criada pela JetBrains e amplamente usada por desenvolvedores <a href=\"https:\/\/geekblogti.wpengine.com\/java-android\/\" target=\"_blank\" rel=\"noreferrer noopener\">Android<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9 multiparadigma, sendo totalmente orientada a objetos, mas com algumas caracter\u00edsticas de linguagem funcional (como as fun\u00e7\u00f5es lambda), com tipagem est\u00e1tica e executada pela Java Virtual Machine (M\u00e1quina Virtual do Java).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As semelhan\u00e7as com Java s\u00e3o tantas que voc\u00ea at\u00e9 pode usar Java dentro do seu c\u00f3digo Kotlin, mas vamos ver isso mais para frente! <span class=\"has-inline-color has-cyan-bluish-gray-color\"><s>(\u00e9 a tal de interoperalidade)<\/s><\/span>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Foi lan\u00e7ada, na sua vers\u00e3o est\u00e1vel, em 2016. Logo em seguida, o Google se juntou a JetBrains e agora, as duas empresas mant\u00e9m essa linguagem atrav\u00e9s da Kotlin Foundation. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, o Google anunciou que Kotlin faz parte das linguagens oficiais do Android. Ent\u00e3o, junto com a JVM, ela pode ser usada para desenvolvimento web, mobile e desktop. \ud83d\ude2e<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-por-que-utilizar-kotlin\">Por que utilizar Kotlin?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Em primeiro lugar, a <strong>produtividade<\/strong>. Kotlin \u00e9 uma linguagem enxuta e intuitiva, utilizando cerca de 40% menos c\u00f3digos para representar a mesma coisa que o Java.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A linguagem de programa\u00e7\u00e3o Java \u00e9 verbosa, e apesar de existir projetos para diminuir essa desvantagem, como o Lombok.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Assim, ela n\u00e3o \u00e9 t\u00e3o eficaz quanto a expressividade que Kotlin oferece nativamente. A curva de aprendizagem do Kotlin \u00e9 r\u00e1pida e relativamente pequena. \ud83e\udd13<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entretanto, escrever menos c\u00f3digos significa que mais regras precisam ser lembradas. Isso vai gerar uma boa carga de estudos aprendendo a melhor forma de escrever um c\u00f3digo Kotlin. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outro ponto a ser destacado \u00e9 que por ser estaticamente tipada, essa linguagem oferece mais seguran\u00e7a e performance ao programador Kotlin. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Veja s\u00f3, Kotlin mostra os erros cometidos na hora da escrita do c\u00f3digo durante a compila\u00e7\u00e3o, em vez de dar erro na hora da execu\u00e7\u00e3o do c\u00f3digo, muito tempo depois. Isso torna a linguagem mais rigorosa, mas evita defeitos n\u00e3o intencionais.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E mais uma coisinha, quer saber quais grandes empresas tamb\u00e9m est\u00e3o usando o Kotlin?<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Google;<\/li><li>Amazon;<\/li><li>Netflix;<\/li><li>Pinterest;<\/li><li>Uber;<\/li><li>Foursquare;<\/li><li>Trello;<\/li><li>Capital One;<\/li><li>Coursera.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">E se voc\u00ea j\u00e1 estiver convencido, essa s\u00e3os as ferramentas de desenvolvimento que j\u00e1 aceitam o Kotlin:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Spring;<\/li><li>Gradle;<\/li><li>Vert.x;<\/li><li>Spark Java;<\/li><li>Codename One;<\/li><li>JetBrains.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-caracter-sticas-do-kotlin-vs-java\">Caracter\u00edsticas do Kotlin vs. Java<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sabia que na comunidade Dev Android, Kotlin \u00e9 comparada ao Java tanto quanto Swift \u00e9 comparada ao Objective-C (Dev IOS)?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">As semenelhan\u00e7as s\u00e3o grandes, por\u00e9m tem algumas coisinhas que colocam a linguagem desse artigo na frente, saca s\u00f3.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Interoperabilidade:<\/strong> Kotlin \u00e9 totalmente interoper\u00e1vel com o Java. O que isso quer dizer? Quer dizer que podemos utilizar Kotlin quando quisermos em algum projeto Java.<br><br>Ou seja, podemos inserir c\u00f3digo Kotlin no projeto Java e utiliz\u00e1-lo a partir do c\u00f3digo Java do projeto. Isso mesmo, num mesmo projeto podemos ter as duas linguagens trabalhando juntas \ud83d\ude43.<br><br>E n\u00e3o para por a\u00ed. Essa rela\u00e7\u00e3o \u00e9 bidirecional, isto \u00e9, podemos inserir c\u00f3digo Java num projeto Kotlin e utilizar o c\u00f3digo a partir de Kotlin.<br><br>Outra coisa, n\u00e3o precisamos nos preocupar se bibliotecas Java funcionar\u00e3o ou n\u00e3o. Isso porque as APIs que executam no Java tamb\u00e9m executam em Kotlin \ud83d\ude01.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Sintaxe:<\/strong> essa caracter\u00edstica refere-se \u00e0 legibilidade que, se comparada a do Java, \u00e9 mais simples e concisa e, portanto, \u00e9 vantajosa em rela\u00e7\u00e3o ao Java. Mais abaixo, dois exemplos mostram isso melhor.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Null Safety:<\/strong> essa caracter\u00edstica fant\u00e1stica de Kotlin diferencia refer\u00eancias que podem ser nulas daquelas que n\u00e3o podem ser, de acordo com o tipo definido.<br><br>Sabe aquele problema&nbsp;chato do <em>NullPointerException<\/em>, ent\u00e3o&#8230; \u00e9 justamente para tratar disso. O trecho de c\u00f3digo abaixo esclarece melhor essa caracter\u00edstica.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>var stringValue: String = \u201cHello World!\u201d\nstringValue= null; \/\/ error\n\nvar stringValue: String? = \u201cHello World!\u201d\nstringValue = null \/\/ ok<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Coroutines:<\/strong> s\u00e3o rotinas cuja execu\u00e7\u00e3o pode ser interrompida permitindo que outra rotina seja executada naquele instante.<br><br>N\u00e3o significa que a rotina interrompida n\u00e3o voltar\u00e1 a ser executada, pelo contr\u00e1rio, ser\u00e1 retomada, por\u00e9m em um momento futuro, cooperando entre si. N\u00e3o s\u00e3o as threads que o Java utiliza, mas \u00e9 algo parecido.<br><br>No Android, as corrotinas s\u00e3o utilizadas para simplificar o c\u00f3digo que \u00e9 executado de forma ass\u00edncrona, ajudando a gerenciar tarefas de longa dura\u00e7\u00e3o que podem bloquear a linha de execu\u00e7\u00e3o principal e fazer com que o seu app pare de responder.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>Suporte total pelo o Android Studio. \ud83d\ude0e<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Comunidade:<\/strong> Kotlin tem um grande apoio e muitas contribui\u00e7\u00f5es da comunidade, que vem crescendo em todo o mundo. De acordo com o Google, mais de 60% dos 1000 principais aplicativos da Play Store utilizam Kotlin. (<a href=\"https:\/\/kotlinlang.org\/docs\/reference\/android-overview.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/kotlinlang.org\/docs\/reference\/android-overview.html<\/a>)<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Suporte no Android Jetpack e outras bibliotecas:<\/strong> as extens\u00f5es KTX adicionam recursos a Kotlin, como corrotinas, fun\u00e7\u00f5es de extens\u00e3o, lambdas e par\u00e2metros nomeados, \u00e0s bibliotecas Android existentes.<\/li><\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p><a href=\"https:\/\/geekblogti.wpengine.com\/programacao-mobile-tudo-para-comecar-hoje\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Programa\u00e7\u00e3o Mobile<\/strong><\/a>: tudo para come\u00e7ar hoje!<\/p><\/blockquote>\n\n\n\n<p class=\"wp-block-paragraph\">Agora que voc\u00ea j\u00e1 est\u00e1 por dentro das principais caracter\u00edsticas que d\u00e3o brilho ao Kotlin, vou te mostrar algumas diferen\u00e7as entre Kotlin vs. Java.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.geekhunter.com\/pt\/candidates\/signup?utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=introducao_a_kotlin\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"720\" height=\"200\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/03\/cta-tema-wordpress-vagas.png\" alt=\"\" class=\"wp-image-11910\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/03\/cta-tema-wordpress-vagas.png 720w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/03\/cta-tema-wordpress-vagas-150x42.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/03\/cta-tema-wordpress-vagas-100x28.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/03\/cta-tema-wordpress-vagas-600x167.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/03\/cta-tema-wordpress-vagas-450x125.png 450w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-c-digos-equivalentes-de-java-vs-kotlin\">C\u00f3digos equivalentes de Java vs. Kotlin<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-exemplo-geral\">Exemplo geral<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse exemplo, voc\u00ea ver\u00e1 como mais de uma dezena de linhas em Java consegue ser facilmente representada em Kotlin usando somente uma. Em Java:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Pais {\n\tprivate String nome;\n\tprivate Long populacao;\n\n\tpublic Pais (String nome, Long populacao) {\n\t\tthis.nome = nome;\n\t\tthis.populacao = populacao;\n\t}\n\n\tpublic String getNome ( ) {\n\t\treturn nome;\n}\n\npublic void setNome (String nome) {\n\tthis.nome = nome;\n}\n\npublic Long getPopulacao ( ) {\n\treturn populacao;\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"h-agora-em-kotlin\">Agora em Kotlin:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>data class Pais(var nome: String; var populacao: Long)<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-fun-o-soma\">Fun\u00e7\u00e3o Soma<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Na fun\u00e7\u00e3o Soma, voc\u00ea tamb\u00e9m consegue ver essa redu\u00e7\u00e3o de linhas para a mesma fun\u00e7\u00e3o. Em Java:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class FuncaoSoma {\n\npublic static int soma (int numero1, int numero2) {\n\truturn a + b;\n\t}\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\" id=\"h-em-kotlin\">Em Kotlin:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun soma (numero1: Int, numero2: Int): Int {\n\treturn a + b;\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Com os dois exemplos acima, fica evidente a vantagem de sintaxe que Kotlin possui em rela\u00e7\u00e3o ao Java.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-sintaxes-kotlin\">Sintaxes Kotlin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de utilizarmos a linguagem, vamos aprender um pouco da sua sintaxe. Um tutorial breve para iniciantes dessa linguagem de programa\u00e7\u00e3o.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-vari-veis\">Vari\u00e1veis<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Existem dois tipos principais: <strong>val<\/strong> e <strong>var<\/strong>.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Val:<\/strong> utilizada para declarar constantes. \u00c9 a forma mais recomendada para declara\u00e7\u00e3o de vari\u00e1veis;<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Var:<\/strong> declarar qualquer vari\u00e1vel cujo valor pode ser alterado.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">A primeira requer sua inicializa\u00e7\u00e3o logo que \u00e9 declarada. A segunda n\u00e3o precisa ser inicializada no momento da sua declara\u00e7\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, tanto a primeira quanto a segunda s\u00e3o declaradas utilizando o <em>pascal notation<\/em>, que \u00e9 da forma abaixo:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>nome_da_vari\u00e1vel : tipo_da_vari\u00e1vel<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outra quest\u00e3o \u00e9 a infer\u00eancia de tipos. O tipo de uma vari\u00e1vel n\u00e3o precisa ser explicitamente definido, ou seja, n\u00e3o \u00e9 obrigat\u00f3rio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por\u00e9m, no momento que um valor \u00e9 atribu\u00eddo, o tipo da vari\u00e1vel \u00e9 inferido de acordo com o tipo desse valor \ud83d\ude0e. Vamos ver alguns tipos b\u00e1sicos de Kotlin.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-tipos-b-sicos\">Tipos b\u00e1sicos<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Todos os tipos b\u00e1sicos do Java est\u00e3o presentes aqui. O detalhe \u00e9 que, em Kotlin, todos os tipos s\u00e3o objetos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Isso quer dizer que apenas se trabalha com os wrappers do Java, mas n\u00e3o com seus tipos primitivos correspondentes \ud83d\ude11.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Long:<\/strong> inteiro de 64 bits.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Int:<\/strong> inteiro de 32 bits.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Short:<\/strong> inteiro de 16 bits.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Byte:<\/strong> inteiro de 8 bits.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Double:<\/strong> ponto flutuante de 64 bits.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Float:<\/strong> ponto flutuante de 32 bits.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Boolean:<\/strong> mesmo que o do Java. Pode receber o true ou false.<br><br>Algo de importante a mencionar \u00e9 as opera\u00e7\u00f5es suportadas pelo tipo booleano, que s\u00e3o:<br><ul><li><strong>| |<\/strong> &#8211; disjun\u00e7\u00e3o (ou)<\/li><li><strong>&amp;&amp;<\/strong> &#8211; conjun\u00e7\u00e3o (e)<\/li><li><strong>!<\/strong> &#8211; nega\u00e7\u00e3o<\/li><\/ul><\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>String:<\/strong> em Kotlin, podem ser criadas com aspas duplas ou triplas.<\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Char:<\/strong> os caracteres s\u00e3o representados por esse tipo e n\u00e3o podem ser tratados diretamente como n\u00fameros, sejam eles inteiros ou de ponto flutuante.<\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-classes\">Classes<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">As classes em Kotlin s\u00e3o <strong>final <\/strong>por default, isso significa que elas n\u00e3o podem ser extendidas. O tipo classe \u00e9 definido como a seguir.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>class NomeDaClasse<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O modo como foi feito acima segue utilizando a palavra reservada <strong>class <\/strong>seguido do nome da classe. Abaixo temos uma estrutura de classe mais completa com atributos e m\u00e9todos.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class NomeDaClasse ( var atributo1: String; var atributo2: String; var atributo3: Int ) {\n\n\tfun funcao1(): String {\n\t      return atributo1;\n}\n\n        fun funcao2(): String {\n\t      return atributo2;\n}\n\n        fun funcao3(): Int {\n\t      return atributo3;\n}\n\n\/\/ ...\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Percebeu algo estranho? Voc\u00ea deve ter notado a declara\u00e7\u00e3o dos tr\u00eas atributos entre os par\u00eantesis logo em seguida do nome da classe. Esse \u00e9 o construtor da classe. \u00c9 uma forma diferente da que estamos acostumados no Java, mas tem o mesmo efeito.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al\u00e9m disso, mesmo que voc\u00ea n\u00e3o especifique os atributos do construtor da classe, ela disponibilizar\u00e1 um construtor padr\u00e3o sem nenhum par\u00e2metro \ud83d\ude42.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-fun-es\">Fun\u00e7\u00f5es<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para declarar uma fun\u00e7\u00e3o em Kotlin, utilizamos a palavra reservada <strong>fun <\/strong>seguida pelo nome da fun\u00e7\u00e3o, e logo em seguida os par\u00eanteses com a defini\u00e7\u00e3o dos tipos de entrada da fun\u00e7\u00e3o. Tamb\u00e9m \u00e9 necess\u00e1rio declarar o tipo de sa\u00edda.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>fun printERetorna(frase: String): String {\n\n\tprint(frase);\n\treturn frase;\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-express-es-condicionais\">Express\u00f5es condicionais<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">O mecanismo mais comum de l\u00f3gica condicional \u00e9 a estrutura <strong>if-else<\/strong>, comum em muitas outras linguagens de programa\u00e7\u00e3o, embora ela possua v\u00e1rios mecanismos para implementar a l\u00f3gica condicional.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if  (\/*condi\u00e7\u00e3o*\/ ) {\n\n} else  {\n\t\/\/ bloco de c\u00f3digo que ser\u00e1 executado caso a condi\u00e7\u00e3o seja falsa...\n}\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-arrays\">Arrays<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Conforme dito na documenta\u00e7\u00e3o, Arrays s\u00e3o representados pela classe <strong>Array <\/strong>possuinte de fun\u00e7\u00f5es <strong>get <\/strong>e <strong>set <\/strong>e outras fun\u00e7\u00f5es membro \u00fateis, al\u00e9m da propriedade <strong>size<\/strong>. Diferente do Java, n\u00e3o?<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>val numerosQuadrados = Array(5) { i -&gt; ( i * i ) }\n\nval numerosDobrados = Array&lt;Int&gt; (5, { i -&gt; 2 * i } )<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-loops\">Loops<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Em rela\u00e7\u00e3o aos loops dentro de Kotlin, n\u00e3o h\u00e1 muitas diferen\u00e7as do que j\u00e1 estamos acostumados no Java.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-while\">While<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>while (\/*condi\u00e7\u00e3o de parada*\/) {\n\n\/\/ express\u00f5es\n\u2026\n}\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"h-for\">For<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>for ( i in &lt;valor inicial&gt;..&lt;\u00faltimo valor&gt; ) {\n\n\/\/ express\u00f5es\n...\n\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Lembrando que utilizamos o while quando temos um n\u00famero indefinido de repeti\u00e7\u00f5es e o for quando termo a quantidade determinada \ud83e\udd13.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.geekhunter.com.br\/vagas-kotlin?utm_source=blog&amp;utm_medium=banner&amp;utm_campaign=introducao_a_kotlin\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"720\" height=\"200\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/cta-kotlin.png\" alt=\"Banner para encontrar vagas para Desenvolvedor Kotlin.\" class=\"wp-image-11739\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin.png 720w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin-150x42.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin-100x28.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin-600x167.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin-450x125.png 450w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Entendido esse geralz\u00e3o sobre as sintaxes e conceitos do Kotlin, vou apresentar algumas outras formas de se trabalhar com ele que podem ser interessantes para projetos futuros.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-kotlin-for-javascript\">Kotlin for JavaScript<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin for JavaScript fornece a capacidade de transpilar c\u00f3digo Kotlin, a biblioteca padr\u00e3o e quaisquer depend\u00eancias compat\u00edveis para JavaScript \ud83d\ude2e. Isso pode acontecer tanto do lado do cliente como do lado do servidor<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E outra coisa, a biblioteca padr\u00e3o de Kotlin est\u00e1 dispon\u00edvel para uso atrav\u00e9s do NPM (Node Package Manager), que \u00e9 o gerenciador de pacotes do Node.js padr\u00e3o \ud83d\ude31.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nesse sentido, o site oficial recomenda utilizar Kotlin\/JS atrav\u00e9s de plugins Gradle, que \u00e9 gerenciador de depend\u00eancias e build de aplica\u00e7\u00f5es back-end baseadas na JVM.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Os plugins s\u00e3o: <strong>kotlin.js<\/strong> e <strong>kotlin.multiplataform<\/strong>. S\u00e3o esses plugins que fornecem uma maneira central e conveniente de configurar e controlar projetos Kotlin direcionados ao JavaScript.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste link voc\u00ea pode encontrar essa peculiaridade mais detalhada e estudar mais a fundo \ud83d\udc4f\ud83d\udc4f : <a href=\"https:\/\/kotlinlang.org\/docs\/reference\/js-project-setup.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/kotlinlang.org\/docs\/reference\/js-project-setup.html<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-kotlin-native\">Kotlin Native<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Essa \u00e9 uma tecnologia para compilar c\u00f3digo Kotlin para bin\u00e1rios nativos, que podem ser executados sem uma m\u00e1quina virtual. \u00c9 um backend baseado em LLVM para o compilador Kotlin e implementa\u00e7\u00e3o nativa da biblioteca padr\u00e3o.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin\/Native foi projetado principalmente para permitir a compila\u00e7\u00e3o para plataformas onde as m\u00e1quinas virtuais n\u00e3o s\u00e3o desej\u00e1veis ou poss\u00edveis, por exemplo, dispositivos embarcados ou IOS. Ele resolve as situa\u00e7\u00f5es em que um desenvolvedor precisa produzir um programa independente que n\u00e3o requer um tempo de execu\u00e7\u00e3o adicional ou m\u00e1quina virtual.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-kotlin-for-data-science\">Kotlin for Data Science<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Algumas ferramentas disponibilizam integra\u00e7\u00e3o da linguagem com dados e pesquisa explorat\u00f3ria.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">O Kotlin se integra a essas ferramentas para ajud\u00e1-lo a explorar dados, compartilhar suas descobertas com colegas ou desenvolver suas habilidades de ci\u00eancia de dados e aprendizado de m\u00e1quina.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Jupyter<\/strong> \u00e9 um app web de c\u00f3digo aberto que permite criar e compartilhar documentos que podem conter c\u00f3digo, visualiza\u00e7\u00f5es e texto marcado.<\/li><li><strong>Apache Zeppelin<\/strong> \u00e9 uma solu\u00e7\u00e3o popular baseada na web para an\u00e1lise de dados interativa. Fornece forte suporte para o sistema de computa\u00e7\u00e3o de cluster Apache Spark, que \u00e9 particularmente \u00fatil para engenharia de dados.<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-kotlin-playground\">Kotlin playground<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Kotlin playground \u00e9 um sandbox online para explorar a linguagem, podendo auxiliar o desenvolvimento com Kotlin. O link para a ferramenta \u00e9: <a href=\"https:\/\/play.kotlinlang.org\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/play.kotlinlang.org\/<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos escrever e executar c\u00f3digo Kotlin bem como compartilhar o c\u00f3digo atrav\u00e9s de um link gerado pela ferramenta. Abaixo, a imagem da ferramenta.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/kotlin-playground-1024x455.png\" alt=\"Interface do Kotlin Playground.\" class=\"wp-image-11729\"\/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">O playground kotlin \u00e9 um projeto open source. O link do reposit\u00f3rio oficial do projeto no GitHub \u00e9: <a href=\"https:\/\/github.com\/JetBrains\/kotlin-playground\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/github.com\/JetBrains\/kotlin-playground<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-exemplo-de-projeto-android-com-kotlin-android-studio\">Exemplo de Projeto Android com Kotlin (Android Studio)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para iniciarmos, precisamos obviamente do Android Studio instalado na m\u00e1quina \ud83d\ude11. O download pode ser feito aqui: <a href=\"https:\/\/developer.android.com\/studio\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">Android Studio<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Obs: A vers\u00e3o do Android Studio que estou utilizando \u00e9 a 4.0.1, por\u00e9m a vers\u00e3o atual \u00e9 4.1.3, o que n\u00e3o muda a forma de cria\u00e7\u00e3o desse projeto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depois de baixado e instalado, o fluxo de telas a seguir mostra como criar o projeto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-abrindo-o-android-studio\"><strong>Abrindo o Android Studio<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ao abrir o Android Studio, uma tela parecida com essa \u00e9 aberta:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"697\" height=\"478\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/boas-vindas-androind-studio.png\" alt=\"Tela de boas vindas do Android Studio.\" class=\"wp-image-11726\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/boas-vindas-androind-studio.png 697w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/boas-vindas-androind-studio-150x103.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/boas-vindas-androind-studio-100x69.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/boas-vindas-androind-studio-600x411.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/boas-vindas-androind-studio-450x309.png 450w\" sizes=\"(max-width: 697px) 100vw, 697px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Selecione a primeira op\u00e7\u00e3o: &#8220;Start a new Android Studio project&#8221;.&nbsp;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-template-do-projeto\"><strong>Template do projeto<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea est\u00e1 come\u00e7ando com o Android Studio agora, o melhor \u00e9 come\u00e7ar pela simplicidade. Portanto, selecione o Basic Activity.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"896\" height=\"637\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/basic-activity-androind-studio.png\" alt=\"Template de projetos para iniciar um aplicativo de Kotlin no Android Studio.\" class=\"wp-image-11725\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/basic-activity-androind-studio.png 896w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/basic-activity-androind-studio-150x107.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/basic-activity-androind-studio-100x71.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/basic-activity-androind-studio-600x427.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/basic-activity-androind-studio-450x320.png 450w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/basic-activity-androind-studio-760x540.png 760w\" sizes=\"(max-width: 896px) 100vw, 896px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Clique em &#8220;Next&#8221;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-configura-o-do-projeto\"><strong>Configura\u00e7\u00e3o do projeto<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Depois de selecionar o template e clicar em Next, a janela abaixo aparecer\u00e1. Assim, faremos a sele\u00e7\u00e3o da linguagem que utilizaremos para codificar. Tamb\u00e9m podemos escolher o nome, o pacote e a localiza\u00e7\u00e3o do projeto tamb\u00e9m.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"900\" height=\"637\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/configurar-projeto-kotlin-android.png\" alt=\"Tela de configura\u00e7\u00e3o do projeto no Android Studio.\" class=\"wp-image-11727\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/configurar-projeto-kotlin-android.png 900w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/configurar-projeto-kotlin-android-150x106.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/configurar-projeto-kotlin-android-100x71.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/configurar-projeto-kotlin-android-600x425.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/configurar-projeto-kotlin-android-450x319.png 450w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/configurar-projeto-kotlin-android-763x540.png 763w\" sizes=\"(max-width: 900px) 100vw, 900px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Clique em &#8220;Finish&#8221; e logo em seguida o projeto ser\u00e1 criado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-estrutura-de-pastas-no-android-studio\"><strong>Estrutura de pastas no Android Studio<\/strong><\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Dessa forma, se tudo deu certo, o projeto foi criado e a estrutura padr\u00e3o do projeto Android ser\u00e1 mostrada.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"489\" height=\"662\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/estrutura-projeto-kotlin-android.png\" alt=\"Estrutura de pastas ap\u00f3s criar um projeto b\u00e1sico no Android Studio.\" class=\"wp-image-11728\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/estrutura-projeto-kotlin-android.png 489w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/estrutura-projeto-kotlin-android-111x150.png 111w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/estrutura-projeto-kotlin-android-74x100.png 74w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/estrutura-projeto-kotlin-android-443x600.png 443w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/estrutura-projeto-kotlin-android-332x450.png 332w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/estrutura-projeto-kotlin-android-399x540.png 399w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/estrutura-projeto-kotlin-android-150x203.png 150w\" sizes=\"(max-width: 489px) 100vw, 489px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Expandindo as pastas, voc\u00ea v\u00ea algo igual ou semelhante como a figura abaixo:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"406\" height=\"660\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/pastas-expandidas-projeto-android.png\" alt=\"Estrutura de pastas expandida ap\u00f3s criar um projeto b\u00e1sico no Android Studio.\" class=\"wp-image-11730\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/pastas-expandidas-projeto-android.png 406w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/pastas-expandidas-projeto-android-92x150.png 92w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/pastas-expandidas-projeto-android-62x100.png 62w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/pastas-expandidas-projeto-android-369x600.png 369w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/pastas-expandidas-projeto-android-277x450.png 277w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/pastas-expandidas-projeto-android-332x540.png 332w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/pastas-expandidas-projeto-android-150x244.png 150w\" sizes=\"(max-width: 406px) 100vw, 406px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Se acaso o suporte a Kotlin n\u00e3o venha quando baixamos e instalamos o Android Studio, voc\u00ea pode fazer isso manualmente atrav\u00e9s do Plugin Manager (Preferences &gt; Plugins).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No IntelliJIDEA \u2014&nbsp;outra IDE criada pela JetBrains da qual o Android Studio foi baseada \u2014&nbsp;pode ser preciso baixar e instalar o Plugin de Kotlin para come\u00e7ar a us\u00e1-la. Para isso, voc\u00ea deve ir no Marketplace do IntelliJIDEA, procurar pelo plugin e clicar em Instalar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-conclus-o\">Conclus\u00e3o<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Por fim, esse foi um grande punhado de informa\u00e7\u00f5es para voc\u00ea se situar e entender alguns conceitos b\u00e1sicos sobre Kotlin.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Vimos algumas caracter\u00edsticas, compara\u00e7\u00f5es com Java, principais caracter\u00edsticas<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tenho certeza que voc\u00ea saiu desse artigo com mais conhecimentos do que entrou, n\u00e3o \u00e9? Se isso te interessou e voc\u00ea quiser se aprofundar mais nessa linguagem de programa\u00e7\u00e3o, eis alguns cursos gratuitos para continuar os seus estudos \ud83d\ude0d\ud83d\ude0e\ud83d\ude0a:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/kotlinlang.org\/docs\/home.html\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/kotlinlang.org\/docs\/home.html<\/a><\/li><li><a href=\"https:\/\/www.udemy.com\/course\/desenvolvedor-kotlin-iniciante\/\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/www.udemy.com\/course\/desenvolvedor-kotlin-iniciante\/<\/a><\/li><li><a href=\"https:\/\/developer.android.com\/courses\/android-basics-kotlin\/unit-1\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">https:\/\/developer.android.com\/courses\/android-basics-kotlin\/unit-1<\/a><\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">E tem tamb\u00e9m uma fonte mais &#8220;primitiva&#8221; de conhecimento, o livro!<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>Programando com Kotlin<\/strong>, de Stephen Samuel e Stefan Bocutiu.<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/04\/livro-programando-com-kotlin.jpg\" alt=\"Livro Programando com Kotlin\" class=\"wp-image-12041\" width=\"216\" height=\"300\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/livro-programando-com-kotlin.jpg 359w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/livro-programando-com-kotlin-108x150.jpg 108w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/livro-programando-com-kotlin-72x100.jpg 72w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/livro-programando-com-kotlin-324x450.jpg 324w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/livro-programando-com-kotlin-150x208.jpg 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/04\/livro-programando-com-kotlin-216x300.jpg 216w\" sizes=\"(max-width: 216px) 100vw, 216px\" \/><figcaption>Livro Programando com Kotlin, de Stephen Samuel.<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Bons estudos \ud83d\ude00<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"720\" height=\"200\" src=\"https:\/\/geekblogti.wpengine.com\/wp-content\/uploads\/2021\/02\/cta-kotlin.png\" alt=\"Banner para encontrar vagas para Desenvolvedor Kotlin.\" class=\"wp-image-11739\" srcset=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin.png 720w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin-150x42.png 150w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin-100x28.png 100w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin-600x167.png 600w, https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/cta-kotlin-450x125.png 450w\" sizes=\"(max-width: 720px) 100vw, 720px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Os criadores de Kotlin tinham duas op\u00e7\u00f5es: adaptar novas funcionalidades em linguagens j\u00e1 existentes ou criar uma linguagem nova. Por mais que a segunda op\u00e7\u00e3o demande todo um investimento no ecossistema, cria\u00e7\u00e3o de bibliotecas, documenta\u00e7\u00e3o, ferramentas de apoio, grupos e tudo que for necess\u00e1rio para a linguagem ser usada e adotada&#8230; a primeira op\u00e7\u00e3o era [&hellip;]<\/p>\n","protected":false},"author":167,"featured_media":11734,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[18],"tags":[],"class_list":["post-11721","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-desenvolvimiento-de-software"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.3 (Yoast SEO v28.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Kotlin: Uma introdu\u00e7\u00e3o para te ensinar o mais importante!<\/title>\n<meta name=\"description\" content=\"Quer iniciar em Kotlin e n\u00e3o sabe o que fazer? Confere esse material para te guiar em uma linguagem semelhante ao Java e muito popular!\" \/>\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.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Introdu\u00e7\u00e3o a Kotlin: um guia para come\u00e7ar\" \/>\n<meta property=\"og:description\" content=\"Os criadores de Kotlin tinham duas op\u00e7\u00f5es: adaptar novas funcionalidades em linguagens j\u00e1 existentes ou criar uma linguagem nova. Por mais que a segunda\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Geekhunter\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/geekhunterbr\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-04-28T19:39:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-24T21:00:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/Kotlin-e1612441852104.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1281\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Geekhunter\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:site\" content=\"@geekhunterbr\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Geekhunter\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/\"},\"author\":{\"name\":\"Geekhunter\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\"},\"headline\":\"Introdu\u00e7\u00e3o a Kotlin: um guia para come\u00e7ar\",\"datePublished\":\"2021-04-28T19:39:52+00:00\",\"dateModified\":\"2024-09-24T21:00:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/\"},\"wordCount\":2516,\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Kotlin-e1612441852104.jpg\",\"articleSection\":[\"Desenvolvimiento de software\"],\"inLanguage\":\"pt-BR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/\",\"name\":\"Kotlin: Uma introdu\u00e7\u00e3o para te ensinar o mais importante!\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Kotlin-e1612441852104.jpg\",\"datePublished\":\"2021-04-28T19:39:52+00:00\",\"dateModified\":\"2024-09-24T21:00:14+00:00\",\"description\":\"Quer iniciar em Kotlin e n\u00e3o sabe o que fazer? Confere esse material para te guiar em uma linguagem semelhante ao Java e muito popular!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/introducao-a-kotlin\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Kotlin-e1612441852104.jpg\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2021\\\/02\\\/Kotlin-e1612441852104.jpg\",\"width\":1920,\"height\":1281,\"caption\":\"\u00c1rea de desenvolvimento de Kotlin.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/introducao-a-kotlin\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mundo TI\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Desenvolvimiento de software\",\"item\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/category\\\/mundo-ti\\\/desenvolvimiento-de-software\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Introdu\u00e7\u00e3o a Kotlin: um guia para come\u00e7ar\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"name\":\"Blog de TI\",\"description\":\"Dicas para o RH e profissionais da \u00e1rea TI\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#organization\",\"name\":\"GeekHunter\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"contentUrl\":\"https:\\\/\\\/www.geekhunter.com/pt/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/icon-1.png\",\"width\":300,\"height\":300,\"caption\":\"GeekHunter\"},\"image\":{\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/x.com\\\/geekhunterbr\",\"https:\\\/\\\/www.instagram.com\\\/geekhunterbr\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/geekhunter-brasil\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@GeekHunterOfficial\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/#\\\/schema\\\/person\\\/9f62b173345139f7bbdaf55312c3d400\",\"name\":\"Geekhunter\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g\",\"caption\":\"Geekhunter\"},\"url\":\"https:\\\/\\\/www.geekhunter.com\\\/pt\\\/blog\\\/author\\\/matias\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Kotlin: Uma introdu\u00e7\u00e3o para te ensinar o mais importante!","description":"Quer iniciar em Kotlin e n\u00e3o sabe o que fazer? Confere esse material para te guiar em uma linguagem semelhante ao Java e muito popular!","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.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/","og_locale":"pt_BR","og_type":"article","og_title":"Introdu\u00e7\u00e3o a Kotlin: um guia para come\u00e7ar","og_description":"Os criadores de Kotlin tinham duas op\u00e7\u00f5es: adaptar novas funcionalidades em linguagens j\u00e1 existentes ou criar uma linguagem nova. Por mais que a segunda","og_url":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/","og_site_name":"Blog Geekhunter","article_publisher":"https:\/\/www.facebook.com\/geekhunterbr\/","article_published_time":"2021-04-28T19:39:52+00:00","article_modified_time":"2024-09-24T21:00:14+00:00","og_image":[{"width":1920,"height":1281,"url":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/Kotlin-e1612441852104.jpg","type":"image\/jpeg"}],"author":"Geekhunter","twitter_card":"summary_large_image","twitter_creator":"@geekhunterbr","twitter_site":"@geekhunterbr","twitter_misc":{"Escrito por":"Geekhunter","Est. tempo de leitura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/#article","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/"},"author":{"name":"Geekhunter","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400"},"headline":"Introdu\u00e7\u00e3o a Kotlin: um guia para come\u00e7ar","datePublished":"2021-04-28T19:39:52+00:00","dateModified":"2024-09-24T21:00:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/"},"wordCount":2516,"publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/Kotlin-e1612441852104.jpg","articleSection":["Desenvolvimiento de software"],"inLanguage":"pt-BR"},{"@type":"WebPage","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/","name":"Kotlin: Uma introdu\u00e7\u00e3o para te ensinar o mais importante!","isPartOf":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/#primaryimage"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/#primaryimage"},"thumbnailUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/Kotlin-e1612441852104.jpg","datePublished":"2021-04-28T19:39:52+00:00","dateModified":"2024-09-24T21:00:14+00:00","description":"Quer iniciar em Kotlin e n\u00e3o sabe o que fazer? Confere esse material para te guiar em uma linguagem semelhante ao Java e muito popular!","breadcrumb":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.geekhunter.com/pt/blog\/introducao-a-kotlin\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/#primaryimage","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2021\/02\/Kotlin-e1612441852104.jpg","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2021\/02\/Kotlin-e1612441852104.jpg","width":1920,"height":1281,"caption":"\u00c1rea de desenvolvimento de Kotlin."},{"@type":"BreadcrumbList","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/introducao-a-kotlin\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/www.geekhunter.com/pt/blog\/"},{"@type":"ListItem","position":2,"name":"Mundo TI","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/"},{"@type":"ListItem","position":3,"name":"Desenvolvimiento de software","item":"https:\/\/www.geekhunter.com/pt/blog\/category\/mundo-ti\/desenvolvimiento-de-software\/"},{"@type":"ListItem","position":4,"name":"Introdu\u00e7\u00e3o a Kotlin: um guia para come\u00e7ar"}]},{"@type":"WebSite","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#website","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","name":"Blog de TI","description":"Dicas para o RH e profissionais da \u00e1rea TI","publisher":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.geekhunter.com/pt/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#organization","name":"GeekHunter","url":"https:\/\/www.geekhunter.com\/pt\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.geekhunter.com\/pt\/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","contentUrl":"https:\/\/www.geekhunter.com/pt/blog\/wp-content\/uploads\/2024\/10\/icon-1.png","width":300,"height":300,"caption":"GeekHunter"},"image":{"@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/geekhunterbr\/","https:\/\/x.com\/geekhunterbr","https:\/\/www.instagram.com\/geekhunterbr\/","https:\/\/www.linkedin.com\/company\/geekhunter-brasil\/","https:\/\/www.youtube.com\/@GeekHunterOfficial"]},{"@type":"Person","@id":"https:\/\/www.geekhunter.com\/pt\/blog\/#\/schema\/person\/9f62b173345139f7bbdaf55312c3d400","name":"Geekhunter","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/09a0f76de8cf1fa3621f8b73417ce43344b42e1324a07a9af24f57c5eef49840?s=96&d=mm&r=g","caption":"Geekhunter"},"url":"https:\/\/www.geekhunter.com\/pt\/blog\/author\/matias\/"}]}},"_links":{"self":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/11721","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/users\/167"}],"replies":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/comments?post=11721"}],"version-history":[{"count":0,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/posts\/11721\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media\/11734"}],"wp:attachment":[{"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/media?parent=11721"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/categories?post=11721"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.geekhunter.com/pt/blog\/wp-json\/wp\/v2\/tags?post=11721"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}