Adoção de Kotlin e Swift no desenvolvimento mobile, chegou a hora de mudar?

Kotlin e Swift no desenvolvimento móvel nativo.

11-05-2023DXsparkKotlin, Swift

Kotlin e Swift são os novos players  (já não tão novos) do desenvolvimento móvel nativo. Kotlin para Android e Swift para desenvolvimento de iOS, respetivamente.

Já passou tempo suficiente desde que, ambas as linguagens se tornaram oficiais para o desenvolvimento de aplicações para o seu sistema operativo móvel (Kotlin em 2017 e Swift em 2014), e assim ter-se uma boa ideia de como é que estas linguagens foram recebidas pela comunidade de desenvolvimento em geral, e particularmente em Portugal.

A DXspark, sendo uma equipa que desenvolve aplicações nativas tanto para Android como iOS, maioritariamente para ambos os sistemas operativos em simultâneo, a escolha da linguagem de programação ao iniciar um projeto é primordial.

 

Uma breve introdução das tecnologias em questão.

Kotlin é uma linguagem de programação moderna, statically typed, orientada a objetos (e muito mais), desenvolvida pela Jetbrains (conhecidos por produzir ferramentas como: IntelliJ, PyCharm, Rider, Resharper) e revelada em 2011. Foi introduzida principalmente como uma alternativa ao JAVA para a JVM, estando presente tanto no desenvolvimento de servidores como de aplicações e sendo adotada pela Google como a linguagem oficial para o desenvolvimento do Android em 2019.

Swift é também uma linguagem de programação orientada a objetos e Statically typed. Desenvolvido pela própria Apple (dispensa apresentações), com a intenção principal de substituir o antigo e antiquado Objective-C. Lançada em 2014 e open-sourced em 2015, foi ainda expandida em 2019 quando a Apple anunciou a SwiftUI, uma nova forma declarativa de estruturar as UIs utilizando a linguagem Swift.

Numa análise rápida às linguagens e quando estas começaram a ganhar tração, pareceu-nos que a sua evolução seria semelhante à das suas "predecessoras". 

Swift, tal como Objective-c, beneficia de uma comunidade de programadores muito focada, onde a maioria da informação disponível será direcionada para o ambiente exato para o qual se está a desenvolver, iOS e o ecossistema Apple em geral.

Kotlin vê uma adoção mais generalizada em diferentes paradigmas, tal como o Java, mas tem uma base de conhecimento mais dispersa, uma vez que muito do desenvolvimento de Kotlin provavelmente não visa o Android.

Um dos melhores recursos para se ter uma visão geral das tendências atuais de desenvolvimento é o Stack Overflow Developer Survey. A edição deste ano diz-nos que, Kotlin é uma linguagem mais popular do que Swift, o que não constitui uma surpresa tendo em conta, a nossa análise anterior sobre a sua maior diversificação.

Kotlin também ostenta uma visão mais positiva junto dos programadores, mas essa vantagem tem vindo a diminuir ao longo dos anos.

De acordo com o relatório Developer Nation Q3 2021, Kotlin é utilizado por mais de 62% dos programadores Android, enquanto Swift é utilizado por mais de 39% dos programadores iOS, o que é uma clara indicação de que Kotlin tem tido uma adoção mais rápida no mercado móvel nativo.

Outra análise do StackOverflow apresenta um número curioso, pesquisando por "iOS" encontramos cerca de 189 703 perguntas relacionadas com Swift enquanto que a procura por "Android" nos apresenta muito menos perguntas relacionadas com Kotlin, cerca de 51 951 na altura da escrita. Considerando que nenhuma outra estatística parece confirmar esta realidade, vamos assumir então que este resultado se deve à forma como perguntas são categorizadas no StackOverflow. Podemos contudo concluir que, ambas as linguagens têm comunidades muito ativas.

 

Sendo assim, o que significam estes dados para a seleção da linguagem de desenvolvimento escolhida no início de um futuro Projeto Mobile?

Toda a comunicação oficial da Google e da Apple diz-nos que não só é seguro, como é fortemente encorajado, iniciar novos projetos utilizando Kotlin ou Swift.

O apoio da comunidade é enorme e está a crescer, ao mesmo tempo que a comunidade vai lentamente abandonando as linguagens mais antigas.

Ambas suportam uma interoperabilidade com as suas alternativas mais antigas. Se for realmente necessário, é possível reutilizar o código de uma base de códigos mais antiga.

Um detalhe onde o Swift e o Kotlin diferem, é que, o Swift não suporta versões muito antigas de iOS (em teoria iOS 7, na prática qualquer versão anterior ao iOS 13), no entanto, isto não é uma questão impeditiva uma vez que os utilizadores de iOS tendem a ter os seus dispositivos atualizados.

Tudo isto dá-nos uma visão global interessante, mas há alguns detalhes que só a experiência do dia a dia pode esclarecer. Passando pelo processo de entrevistar candidatos a posições de desenvolvimento mobile nos últimos anos, tornou-se bastante evidente que, a maioria dos candidatos com Kotlin ou Swift nos seus currículos acabam por ter perfis mais júniores. Também é possível notar que, cada vez menos candidatos júnior se interessam em aprender Java ou Objective-C, especialmente Objective-C.

Tendo tudo isto em consideração, a resposta resume-se realmente à disponibilidade de programadores e à estratégia da empresa.

Questões relacionadas com o nível de antiguidade requerido para o projeto, se existem os perfis com senioridade necessários para desenvolver as soluções nas linguagens correspondentes, se os programadores sénior Java/Objective-C da equipa podem apoiar os perfis mais juniores, entre outras questões. Importa notar que, a motivação dos programadores como o planeamento a longo prazo acabam por ser fatores fundamentais que favorecem a aprendizagem das linguagens mais recentes.

Como acontece com a maioria das questões, não há uma resposta única e simples. Se encontrar dificuldade em responder a estas perguntas e tomar esta decisão, ou se precisar de especialistas em desenvolvimento móvel para ajudar a dar vida ao seu projeto, contacte-nos aqui.

 

Patric Cunha, Tech Leader, DXspark