Concrete Logo
Hamburger button

Quero fazer apps iOS, posso usar somente Swift?

  • Blog
  • 18 de Março de 2015
Share

Uma pergunta que vem batendo na porta dos desenvolvedores do mundo iOS: posso largar de lado Objective-C e estudar somente Swift para fazer meu app? A resposta é simples: SIM!!!

No exato momento em que um programador, que agora podemos começar a chamar de “velha-guarda”, olhar essa minha afirmação eu serei castigado pelos milhões de pragas do Egito, mas é uma afirmação correta e consciente. No decorrer do post você vai entender.

Apesar de querer começar por outro ponto, tenho que primeiro responder à pergunta: Swift não é beta, e por isso tem muitos bugs?

Bom, isso provavelmente vem das pessoas que utilizaram o “beta beta” do Swift, quando ele foi apresentado. São dois tempos, aquele em que o Swift foi anunciado e, consequentemente, permitido àqueles que têm cadastro como desenvolvedor usarem, e o momento em que foi lançado o iOS 8, que permitiu o upload de programas inteiros escritos em Swift.

Na primeira versão, como tem que ser algo realmente beta, houve grandes mudanças. Tivemos bugs em tarefas simples, que retiraram, mudaram coisas e melhoraram, uma vez que era o momento propício para isso. Assim como há hoje no Node.js, que ainda não deixou de ser beta e já vi alterações que mudam a forma de fazer coisas simples e no Bootstrap, que já fez alterações que os deuses do código quase vieram à Terra. Entenda esse momento e faça um balanço.

O segundo momento é a “permissão” para realmente lançarmos app em Swift, e de lá para cá tivemos algumas muitas melhorias. Lembre-se, seu código de nenhuma maneira foi prejudicado ou alterado (com exceção da adição recente do optional para a propriedade as, que não vou explicar agora, mas isso só veio para fortalecer os pilares do Swift). Logicamente, como “todas” as outras linguagens que comentei fazem, a ideia é ter uma ferramenta “upgrade” para somente adicionar o que estava faltando. É uma linguagem forte, que vem evoluindo a partir do seu real lançamento, e vai continuar assim. Se você não concorda com isso melhor parar por aqui, mas espero que tenha lido o livro que a Apple fez sobre a linguagem. Lá eles falam exatamente isso!

Qualquer programador Objective-C já ouviu milhões de reclamações a respeito da linguagem e da maneira de se fazer as coisas. A única forma de a Apple ouvir isso e realmente fazer alguma coisa seria alterar toda a estrutura da linguagem. Me diz, se você é um desenvolvedor, isso é uma boa ideia?! Por que não construir uma linguagem moderna e de fácil visualização como a maioria das linguagens de script? E o melhor disso, que eu possa utilizar as duas ao mesmo tempo sem NENHUM problema?!

Vamos analisar rapidamente um exemplo da linguagem em Objective-C, algo básico como um método recebendo parâmetros e chamando esse método:

Uau, quanta coisa! Coloquei um NSLog() ali no meio só para podermos olhar o que foi impresso no terminal sem colocar breakpoint. Pontos relevantes a considerar ao fazermos em Swift: nome e tamanho do método, tipo de parâmetro, como inserir itens objetos em um dicionário, retorno do método e, claro, como eu chamo um método estando na mesma classe.

Agora como fazer a mesma tarefa em Swift:

Podemos perceber que visualmente a diferença é gritante. Pelo modo de imprimir no console usei somente “println(dict)” e pronto! Ele imprimiu, sem mais delongas. Para criar meu dicionário eu não fiz nenhuma forma mais breve do Swift para isso, é literalmente o que eu mostrei: criei um dicionário. E ainda tem maneiras mais simples, se você vir como adicionar itens novos, por exemplo, iria ao êxtase.

Agora vamos a uma coisa importante: eu coloquei como parâmetro de propósito um tipo primitivo Int nos dois exemplos, mas para você fazer isso em Objective-C o NSDictionary precisa aceitar e aceita somente objetos. Em Swift, Int é int mesmo e pronto, não importando ser primitivo ou objeto, que seria um NSInteger em Objective-C, por exemplo. Finalmente, viu como chamamos nosso método?!

Claro que esse foi um exemplo simples, mas esses são alguns pontos que eu considero relevantes durante o desenvolvimento:

  • Legibilidade
  • Verbosidade
  • Agilidade
  • Facilidade

Parece um pouco estranho, mas não é. Quer dizer que a partir de agora eu não gosto de Objective-C e adotei Swift?

Sim e não. Ainda adoro Objective-C, não pense que você quando começar a subir o nível de dificuldade irá conseguir resolver seus problemas somente sabendo Swift. As pessoas vêm há alguns anos resolvendo em Objective-C e você precisará ler, entender e saber interpretar. Mas além desse pequeno exemplo existem alguns muitos outros que nos dirão o quanto a linguagem é poderosa. Há um caminho que será sem sombra de dúvida adotado pela Apple e é Swift. Por isso, estou sim adotando Swift, assim como a comunidade, pegando projetos e problemas que tive em Objective-C e fazendo em Swift.

Na minha experiência foi tão simples quanto escrever em Objective-C, por quê? Porque eu estou fazendo o mesmo que em Objective-C mas com a “tradução” em Swift. Fiz de maneira mais simples, isso posso garantir.

Então é isso, pode sim começar seu aplicativo em Swift e ele não irá quebrar e não deixará de rodar. Pelo contrário, é garantido que irá permanecer por um longo, longo tempo. E use um de seus recursos mais impressionantes, o “Playground”, que posso mostrar aqui em outro post como ele é simples e poderoso.

Só para aqueles extremamente conservadores, posso pegar meu projeto em Objective-C e inserir classes em Swift e as classes “conversarão” normalmente uma com as outras. Pode até chamar métodos, usar delegates, e tudo o mais 😉

Concorda, discorda? Já começou a usar Swift e quer dar a sua opinião? Utilize os campos abaixo.

Nota do editor: Tivemos um Hangout interno aqui na Concrete Solutions na semana passada sobre o assunto e a conclusão é a de que, no ambiente corporativo, precisamos de uma transição. Alguns preferem esperar o lançamento do XCode 6.3 ou maior, com suporte oficial ao Swift 1.2, e outros preferem ver problemas específicos solucionados antes de usar a linguagem para projetos de clientes. Por isso, a nossa conclusão como empresa é a de que é preciso estudar a linguagem e ir usando aos poucos antes de adotá-la como oficial. Para quem quer aprender, o pessoal aqui indica este curso da Stanford sobre o assunto. Para uso pessoal e para “hobby”, porém, todos concordam que é uma ótima linguagem, pode e deve ser usada. Só enfrenta alguns problemas que todo algo muito novo tem. =)