8 razões pelas quais o Swift é mais fácil de aprender e usar do que o Objective-C

Ao longo dos anos, literalmente ensinei dezenas de milhares de pessoas a escrever código em Objective-C por meio de aulas de treinamento, conferências, fóruns online e minha série de livros. Com base na montanha de feedback que recebi, posso dizer alguns pontos-chave que tornam o Swift muito mais fácil de aprender do que o Objective-C.

Se Objective-C é a única linguagem que você já codificou, eu tenho uma coisa a dizer sobre mudar para Swift. Bem-vindo ao século 21.



Codifiquei por muitos anos em outras linguagens mais modernas, como Java e C#, então quando adicionei Objective-C ao meu repertório em 2008, havia muitas coisas que eu perdi das outras linguagens em que trabalho. Estou recuperando a maior parte disso com o Swift.

1. As classes são definidas em um único arquivo

Em Objective-C, as classes são definidas em dois arquivos – um arquivo de cabeçalho (.h) e um arquivo de implementação (.m). Esta é uma verdadeira dor no pescoço, e uma das maiores reclamações que ouço de desenvolvedores migrando para Objective-C.

No Swift, suas classes são definidas em um único arquivo .swift. Obrigado Maçã.

2. Não há mais colchetes para mensagens

Os colchetes usados ​​para passar mensagens para um objeto são a segunda maior reclamação que recebi sobre Objective-C. É diferente de outras linguagens mais modernas e realmente lança uma curva para pessoas novas no Objective-C.

No Swift, você usa a notação de ponto para chamar um método em um objeto, semelhante à notação que você usa ao acessar uma propriedade. Por exemplo:

  addToTotal

Este código chama o objeto da calculadora addToTotal método, passando 14 como o valor a ser adicionado.

3. O Fim do Asterisco

Não posso dizer quantas vezes tive que responder à pergunta de por que algumas variáveis ​​em Objective-C têm asteriscos associados a elas e outras não (variáveis ​​que mantêm um ponteiro para um objeto têm um asterisco).

Em Swift, uma variável pode conter um ponteiro para um endereço na memória (embora não seja um ponteiro direto), mas você nunca precisa usar um asterisco neste contexto. Estou chorando abertamente.

4. Não há mais mensagens para objetos nulos

Em Objective-C, você pode declarar uma variável projetada para conter uma referência a um objeto. No entanto, se você esquecer de criar uma instância de um objeto e armazená-lo nessa variável, não haverá nenhum erro de compilador ou de tempo de execução gerado porque o Objective-C permite enviar mensagens para objetos nulos. Por exemplo:

  memóriaLimpar

Eu ouvi todos os argumentos sobre por que esse recurso do Objective-C é ótimo, mas de uma perspectiva prática, para a maioria do código que você escreve, isso é uma coisa ruim porque quando você faz isso involuntariamente, isso faz com que algo não funciona corretamente em seu aplicativo e você não sabe por quê.

Digite Swift.

O Swift não permite que você crie propriedades ou variáveis ​​que não sejam inicializadas. Se você esquecer de inicializar uma variável, receberá um erro do compilador e saberá imediatamente o que fez de errado, em vez de gastar vários minutos percorrendo o depurador.

Quanto mais erros forem detectados em tempo de compilação, mais fácil será o desenvolvimento do seu aplicativo. Período.

5. Importar ficou mais fácil

Importar arquivos de cabeçalho em Objective-C é complicado. Se você quiser trabalhar com uma classe de dentro de outro arquivo de classe, você deve importar primeiro seu arquivo de cabeçalho.

No Swift, todas as classes que você criou em um único projeto podem ser acessadas automaticamente sem usar um importar declaração.

6. Alloc e Init não são mais!

Em Objective-C você cria um objeto de uma classe como esta:

  alocar inicialização

No Swift, você cria um objeto de uma classe como esta:

  instanciar rápido

Muito facil! Vou planejar um dia extra de férias neste verão para o tempo extra que economizarei não digitando alocar e aquecer .

7. Chega de foguetes explodindo!

Há alguns anos, uma das agências espaciais estava lançando um foguete que se autodestruiu pouco depois da decolagem. Eles descobriram que o problema foi causado por um programador que deixou um parar fora de um trocar declaração. Ai.

Em Objective-C, se você acidentalmente deixar de fora um parar em um trocar instrução, o controle flui automaticamente para a próxima caso no trocar . Isso raramente é um comportamento desejado e pode causar estragos em seu aplicativo.

No Swift, você não precisa adicionar um parar declaração a cada caso em um trocar porque depois de um caso executa, o trocar é automaticamente encerrado. O que também é bom sobre o Swift trocar instruções é que você pode testar praticamente qualquer coisa, incluindo strings! Aqui está um exemplo da documentação da Apple:

  instrução switch

Não parar instruções, portanto, não há bugs causados ​​por deixá-los de fora!

8. Manipulação de String mais fácil

Em Swift, trabalhar com strings é muito mais fácil e óbvio para programadores novos na linguagem:

  • Strings não precisam de um @ na frente delas como em Objective-C.
  • Você pode combinar strings usando o operador +.
  • Você pode verificar se duas strings contêm os mesmos caracteres usando o operador ==

Esses comportamentos são todos esperados e tornam a manipulação e comparação de strings muito mais fáceis.

Conclusão

Esta lista é realmente apenas um pequeno subconjunto das coisas mais óbvias para amar no Swift. Em posts futuros entrarei em mais detalhes e mostrarei a sintaxe básica e mecânica do Swift.