NOTÍCIA

Veja o que aconteceu no Kotlin Community Summit 2018

O iMasters trouxe um pequeno resumo com o que rolou em algumas apresentações do Kotlin Community Summit 2018!

Para dar o pontapé inicial ao KotlinKotlin4 conteúdosBootcamp com 10 mil bolsas gratuitas: DIO e NTTDATA lançam formação para iniciantes e profissionais de tecnologiaDev (Back & Front) · nov 2023TQI lança bootcamp de Kotlin com 25 mil bolsas de estudo gratuitas para desenvolvedoresDev (Back & Front) · abr 2023GitHub anuncia suporte para Swift e segurança mais ampla para aplicativos móveisDev (Back & Front) · jun 2023Ver tudo em Dev (Back & Front) Community Summit 2018, Thaíssa Candela realizou a abertura oficial do evento. Diante de um auditório cheio, Thaíssa chamou o primeiro palestrante ao palco, Ubiratan Soares, com a sua talk “Kotlin : Advanced Tricks”, começou a rodada de palestras da manhã explorando as funcionalidades da linguagem Kotlin que podem passar despercebidas e mostrou como elas podem ser úteis no dia a dia.

Ubiratan Soares

Com o auditório cheio e em tom bastante descontraído, Ubiratan explicou o que é o “Nothing” no Kotlin e sua importância. Ele também resgatou os conceitos do Delegation no Kotlin.

“O Delegation é uma maneira de inicializar uma ação de forma atrasada”

Ubiratan Soares finalizou a palestra de abertura do evento falando sobre Extensions. Sua apresentação foi bastante avançada e agitou o público presente no auditório do Developer Hub.

“Kotlin tem os seus segredos. Vá explorar!”

Leandro Ferreira

O segundo palestrante a subir no palco do auditório foi Leandro Ferreira, com sua palestra “Arrow 101 – Kotlin functional com Arrow e os conceitos sobre Teoria da Categoria e programação funcional em Kotlin.

Leandro deu início a sua palestra falando sobre o que não podemos usar no Kotlin e já partiu para diversas dicas para melhorar o código.

“O Kotlin traz funções parcialmente aplicadas”.

Leandro apresentou uma breve introdução à Teoria da Categoria e mostrou como usá-la para aplicar e facilitar a programação no dia a dia. Mencionou também a composição da função e como ela pode encurtar o caminho das funções.

Monoids

“É um tipo de categoria simples. Você tem um conjunto e eu te peço somente a sua identidade e operações que possam ser compostas”.

Ele também apresentou os tipos de ordem maior e encerrou com uma rodada de perguntas abertas ao público.

Rafael Toledo

Para encerrar o primeiro round de palestras antes do almoço, Rafael Toledo subiu ao palco do auditório e de forma descontraída deu início a sua apresentação fazendo um breve resumo do cenário Android atualmente. Logo em seguida entrou no mundo do Kotlin e o desenvolvimento no Android.

Por que usar Kotlin no desenvolvimento do Android? Rafael trouxe alguns pontos que respondem essa questão:

  • Compatibilidade: Java 6
  • Performance
  • Interoperabilidade
  • Footprint: standard library & runtime ~100Kb
  • Tempo de compilação não é mais um problema
  • Tooling evoluindo

Rafael Toledo também falou sobre o uso do Kotlin no desenvolvimento JavaScript e mostrou os principais pontos desse cenário:

  • JavaScript Optmized – DCE (Dead Code Elimination)
  • JavaScript legível e depurável
  • Compatibilidade com código JavaScript pré-existente
  • Mesmas features da Standard Library da JVM – Incluindo Coroutines

O Spring, framework mais consolidado, também foi mencionado durante a palestra. Rafael afirmou que, com ele, você consegue tornar o Código mais idiomático, e usar o ambiente desse framework para suprir todas as necessidades relacionadas ao back-end.

“Para tudo que você precisa no back-end, o Spring tem uma biblioteca para isso”.

Antes de chegar na etapa final de sua apresentação, Rafael mostrou que é possível trabalhar com jQuery, React, NodeJS e listou as plataformas que o Kotlin suporta e os módulos multiplataforma:

  • commom: contém código que não é específico e nenhuma plataforma, assim como a declaração de APIs que necessitam de implementação específica
  • platform: contém a implementação das APIs definidas em um módulo commom, além de outros códigos específicos da plataforma
  • regular: módulo comum que tem como target uma plataforma específica

