Posts marcados com kotlin
-
Kotlin Multiplatform em produção
O que realmente é preciso para entregar Kotlin Multiplatform em iOS e Android num produto real.
-
Fakt: Automatizando o padrão fake-over-mock
Os testes em Kotlin têm um problema que piora quanto mais bem-sucedido seu projeto se torna.
-
O Custo Oculto do Default Hierarchy Template no Kotlin Multiplatform
O Default Hierarchy Template em projetos KMP é uma ótima forma de reduzir código boilerplate e começar a trabalhar rapidamente. Porém, ele veio com um custo inesperado…
-
KMP-102 - Modularização no KMP
No último artigo, entramos em detalhes e aprendemos sobre as peculiaridades do código exportado nos headers do Objective-C, assim como as boas práticas…
-
KMP-102 - Otimizando o Kotlin para o Obj-c/Swift
No último post, aprendemos como utilizar código Kotlin no Swift. Aprendemos sobre algumas técnicas para melhorar o codigo exportado para o Swift, e como…
-
KMP-102 - Utilizando Código Kotlin no Swift
No último post, aprendemos a criar um XCFramework a partir de código Kotlin e exploramos algumas características dos tipos de build gerados.
-
KMP-102 - Características do XCFramework no KMP
No post anterior, aprendemos sobre como o Kotlin/Native exporta uma coleção de .frameworks no formato XCFramework.
-
KMP-102 - XCFramework para Devs KMP
Olá! Dou as boas-vindas a série KMP-102. Vamos aprofundar os conceitos do Kotlin Multiplatform, aprendendo mais sobre como integrar nosso código Kotlin…
-
Kotlin Koans BR: Alias para importação (import alias)
Ao importar uma classe ou função, você pode especificar um nome diferente para ela adicionando como NewName após a diretiva de importação. Isso pode ser…
-
Kotlin Koans BR: Extension functions e properties (funções e propriedades estendidas)
Implemente as funções de extensão Int.r() e Pair.r() e faça com que elas convertam Int e Pair em um RationalNumber.
-
Kotlin Koans BR: Argumentos nomeados
Faça com que a função joinOptions() retorne a lista em formato JSON (por exemplo, [a, b, c]) especificando apenas dois argumentos.
-
Kotlin Koans BR: Argumentos padrão
Imagine que você tenha várias sobrecargas de foo() na sua linguagem favorita.
-
Kotlin Koans BR: Classes de dados (Data Classes)
Reescreva o seguinte código para Kotlin: <details> <summary>Java</summary>
-
Kotlin Koans BR: Classes Seladas
Reutilize sua solução da tarefa anterior, mas substitua a interface pela interface sealed. Assim, você não precisará mais do bloco else na expressão when.
-
Kotlin Koans BR: Lambdas
Passe um lambda para a função anypara verificar se a coleção contém um número par.
-
Kotlin Koans BR: Modelos de String
O padrão a seguir corresponde a uma data no formato 13.06.1992 (dois dígitos, um ponto, dois dígitos, um ponto, quatro dígitos):
-
Kotlin Koans BR: Olá, mundo!
Altere o código para que a função start retorne a string "OK".
-
Kotlin Koans BR: Strings com três aspas
Substitua a chamada trimIndent pela chamada trimMargin, definindo # como valor de prefixo, assim a string resultante não conterá o caractere de prefixo.
-
Kotlin Koans BR: Tipagem inteligente
Reescreva o código fornecido usando smart casts e a expressão when do Kotlin.
-
Kotlin Koans BR: Tipo "nenhum" (Nothing)
Especifique o tipo de retorno Nothing para a função failWithWrongAge.
-
Kotlin Koans BR: Tipos anuláveis
Reescreva o código a seguir para que ele tenha apenas uma expressão if: <details> <summary>Java</summary>
-
KMP 101: Explorando as dependências internas e externas no KMP (fim da série)
Nos artigos anteriores, estabelecemos uma base sobre o Kotlin Multiplatform (KMP) e como ele compila para múltiplas plataformas.
-
KMP 101: Como compartilhar código no KMP - conectando plataformas com expect e actual
Nos últimos artigos, aprofundamos nos bastidores do Kotlin Multiplataforma: seu paradigma, a arquitetura do compilador, os source sets, o ambiente de…
-
KMP 101: Aprendendo sobre o uso do Gradle no Kotlin Multiplataforma
No último artigo, criamos um projeto utilizando o KMP Wizard e, sem muitos esforços, executamos nosso app em aparelhos Android, iOS e Desktop.
-
KMP 101: Criando e executando seu primeiro projeto multiplataforma no Fleet
Nos últimos artigos, focamos em diversos conceitos-chave do KMP e entendemos desde o paradigma multiplataforma, até a configuração do ambiente.
-
KMP 101: Entendendo e configurando o ambiente dev no Kotlin Multiplataforma
O desenvolvimento de software é um processo complexo que exige não apenas habilidade e criatividade, mas também um ambiente de desenvolvimento bem…
-
KMP 101: Dominando os princípios dos Source Sets
No último artigo (🔗 KMP 101: Entendendo como o Kotlin compila para multiplas plataformas), aprendemos sobre o frontend, IR e backend do compilador do…
-
KMP 101: Entendendo como o Kotlin compila para múltiplas plataformas
No último post (🔗 KMP 101: Introdução ao paradigma da multiplataforma), exploramos o paradigma multiplataforma e como o KMP se destaca no ecossistema.
-
KMP 101: Introdução ao paradigma da Multiplataforma
Usamos diariamente uma variedade de aplicativos em dispositivos como celulares, relógios, TVs e computadores, inseridos em um amplo ecossistema digital.
-
Android Plataforma - Parte 0: Introdução à Série
No mundo do desenvolvimento Android, enfrentamos um fluxo contínuo de novidades: novos dispositivos, atualizações do SDK e uma variedade de bibliotecas e…
-
Android Plataforma - Parte 1: Modularização
A eficiência no desenvolvimento de software é essencial nos projetos atuais. Neste artigo, discutiremos a modularização em projetos Kotlin/Android, o…
-
Android Plataforma - Parte 10: Customização dos módulos
No último artigo, exploramos o CommonsExtension para eliminar duplicidades em nossas configurações.
-
Android Plataforma - Parte 11: Criando uma DSL para customizar as novas opções
No artigo anterior, parametrizamos os argumentos de applyAndroidApp() e appyAndroidLibary() com modelos.
-
Android Plataforma - Parte 12: Otimizando tempo de compilação para bibliotecas Android
🌱 Branch: 12/improving-android-library-build-time 🔗 Repositório:...
-
Android Plataforma - Parte 13: Incluindo módulos "puro JVM"
No último artigo, otimizamos a compilação dos módulos Android desativando diversas funcionalidades do Android Gradle Plugin (AGP).
-
Android Plataforma - Parte 14: Aderindo a funcionalidades experimentais do compilador do Kotlin
No último artigo, extendemos nossa plataforma com a capacidade de declarar módulos JVM.
-
Android Plataforma - Parte 15: Cuidando do código com Detekt, Klint e Spotless
No último artigo, abordamos a capacidade de nossa plataforma aderir a funcionalidades experimentais em diferentes módulos.
-
Android Plataforma - Parte 16: Considerações finais
Nos últimos artigos, construímos uma plataforma do zero, aprendendo e aplicando diversos conceitos com o objetivo de flexibilizar e escalar aplicações…
-
Android Plataforma - Parte 2: Início do Projeto
Neste post, vamos explorar um projeto inicial, entender os desafios de manter os arquivos build.gradle.kts e descobrir como o conceito de Composite…
-
Android Plataforma - Parte 3: Compartilhando scripts do Gradle
No artigo anterior, entendemos quais os desafios que um projeto multi-modular traz: a da manutenção e reutilização dos arquivos do Gradle. Vamos entender…
-
Android Plataforma - Parte 4: Composite Build
Nos artigos anteriores, compreendemos a importância da modularidade e como os Composite Builds são a escolha certa para escalar projetos Kotlin.
-
Android Plataforma - Parte 5: Simplificando Gradle Init
No artigo anterior, estabelecemos nossa plataforma com o build-logic e registramos a task greeting no projeto principal.
-
Android Plataforma - Parte 6: Version Catalog
No post anterior, otimizamos nossa plataforma, deixando-a preparada para mais funcionalidades.
-
Android Plataforma - Parte 7: Decorando o módulo 'app'
No artigo anterior, preparamos nossa plataforma para receber novas funcionalidades.
-
Android Plataforma - Parte 8: Decorando os módulos 'library'
No último post, apresentamos a primeira decoração na Plataforma e fizemos toda a configuração do nosso módulo app usando Kotlin DSL.
-
Android Plataforma - Parte 9: Unificando a Application e Library extensions com a Common Extension
No último post, conseguimos extrair a lógica de configuração de nossos módulos library/biblioteca.