Existem inúmeras linguagens de programação voltadas para o desenvolvimento em Android. Mas você já parou para pensar sobre qual delas escolher profissionalmente? Como resolver esta questão?
Hoje, venho lhes apresentar cinco ótimas opções de linguagens de programação que podem ser utilizadas para este fim.
Antes de tudo, vamos definir algumas regrinhas, para manter um pouco de coerência nas análises:
- Escolher uma linguagem de programação não é algo trivial: por mais que eu coloque boas opções por aqui, o seu “match” é o mais importante, pois é você quem lidará com os vícios e as virtudes de sua escolha.
- Desenvolvimento “Híbrido” e Desenvolvimento “Nativo”: em nosso escopo eu irei diferenciar as linguagens que usam um ou outro. Abordaremos brevemente esse conceito.
- Referências: como base para seleção das linguagens, irei utilizar o Índice da Tiobe junto ao ranking do Stackoverflow, já que essas bases tem bons métodos para a catalogação dos resultados e são de fácil compreensão.
- Aderência: as linguagens citadas são as mais “aderentes” ao mercado atual. Sem espaço para linguagens esotéricas que não geram resultados significantes na prática.
Feitas as ressalvas, vamos lá.
Como funciona o sistema Android
O Sistema operacional Android, criado pela Android Inc em 2003 e adquirida pela Google em 2005, usa um típico Kernel Linux.
Este Kernel conta com algumas modificações, principalmente quando se trata de gerenciamento agressivo de memória, consumo de energia e outras melhorias específicas para dispositivos móveis.
NDK
Todas as linguagens de programação para Android contam com, ao menos, um de dois kits de desenvolvimento. O primeiro é o NDK (Kit de Desenvolvimento Nativo).
Este pode ser manipulado utilizando C/C++ ou Java.
A Google só indica sua utilização para os seguintes casos:
- Conseguir mais desempenho de um dispositivo para atingir baixa latência ou executar apps de computação intensa, como jogos ou simulações físicas;
- Reutilizar as próprias bibliotecas C ou C++ ou as de outros desenvolvedores.
Como desenvolvedor de aplicativos, dificilmente você vai bater de frente com ela, mas é bom saber de sua existência.
SDK
O segundo kit de desenvolvimento é o Android SDK (Kit de Desenvolvimento de Software ou DevKit).
Trata-se de uma plataforma de mais alto nível, responsável pelo ecossistema de desenvolvimento da plataforma.
O Android SDK inclui projetos de exemplo com código fonte, ferramentas de desenvolvimento, emulador e outras bibliotecas que auxilia os desenvolvedores a utilizarem a plataforma.
Complementando o assunto, chegou a vez de falarmos sobre um tema delicado e motivo de muita polêmica entre desenvolvedores: desenvolvimento nativo e desenvolvimento híbrido.
Desenvolvimento Nativo
Em desenvolvimento nativo, é necessário um especialista na linguagem específica daquela plataforma que se deseja gerar um aplicativo, seja Android ou iOS.
Também possui acesso à todos os recursos do dispositivo, com bom desempenho (acelerômetro, giroscópio, geolocalização, etc), como são desenvolvidos especificamente para cada plataforma, explora muito bem toda a UI
Desenvolvimento Híbrido
Já em desenvolvimento híbrido, não é necessário um especialista em linguagem nativa, muitas vezes utiliza-se linguagens que não são específicas daquela plataforma, e com um único código fonte, pode-se gerar aplicativos para plataformas diferentes (Android e IOS).
Respeita-se a UI do sistema operacional do dispositivo, porém, utiliza um navegador embutido no aplicativo para demonstrar ao usuário.
Cada uma dessas modalidades tem seu espaço no mercado, basicamente esse pode ser considerado mais um indicador, busque também por vagas em mobile, só que levando em conta que produto te agradaria mais trabalhar.
Sem mais delongas, vamos aos nomes das principais linguagens de programação Android:
5 melhores linguagens de programação para Android
JAVA
Não poderíamos iniciar de outra forma, Java ainda é uma das linguagens mais importantes da plataforma Android.
Basicamente como já mencionado anteriormente, o SDK é baseado nesta linguagem, principalmente dada a sua grande base instalada de usuários e maturidade da plataforma.
É uma linguagem que utiliza o paradigma Orientado a Objetos, e mais recente, tem trabalhado forte em inserir elementos de programação Funcional em seu escopo.
Porém, deve-se lembrar que programar em Java é diferente de programar Java para Android.
O Java padrão é uma linguagem de uso geral enquanto o Java voltado a Android é uma versão mais “específica” onde o runtime é diferente, o sistema de GUI é completamente diferente, a localização é implementada de maneira diferente entre outras.
Podemos tratá-las como linguagens da mesma família, porém em muitos pontos são drasticamente diferentes.
Sobre a questão do desenvolvimento de software, o Java apela para o modelo de desenvolvimento nativo.
E por ser nativo, não necessita de um framework em específico, porém existem bibliotecas que ajudam muito na produtividade dos desenvolvedores.
Principais bibliotecas para Java
- Retorfit (Rest Apis);
- Rx Java (Fluxo assíncrono de dados);
- Picasso (Down/Up imagens e caching).
De relevante do Java, pode-se esperar, geralmente, melhor desempenho quando comparado com soluções híbridas, tipagem estática e documentação farta na internet.
Qualquer dúvida que você tiver, com certeza haverá alguém para responder sobre o assunto na comunidade. E a comunidade de Java é muito popular e ativa.
Boilerplate com Java
Um ponto de atenção importante e que você deve saber ao considerar estudar sobre a linguagem Java é o fato dela ainda sofre muito com a Boilerplate Code.
Caso não saiba, em programação, o termo Boilerplate Code se refere a seções de código que devem ser incluídas em muitos lugares com pouca ou nenhuma alteração.
É usado quando se refere a linguagens que são muito detalhadas, onde o desenvolvedor deve escrever muito código para fazer tarefas mínimas.
O Java vem a cada nova versão melhorando, porém ainda há muito trabalho a ser feito, e devido a sua estrutura, ela pode até parecer ser muito “burocrática” em muitos aspectos quando comparada com outras linguagens.
Confira os 10 melhores cursos de Java do mercado
Pontos positivos do Java
- Muitos tutoriais e dicas na internet sobre a mais variada gama de assuntos da linguagem;
- Uma das linguagens mais mais usadas para fazer aplicativos Android;
- Suporta Android Studio;
- É versátil.
Pontos negativos do Java
- Curva de aprendizado é bastante íngreme;
- Sobrecarga de conteúdo pode mais atrapalhar que ajudar se você não sabe o que procura;
- Não é a linguagem de computador mais amistosa para leitura;
- Atualizações frequentes dificultando o processo das atualizações.
Encontre vagas para desenvolvedor em Java Android presencial ou remoto. Aplique agora!
C#
C# é bastante semelhante ao Java e por isso é indicado para o desenvolvimento de aplicativos Android.
Outro motivo para aprender C# se dá pelo fato de que hoje é a uma das mais importantes linguagens do mercado entreprise.
É também uma linguagem Orientada a Objetos, mas com uma sintaxe mais simples do que Java, o que torna a codificação aparentemente mais fácil.
Vários recursos de C# auxiliam na construção de aplicativos robustos e duráveis:
- A coleta de lixo recupera automaticamente a memória ocupada por objetos não utilizados.
- A manipulação de exceção fornece uma abordagem estruturada e extensível para detecção e recuperação de erros.
- E o design de tipo seguro torna impossível a leitura de variáveis não inicializadas, para indexar matrizes além de seus limites ou para executar conversões de tipo desmarcadas.
A simplicidade do C# é tamanha – em comparação com o Java – que qualquer desenvolvedor iniciante no aprendizado de códigos pode começar e avançar na linguagem sem muitas dificuldades.
O C# é bastante recomendado se você pretende atuar na área de jogos em Android, principalmente os jogos em 3D combinando a linguagem ao Unity.
Pontos positivos do C#
- Simples de programar;
- Fácil de ler e entender;
- Orientado a objetos;
- Similar ao C++;
- Sem problemas de memória graças à coleta de lixo;
- Funciona muito bem com a engine de games Unity.
Pontos negativos do C#
- C# e Unity são excelentes para jogos 3D, mas não tão bons para desenvolver aplicativos padrão juntos;
- Não está de acordo com a linguagem do Material Design do Google;
- Existe menos liquidez no mercado para desenvolvedores profissionais de Android em C#.
Vagas para programadores em C# nas empresas mais desejadas. Confira!
LUA (Corona SDK)
Esta é uma das opções mais simples para quem quer desenvolver aplicações para Android.
Estamos falando da linguagem de scripting Lua, poderosa e fácil de aprender, com Corona SDK.
Caso não conheça, Corona é um framework que lhe deixa criar jogos e aplicativos para mobile, desktop, TVs e tudo mais que rode Android.
Existem alguns benefícios em usar o Corona SDK para desenvolver aplicativos Android. Os devs por trás da Corona dizem que seu produto permite que os desenvolvedores trabalhem em aplicativos móveis com uma velocidade dez vezes maior.
Ele tem um simulador integrado, o que significa que os desenvolvedores podem ver como o aplicativo ou jogo está progredindo conforme as linhas de código são desenvolvidas.
O Corona SDK também possui recursos para conteúdo gráfico e interatividade em jogos e aplicativos Android. Também inclui uma grande variedade de opções de design.
Pontos positivos de usar LUA com Corona SDK
- Simples, fácil de aprender e poderoso;
- É uma linguagem de programação muito rápida de usar;
- Suporte para todas as bibliotecas nativas, podendo publicar em várias plataformas;
- Emulador que permite ver sem compilar o código;
Pontos negativos de usar LUA com Corona SDK
- Precisa de um editor para o código;
- É limitado em comparação com outras linguagens;
- Exige pagamento para a utilização de alguns recursos.
Kotlin
Kotlin é uma linguagem de programação reconhecida pela Google que pode ser usada como alternativa ao Java para desenvolvimento de aplicativos Android. E geralmente é isso mesmo que ocorre.
Ele pode interoperar com Java e é executado na Java Virtual Machine. Digamos que se você usar o iIntelliJ, a interoperabilidade do IDE é perfeita, o código pode ser:
- Refatorado;
- Pesquisado;
- Navegado
- Preenchido automaticamente.
Tudo isso como se o código Kotlin fosse Java e vice-versa. Há suporte completo para depuração, teste de unidade, criação de perfil e assim por diante.
A grande diferença desta linguagem é que ela remove alguns recursos desnecessários do Java. Também elimina a necessidade de terminar todas as linhas com um ponto e vírgula.
Resumindo, entre as linguagens de programação Android, Kotlin pode ser considerada como a mais agradável para iniciantes e também pode ser usado como um “ponto de entrada” para o desenvolvimento de aplicativos em Android.
Pontos positivos do Kotlin
- Suporte a Java Virtual Machine;
- Não faz com que o tamanho dos arquivos aumente;
- Não causa desaceleração;
- É simplificado;
- Ideal para começar com Android;
- Suporta Android Studio.
Pontos negativos do Kotlin
- Embora seja fácil de aprender, não é tão fácil quanto outras linguagens citadas;
- O suporte da comunidade é bem menor, por não ser tão popular.
Vagas para programadores em Kotlin. Demonstre seu interesse agora!
JavaScript + CSS + HTML (PhoneGap)
Os aplicativos Android também podem ser criados com HTML, CSS e JavaScript usando Adobe PhoneGap no Apache Cordova.
O framework PhoneGap permite criar aplicativos híbridos que são mostrados por meio do “WebView”, mas empacotados como um aplicativo.
A estrutura do PhoneGap dificilmente requer muita programação, exceto para JavaScript.
O PhoneGap, basicamente como o nome sugere, apenas preenche uma lacuna, dando aos desenvolvedores de aplicativos Android acesso a recursos do telefone, como a câmera ou o acelerômetro.
Pontos positivos do JavaScript + CSS + HTML com PhoneGap
- Permite aos designers, front-ends ou qualquer pessoa que crie sites interativos usando HTML, JavaScript e CSS usar recursos mais simples do Android;
- Pode ‘quebrar um galho em situações’ bem específicas.
Pontos negativos do JavaScript + CSS + HTML com PhoneGap
- Para tarefas básicas, ele dará conta, mas não para a maior parte das funções;
- Esta opção não está presente no ‘cinto de utilidades’ do desenvolvedor Android profissional.
*Update: Salustiano Muniz, leitor aqui do blog, comentou que o PhoneGap foi descontinuado em agosto de 2020. Confira o comunicado oficial aqui.
E para você, quais são as linguagens de programação Android que fazem a sua cabeça? Comente!