Algumas Extensions úteis em Swift

Jonatan Medina
3 min readAug 3, 2021

--

Tenha um código mais limpo e reaproveite código em seu projeto

As Extensions adicionam nova funcionalidade a uma classe, estrutura, enumeração ou tipo de protocolo existente. Isso inclui a capacidade de estender os tipos para os quais você não tem acesso ao código-fonte original (conhecido como modelagem retroativa ).

As Extensions em Swift podem:

  • Adicionar propriedades de instância computadas e propriedades de tipo computado
  • Definir métodos de instância e métodos de tipo
  • Fornece novos construtores
  • Definir subscritos
  • Defina e use novos tipos aninhados
  • Faça um tipo existente em conformidade com um protocolo

Inclusive, você pode até mesmo estender um protocolo para fornecer implementações de seus requisitos ou adicionar funcionalidades adicionais das quais os tipos em conformidade podem tirar proveito.

Vou exemplificar usando Swift, porém você pode converter para Objective-C ou usar diretamente sem a necessidade de conversão, fique a vontade.

Double.toString()

Quando precisamos converter valores double para strings, podemos utilizar essa Extension, que na maioria das vezes irá te atender.

Int.toString()

Convertendo valores Int para String

Int.toDouble() / Double.toInt()

Quando se está trabalhando com opcionais, esses métodos podem ser úteis. Vale ressaltar que se você estiver usando um não opcional, use Double(valor), onde valor é uma variável inteira não opcional, porém ser for opcional você não conseguirá fazer isso.

String.toDate() / Date.toString()

A forma padrão de conversão requer três linhas de código, porém para reaproveitamento de código, podemos criar uma Extension e a partir dai precisaremos de apenas uma linha para isso.

String.asCoordinates()

Ao obtermos dois campos separados ou um campo com valores separados por vírgula pode utilizar essa extensions para fazer a conversão em CLLocationCoordinate2.

UIDevice.vibrate()

Usar a vibração como uma ferramenta de alerta ou notificação no seu app é algo bacana e quando bem explorado trás uma experiência bacana para o usuário. A vibração no iOS é controlado exclusivamente pela classe "AudioToolbox" e convenhamos, incluir essa classe em todas as UIViewControllers que irão utilizar essa funcionalidade é irritante, para evitarmos isso, podemos criar uma Extension, simplificando essa funcionalidade em apenas uma linha.

String.containsOnlyDigits

Ás vezes precisamos validar se uma determinada string possui apenas números, por exemplo, ao recebermos dados de uma API ou mesmo validar a informação em um input (vale frisar, existem maneiras mais indicadas para realizar validações em input`s).

String.isAlphanumeric

Como a extensão anterior, esta verifica o conteúdo de uma String. Ela retorna verdadeiro se a String não estiver vazia e contiver apenas caracteres alfanuméricos. Esta extensão pode ser útil para confirmar que as senhas possuem caracteres não alfanuméricos.

String.asURL

iOS e macOS usam URL para trabalhar com links, é mais flexível, permite obter componentes e trabalha com diferentes tipos de URL`s. Sabemos é usualmente comum, ao obtermos de uma API, essa propriedade como String. É muito fácil realizar a conversão entre String para URL, porém podemos deixar nosso código mais limpo e bonito usando uma Extension.

String Subscripts

Você usa Subscripts para definir e recuperar valores por índice sem a necessidade de métodos separados para configuração e recuperação. Esta Extension permite usar Int para calcular os índices e deslocamentos.

Conclusão

As Extensions aumentam a capacidade de composição do seu código, permitem adicionar funcionalidade às classes que você não pode alterar e ajudam a organizar melhor o código. São absolutamente fantásticas!

Leitura adicional

--

--