Lucas Santos

Voltando com força total após o almoço, Lucas Santos subiu ao palco para apresentar “Kotlin no Backend com Spring e Coroutines”.

Lucas começou explicando o que é o Kotlin e como surgiu e falou sobre as influências da linguagem (JVM e Scala).

Por que Kotlin?

  • Sintaxe reduzida e mais moderna
  • Programação funcional
  • Interoperabilidade com Java
  • Estaticamente tipada
  • Tempo de compilação aceitável

Através de algumas comparações com o Java, ele trouxe alguns exemplos de eficiência do código.

Mostrou também que existe, sim, Kotlin além do Android e revelou os maiores problemas do reactive:

  • Código menos intuitivo
  • Debug complicado
  • Stack trace ilegível
  • Aumento de complexidade
  • Monitoramento complicado
  • Atenção com bloqueio de threads
  • JDBC é blocking

Em seguida apresentou algumas características do Kotlin Coroutines, que abarcam poucas threads, códigos sequenciais e bridges para libs reativas.

Para encerrrar sua apresentação, Lucas mostrou uma comparação de performance com o Tradicional, Reactive e Coroutines, com o Coroutine liderando os gráficos.

“Tradicional tem um código legal, porém, sua performance nem tanto. Reactive tem a performance, mas não é tão legal assim. Já o Coroutine tem os dois, mas devemos nos lembrar que não existe bala de prata; existem problemas”.

Bernardo Teodosio

Antes da pausa para o tão aguardado Coffee Break do iMasters, Bernardo Teodosio assumiu o microfone para a talk “Criando sua própria DSL utilizando expressões lambda em Kotlin”.

Bernardo começou explicando o que são as Higher Order Functions e definiu o termo “Lambda” como “nada mais é do que uma função anônima”. Apresentou as Domain-specifc languages (DSLs), que definem as linguagens que são criadas para resolver problemas específicos, mas não são especificamente linguagens de programação. Uma das vantagens que elas trazem é tornar o código mais legível.

Para encerrar, trouxe um exemplo do Block Builder e as melhorias de estrutura obtidas durante o uso de linguagens específicas.

Thaís Aquino

Logo após a pausa para o Coffee Break, Thaís Aquino apresentou sua talk “Dependency Injection com Kotlin”. Logo no começo, Thaís já explicou o que é Inversão de Dependência.

“Inversão de Dependência prega que temos que depender de abstrações”.

  • Componentes devem depender de abstrações
  • Abstrações não devem depender de implementações
  • Implementações devem depender de abstrações

Para deixar as definições mais claras, Thaís trouxe um exemplo de otimização da Inversão de Dependência. Primeiro apresentou uma classe que era responsável pela criação da instância do Retrofit e do Serviço de Rest, e em seguida mostrou que a classe passou a receber uma instância através do construtor. Essas instâncias compartilhadas, segundo ela, podem ser usadas em qualquer lugar da aplicação.

E a injeção de dependência? Se você também tem essa dúvida, ela foi esclarecida com algumas características apresentadas, que apontam que as classes dependem umas das outras para executar uma lógica, e ao aplicarmos uma Injeção de Dependência,  os objetos são fornecidos por uma entidade externa que coordena cada objeto e as dependências são injetadas no objeto.

A palestrante também apresentou alguns motivos para usarmos frameworks:

  • Criar e prover dependências
  • Separar implementação e inicialização do uso de dependências
  • Escrever menos código
  • Reusp de dependências
  • Uso de escopo
  • Possibilidade de mockar as dependências injetadas
  • Mais facilidade ao testar

Para a parte final de sua palestra, Thaís fez uma breve introdução ao Dagger 2, Kodein e ao Koin, explicando as características e vantagens de cada um.

Compareceu ao Kotlin e gostou? Vem mais por aí! No dia 05 de outubro teremos o InterCon 2018, a maior conferência dev da América Latina. Não deixe de acessar o site do evento para conferir a grade e os palestrantes.

O iMasters agradece a participação de todos e deixa um agradecimento especial aos palestrantes, que capricharam para trazer apresetações de alto nível técnico em mais um evento de alto nível.

Matérias especiais e reportagens conduzidas internamente pela Redação iMasters. Acompanhe no Twitter @imasters e no Instagram/Threads @portalimasters

Ver perfil