Ferramentas

Kodebits: Resumo de Junho | Kodeco

O mês de junho trouxe 17 desafios Kodebits para programadores em Swift, Kotlin e Dart, abrangendo desde conceitos básicos até avançados em cada linguagem. Os desafios em Swift focaram em semântica de valor e correspondência de padrões; Kotlin explorou características de DSLs; e Dart destacou fluxo de controle moderno e coleções.

Compartilhar
Kodebits: June Roundup | Kodeco

Três meses após o início, os Kodebits encontraram seu ritmo: pequenos desafios de codificação autossuficientes que você pode trabalhar entre reuniões, postados em nossos canais sociais conforme surgem e reunidos no arquivo Kodebits posteriormente.

Junho trouxe 17 deles em iOS/Swift, Android/Kotlin e Flutter/Dart, e neste mês eles começaram a parecer menos como dicas isoladas e mais como uma viagem conectada para cada linguagem. Swift mergulhou no semântica de valor e correspondência de padrões, Kotlin trabalhou nas características por trás dos seus DSLs, e Dart se baseou em fluxo de controle moderno e coleções. Tudo está reunido abaixo, dividido por plataforma e ordenado do básico ao avançado, com uma nota sobre o que cada um é bom para — e se você está apenas agora se atualizando, os primeiros e segundos meses estão resumidos da mesma forma.

Cada bit é rotulado por dificuldade: Iniciante para um aquecimento fácil, Intermediário para algo para mastigar e Avançado quando estamos entrando na parte mais profunda.

Cada página Kodebit oferece o problema para você pensar primeiro, então uma solução e explicação — além de links para o catálogo mais amplo do Kodeco quando um tópico te chama a atenção e você quer ir mais fundo.

iOS & Swift

Oito Kodebits em junho, com uma linha clara passando por eles: semântica de valor e correspondência de padrões. Structs, tuplas e switch aparecem todos juntos, o que cobre muito do que faz Swift parecer diferente de um idioma pesado em referências como Java ou C#. Também há um par sobre o sistema de tipos — protocolos e casting de tipo — para quando você está pronto para ir além dos fundamentos.

Iniciante

  • Dia 34: Interpolação de String — Insira valores diretamente dentro de uma string literal com (...). Um dos primeiros conceitos que você aprende em Swift e um dos últimos que para de apreciar, já que lê muito mais limpo do que a concatenação.
  • Dia 37: Destruturação de Tupla — Desempacote os elementos de uma tupla em constantes nomeadas em uma única linha. A maneira elegante de lidar com uma função que naturalmente retorna mais de um valor sem recorrer a um full struct.
  • Dia 39: Cópia de Valor do Struct — Os structs são tipos de valor, então atribuir um a uma nova variável faz uma cópia. Mutar a cópia e o original permanece inalterado. É o lado Swift da mesma moeda que a data class Kotlin de abril copy(), e a base para raciocinar sobre estado em SwiftUI.
  • Dia 49: Soma Variádica — Aceite qualquer número de argumentos com ... e trabalhe com eles como um array dentro da função. A mecânica por trás das APIs familiares como print.

Intermediário

  • Dia 40: Match de Padrão em Tupla — Faça match na forma de uma tupla dentro de um switch, testando e vinculando elementos em um único movimento. Continua onde o enum associado de maio parou e mostra até onde a correspondência de padrões do Swift realmente chega.
  • Dia 44: Conformidade com Protocolo — Um olhar exato sobre o que um tipo precisa fornecer para satisfazer um protocolo. Traz de volta as extensões do protocolo de abril: aqui você atende às exigências, lá você fornece valores padrão para elas.
  • Dia 45: Inicialização de Propriedade Lazy — Uma propriedade lazy adia seu trabalho até a primeira vez que é lida, então armazena o resultado. Vale a pena ler logo após a propriedade computada de maio: uma recompõe em cada acesso, esta compõe uma vez e lembra.
  • Dia 47: Verificação de Casting de Tipo — Use is para testar um tipo e as? para downcast de forma segura. Essencial sempre que você está trabalhando com valores cujo tipo concreto não é conhecido até a execução.

Android & Kotlin

Sessão Kodebits em junho, e juntas elas leem como um tour de por que o Kotlin é tão bom para construir APIs expressivas do tipo DSL. Funções infixadas, sobrecarga de operadores, lambdas com receivers e delegação são exatamente as características por trás das bibliotecas como Compose e o Gradle Kotlin DSL. Se você já se perguntou como essas bibliotecas leem da maneira que fazem, este é o mês.

Iniciante

  • Dia 33: Desestruturação de Classe de Dados — Separe uma classe de dados em seus valores componentes em uma única atribuição. O companheiro natural da função copy() de abril — juntos, você tem a maior parte do que torna as classes de dados valiosas.

Intermediário

  • Dia 35: Objeto Companheiro — O Kotlin não tem a palavra-chave static; um objeto companheiro é onde membros de nível de classe e métodos fábrica vivem. A casa idiomática para coisas que você buscaria estáticas em outro lugar.
  • Dia 38: Função Infix — Marque uma função infix e chame-a sem pontos ou parênteses, então 1 to "one" lê como sintaxe incorporada. Um pequeno recurso que faz muito do trabalho pesado nas APIs mais legíveis do Kotlin.
  • Dia 42: Sobreposição de Operadores — Dê significado a operadores como + e [] para seus próprios tipos implementando funções com nomes especiais. Poderoso para tipos do domínio como vetores ou dinheiro, e fácil de exagerar — o pedaço é um bom lugar para sentir a linha.

Avançado

  • Dia 36: Lambda com Receiver — Uma lambda onde this se refere a um objeto receptor fornecido em vez do escopo envolvente. Esta é a única característica que torna possíveis DSLs Kotlin como Compose e buildString, então vale a pena o esforço.
  • Dia 48: Delegação por Palavra-Chave — Use by para entregar a implementação de interface ou acesso à propriedade a outro objeto, sem métodos de reencaminhamento obrigatórios. Composição sobre herança, assentada no idioma.

Flutter & Dart

Três Kodebits em junho, um pouco mais avançados do que o habitual. Nós olhamos para as expressões switch do Dart (uma abordagem genuinamente moderna de fluxo de controle), uma cadeia de filtragem e agregação de coleção, e métodos de extensão — a contraparte Dart das funções de extensão Kotlin que cobrimos em maio.

Intermediário

  • Dia 43: Where Then Fold — Encadeie where para filtrar uma coleção e fold para reduzi-la a um único valor. A expressão Dart de um padrão que você já viu em todas as três linguagens: descreva a transformação, não roliar manualmente o loop.
  • Dia 46: Método de Extensão — Adicione métodos a tipos existentes de fora da classe. Se o bit de função de extensão Kotlin em maio funcionou, esta é a mesma ideia no Dart — útil para ver quais conceitos realmente viajam entre linguagens.

Avançado

  • Dia 41: Expressão Switch — O switch do Dart pode ser usado como uma expressão que retorna um valor, completa com correspondência de padrões. Um grande passo em relação ao switch estilo C e uma das melhores adições nas versões recentes do Dart.

Fonte original

Conteúdo traduzido e adaptado pela redação do Notícias Mobile. Confira também a matéria na fonte original.

Leia a matéria completa