Uma coleção de conteúdo baseada no renomado Kotlin Koans para aprender Kotlin em português 🇧🇷, com conteúdo exclusivo e adaptações para 9 outras linguagens de programação.
O Kotlin Koans original foi criado pela JetBrains e se tornou um método preferido por quem conhece Java para iniciar no Kotlin. Esta versão em português traz conteúdo exclusivo e traduções para outras linguagens como: Swift, Dart, JavaScript, TypeScript, Python, Go, entre outras.
Os exercícios são propostos como desafios que começam com um teste unitário falhando. Você pode explorar os exercícios de três formas:
- 🥉Pelo site Kotlin Koans: Ambiente online para quem é fluente em inglês.
- 🥈Usando o Plugin para IntelliJ ou Android Studio: Para quem prefere integração ao ambiente de desenvolvimento e tem facilidade com o inglês.
- 🥇Através deste projeto: Conteúdo e exemplos em português, incluindo traduções em outras linguagens, analogias, casos de uso e boas práticas.
A estrutura deste repositório foi desenhada para oferecer uma experiência de aprendizado fluida, com uma organização lógica dos tópicos e exemplos.
Aqui, os exercícios e soluções do Kotlin Koan estão organizados por módulos. Cada módulo tem seu próprio diretório, como introduction
, que
hospeda tópicos introdutórios.
Dentro de cada diretório de módulo:
-
README.md
: Serve como um guia para o tópico, com sugestões e informações que enriquecem o aprendizado. -
NomeDoTopicoKotlin.kt
: É a solução principal do Kotlin Koan. Embora seja tentador, tente resolver o Koan sem espiar a solução. -
references/
: Este diretório é uma adição especial. Contém adaptações da solução principal para outras linguagens de programação, permitindo uma comparação lado a lado.
💡 Os testes em conjunto com a solução torna a experiência completa.
✅ No final de cada exercício, verifique o teste correspondente para máxima absorção.
Aqui estão os testes unitários que verificam as soluções dos Koans. Estes testes são escritos seguindo o padrão Gherkin, tornando-os compreensíveis mesmo para quem é novo em testes.
koans/
├── commonMain/
│ ├── introduction/
│ │ ├── helloWorld/
│ │ │ ├── references/
│ │ │ │ ├── HelloWorldJava.java
│ │ │ │ ├── HelloWorldC#.cs
│ │ │ │ ├── HelloWorldDart.dart
│ │ │ │ ├── HelloWorldGo.go
│ │ │ │ ├── HelloWorldJavaScript.js
│ │ │ │ ├── HelloWorldPHP.php
│ │ │ │ ├── HelloWorldPython.py
│ │ │ │ ├── HelloWorldSwift.swift
│ │ │ │ └── HelloWorldTypeScript.ts
│ │ │ ├── HelloWorldKotlin.kt
│ │ │ └── README.md
│ │ ├── namedArguments/
│ │ │ ├── references/
│ │ │ │ ├── NamedArgumentsSwift.swift
│ │ │ │ └── ...
│ │ │ ├── NamedArgumentsKotlin.kt
│ │ │ └── README.md
│ │ └── ...
│ ├── classes
│ └── ...
└── commonTest/
├── introduction/
│ ├── HelloWorldTests.kt
│ └── ...
└── ...
Muito conteúdo ainda está por vir! Verifique a pasta migrar
desse projeto e veja o que vêm por aí.
Se você tem dúvidas, sugestões ou quer ajudar com traduções e revisões:
- Criando uma nova Issue: Abra uma nova issue e faça suas sugestões, ideias, solicitações ou dúvidas.
- Contribuindo com as traduções de código: em cada pasta, você encontrará soluções em várias linguagens. Ajude revisando, corrigindo, sugerindo ou contribuindo com novas linguagens.
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE.txt para detalhes.