O que eu tenho que aprender para fazer um aplicativo Android?
Apenas o básico de qualquer linguagem de programação é suficiente para você começar.
O requisito mais básico não é qualquer linguagem, ou framework ou um conceito abstrato. A coisa mais importante que você precisa ter é curiosidade.
Even embora o Android seja open-source e já exista há alguns anos, há tantas coisas que não foram documentadas corretamente até agora. No site oficial dos desenvolvedores do Android, você encontrará apenas alguns tutoriais curtos para os padrões e conceitos mais usados nos aplicativos Android.
Se você é o tipo de pessoa que não está satisfeita apenas copiando código ou implementando cegamente algo porque alguém lhe disse isso; se você é o tipo de pessoa que gosta de saber o que está acontecendo sob a superfície, e está disposto a dedicar tempo suficiente (e o risco de travar o seu aplicativo :P), então você vai achar muito fácil aprender o desenvolvimento de aplicativos no Android.
Comecei a aprender com o Udacity, e eu recomendo fortemente que você comece a partir daí. Ele não precisa de pré-requisitos em qualquer linguagem de codificação, e leva você passo a passo para construir o seu primeiro aplicativo funcional para Android. O ritmo vai lentamente tomando conta de lá, e os cursos cobrem a maioria dos conceitos centrais no desenvolvimento do Android.
Não é necessário ir para o curso de Nanodegree, todos os cursos no Nanodegree também estão disponíveis gratuitamente.
Um outro conjunto de habilidades importantes que você precisa é a arte de "Googling". Você vai encontrar muitos bugs e travamentos quando começar a experimentar, e você vai precisar de paciência e domínio no "google-fu" para corrigi-lo. StackOverFlow é a minha primeira escolha, mas aprenda também a ler os blogs. Além disso, às vezes os comentários são mais úteis que as respostas.
De um ponto de vista completamente técnico, você precisará conhecer JAVA/KOTLIN de nível intermediário, APIs RESTful e como elas são utilizadas em JAVA/KOTLIN, conceitos OOP incluindo forte familiaridade com herança, polimorfismo, overriding e abstração, e por último o MySQL, ou pelo menos qualquer linguagem de gerenciamento de banco de dados.
TL;DR, você precisará de muita curiosidade, paciência, domínio em Googling. Do ponto de vista técnico, conceitos OOP com Java, SQL, APIs RESTful.
Artigos semelhantes
- O que devo usar, "eu tenho", "eu tenho", ou "eu tenho"?
- Tenho sido um utilizador de Windows toda a minha vida, e tenho medo de fazer a mudança para MacOS. Vale a pena?
- Eu não tenho talento na arte. Eu quero fazer jogos Android muito básicos sozinho. O que devo fazer para o design do jogo?
- Qual é a diferença entre "tenho uma reunião para participar" e "tenho uma reunião para participar"?