Migrando do para o - Code Prestige · return score;} fun doSomething() {// código} fun...

19
Migrando do para o CodePrestige um e-book produzido por:

Transcript of Migrando do para o - Code Prestige · return score;} fun doSomething() {// código} fun...

Migrando dopara o

CodePrestigeum e-book produzido por:

AgradecimentosSeja muito bem-vindo!

Com o anúncio da oficialização do Kotlin como a nova linguagem oficial para programação de aplicativos na plataforma Android, os desenvolvedores precisam se preparar para começar a trabalhar com esta linguagem. Como a linguagem tem uma interoperabilidade total com o código Java, a curva de aprendizado é muito menor. Neste e-book, mostraremos como executar os principais comandos do Java na linguagem da JetBrains.

Bons estudos e bons códigos!

Diego Martins de PinhoCofundador da Code Prestige

Leia também o nosso artigo!!

http://bit.ly/do-java-para-kotlin

Introdução

O Google anunciou durante a conferência I/O 2017 que o Kotlin passará a ser uma linguagem oficial da plataforma Android. Isso significa que logo desenvolvedores de todo o mundo poderão utilizar a linguagem criada pela JetBrains para desenvolver aplicativos para o Android.

O Kotlin é uma linguagem JVM com interoperabilidade 100% de acordo com o Java, ou seja, pra quem já conhece o Java, aprender Kotlin é fácil. Neste e-book trazemos as principais operações do Java convertidas para o Kotlin.

Vamos programar?

Você sabia que...

O nome Kotlin é devido à ilha russa de mesmo nome que fica próxima a São Petersburgo, onde se iniciou o projeto da nova linguagem da JetBrains.

Veja o anúncio na conferência

http://bit.ly/2smsXfn

Sumário

● Definição de Pacotes● A função print()● Variáveis com val e var● Null Safety● Concatenação de Strings● Quebra de linha (\n)● Instanceof e Casting● Verificação entre valores

● Switch → Case● Laços de iteração● Listas e Mapas● Getters e Setters● Funções

* Estas são somente algumas das funções que ficaram mais fáceis no Kotlin. Fique ligado nos nossos e-books para mais materiais sobre a linguagem!

Definição de PacotesAssim como no Java, o nome do pacote deve estar no topo do arquivo, entretanto, os pacotes não precisam necessariamente ser iguais aos seus caminhos nos diretórios. Isso significa que é possível alterar a organização dos arquivos sem quebrar os pacotes.

aplicacao/br

comcodeprestige

kotlinarquivo

package br.com.codeprestige.kotlin;

package br.com.exemplo.kotlin

| 01CodePrestige - Ensino de programação à distância

print(“Hello World”)println(“Hello World”)

A função print()

Quando desejamos imprimir informações no console, utilizamos a funções System.out.print() e System.out.println(). No Kotlin, não é necessário o explicitar o System.out:

> Hello World

Note que não é necessário o uso de “;” (ponto e vírgula)

System.out.print(“Hello World”);System.out.println(“Hello World”);

| 02CodePrestige - Ensino de programação à distância

Console

Variáveis com val e var

A declaração de variáveis é feita por meio das palavras reservadas val e var. Utilizamos a primeira quando queremos que a variável seja somente de leitura e a segunda para os demais casos.

String nome = "CodePrestige";final String nome = "CodePrestige";

var nome = "CodePrestige"val name = "CodePrestige"

| 03CodePrestige - Ensino de programação à distância

Null Safety

Uma das exceções mais comuns e perigosas no desenvolvimento Java é o NullPointerException. Para evitá-lo, nossos códigos costumam ter várias verificações do tipo !=null. Em Kotlin, essa verificação ficou mais fácil:

Mas caso você queira que a validação de valores nulos seja obrigatória, basta utilizar a notação!!

if(texto != null) { int tamanho = text.length();}

text?.let { val tamanho = text.length}

text!!.let { val tamanho = text.length}

| 04CodePrestige - Ensino de programação à distância

Concatenação de Strings

Trabalhar com Strings ficou bem mais fácil e divertido com o Kotlin. A linguagem nos permite interpolar as Strings, de forma que sua construção no código fica muito mais fácil, limpa e intuitiva.

> Code PrestigeString nome = “Code”;String sobrenome = “Prestige”;

String nomeCompleto = nome + sobrenome;

val nome = “Code”val sobrenome = “Prestige”

val nomeCompleto = “$nome $sobrenome”

| 05CodePrestige - Ensino de programação à distância

Console

Quebra de linha

Além de poder interpolar Strings, o Kotlin oferece a possibilidade de fazer as quebras de linhas dentro da declaração da própria String, facilitando bastante a formatação do código dentro dos editores.

> primeira linha segunda linha terceira linha

String texto = “primeira linha\n” + “segunda linha\n” + “terceira linha”;

val texto = “““ |primeira linha |segunda linha |terceira linha ”””.trimMargin()

| 06CodePrestige - Ensino de programação à distância

Console

Instance of e Casting

No Java, para verificar se um objeto é uma instância de uma classe, utilizamos o operador instanceOf. No Kotlin, este operador é o is.

Para o casting, o Kotlin não exige nenhum comando especial (smart casting), mas podemos fazer por garantia através do operador as.

if(objeto instanceOf Ebook) { // algum código}

if(objeto is Ebook) { // algum código}

Ebook ebook = (Ebook) objeto;

var ebook = objeto as Ebook;// ouvar ebook = objeto;

| 07CodePrestige - Ensino de programação à distância

Verificação entre valores

Para verificar se um número está em um determinado conjunto de valores, podemos utilizar o operador in. A sintaxe é bem simples:

if (valor >= 10 && valor <= 20) { // código}

if (valor in 10...20) { // código}

| 08CodePrestige - Ensino de programação à distância

Switch → case

Uma das novidades mais bacanas é a nova estrutura do switch → case. Repare no exemplo a seguir como o código consegue ficar enxuto e legível:

String res;switch(pontos) { case 10: case 9: res = “Excelente”; break; case 8: case 7: case 6: res= ”Bom”; break; case 5: case 4: res=”Ok”;break; case 3: case 2: case 1: res = “Ruim”; break; default: res = “Ruim”;}

var res = when(pontos) { 9, 10 -> “Excelente” in 6..8 -> “Bom” 4, 5 -> “Ok” in 1..3 -> “Ruim” else -> “Ruim”}

| 09CodePrestige - Ensino de programação à distância

Laços de IteraçãoO Kotlin oferece muitas opções ao convencional laço de repetição for controlado por uma variável de índice.

for (int i = 1; i <= 10 ; i++) { }

for (int i = 1; i < 10 ; i++) { }

for (int i = 10; i >= 0 ; i--) { }

for (int i = 1; i <= 10 ; i+=2) { }

for (int i = 10; i >= 0 ; i-=2) { }

for (String item : collection) { }

for (Map.Entry<String, String> entry: map.entrySet()) { }

for (i in 1..10) { }

for (i in 1 until 10) { }

for (i in 10 downTo 0) { }

for (i in 1..10 step 2) { }

for (i in 10 downTo 1 step 2) { }

for (item in collection) { }

for ((key, value) in map) { }

| 10CodePrestige - Ensino de programação à distância

Listas e MapasAgora conseguimos facilmente criar listas já populadas com valores.

E mapas também!

List<Integer> numeros = new ArrayList<Integer>();numeros.add(1);numeros.add(2);numeros.add(3);

var numeros = listOf(1,2,3)

Map<Integer,String> numeros = new HashMap<Integer, String> numeros = new HashMap<Integer, String>();

numeros.put(1, "um");numeros.put(2, "dois");numeros.put(3, "três");

var numeros= mapOf( 1 to "um", 2 to "dois", 3 to "três")

| 11CodePrestige - Ensino de programação à distância

data class Developer(var name: String, var age: Int)

Getters e SettersNo Kotlin, os getters e setters estão implícitos, ou seja, não é necessário descrevê-los:

class Ebook { private String titulo; private String autor;

public String getTitulo() { return this.titulo; }

public void setString(titulo){ this.titulo = titulo; }

// .... getters e setters}

| 12CodePrestige - Ensino de programação à distância

void doSomething() { // código}

void doSomething(int... numbers) { // logic here}

int getScore() { // código return score;}

fun doSomething() { // código}

fun doSomething(vararg numbers: Int) { // código}

fun getScore(): Int = score

FunçõesO Kotlin também dá suporte ao varargs do Java e nos permite escrever a função em uma linha:

| 13CodePrestige - Ensino de programação à distância

Referências

● Site oficial do Kotlin - https://kotlinlang.org/● Try Kotlin - https://try.kotlinlang.org/● JetBrains - https://www.jetbrains.com/● Google I/O 2017 - https://events.google.com/io/● Migrando do Java para o Kotlin - http://bit.ly/do-java-para-kotlin

| 14CodePrestige - Ensino de programação à distância