O desenvolvimento móvel e Android é uma área interessante de desenvolvimento. Como é uma nova disciplina, o que seria de esperar de um desenvolvedor Android criar aplicativos comercialmente robustos em termos de habilidades? O problema que eu e, eu acho, muitos outros "entusiastas" da tecnologia, gostariam de saber são as áreas de habilidades técnicas e a progressão para os tópicos avançados necessários que vão além dos princípios básicos fornecidos pelo Google. Há muita informação que é bastante útil, mas não está organizada em categorias de disciplina ou ordem.
Atualização : veja desta maneira. Se você é um desenvolvedor sênior e precisa de um colega para atualizar o Android em um projeto específico (a seu critério para esta pergunta), o que você faria?
Respostas:
Existem várias facetas para esta pergunta:
Do ponto de vista técnico , respondendo ao "Como?"
Existem várias tecnologias para dominar, além de várias "boas de ter".
O número um é Java . O Android SDK é baseado na suposição de que todos os aplicativos são gravados em Java . Embora haja indiscutivelmente algumas soluções emergentes de terceiros a serem desenvolvidas no .net (veja o monodroid ), afinal, o sistema operacional subjacente é o Linux.
O segundo é o eclipse . Embora existam vários SDKs de terceiros, alguns que não o ADT, o Intellij ou o Netbeans , os esforços do Google estão oficialmente focados apenas no eclipse por enquanto.
Edit: a partir de janeiro de 2016, o Google está oficialmente suportando o Android Studio como seu IDE oficial.
Na arquitetura android, existem vários blocos de construção para os quais um pouco de exposição sempre será útil:
SQLite
Noções gerais de streaming de vídeo e áudio, codecs. Para OpenCore (android.media).
Desenho OpenGL.
Serviços da Web baseados em REST, XML ou JSON.
Noções referentes à arquitetura ARM para desenvolvimento de Código Nativo.
Além disso, lendo na minha tigela de cristal, os desenvolvedores do Android também devem conhecer seu Linux e ter proficiência em idiomas nativos para o dia em que o Google abandonar o Java e substituí-lo por go ou por outras coisas que eles possam estar produzindo em algum lugar (consulte a iniciativa " Cliente nativo ") no domínio do navegador). O Google já lançou um NDK (Native Development Kit) para ce C ++ usando o mecanismo JNI padrão para complementar o Dalvik.
Do ponto de vista comercial , respondendo ao "O quê?".
Os desenvolvedores do Android devem ser os próprios usuários do Android, é claro. No entanto, não apenas usuários comuns de telefones celulares, mas também usuários de tablets. Na verdade, eles deveriam adotar uma atitude Jobsiana - sempre se perguntando "Como eu poderia fazer isso melhor com meu telefone, meu tablet ou qualquer aparelho eletrônico de consumo ainda não comercializado?".
Existem muitas aplicações para Android que ainda não têm um líder de mercado, não necessariamente relacionadas à mobilidade (ou ao aplicativo chato de sempre "onde fica a pizza mais próxima?"). Aqui estão alguns que eu não consigo tirar da cabeça pessoalmente (até que eu tenha mais tempo ;-).
ensine seu filho a desenhar e ler.
cartões de memória para aprender línguas estrangeiras.
Guia de TV UK-FreeSat + controle remoto.
o seu aqui (receitas de cozinha ... etc).
fonte
Para ser sincero, acho que você precisa apenas do Google e fazer alguma pesquisa.
Aqui estão alguns links interessantes que encontrei, que podem oferecer um bom ponto de partida.
Existem muitos outros na documentação do Google que você discutiu.
Espero que isso ajude você a encontrar os detalhes que deseja!
Boa sorte
fonte
Guia oficial do desenvolvedor do Google
Eu daria uma olhada no guia do desenvolvedor do Google para Android, que inclui práticas recomendadas e diretrizes para tornar seu aplicativo consistente com a aparência de um aplicativo Android.
fonte
Duas coisas que eu olharia. Um deles são as diretrizes de design da Apple para a criação de aplicativos. Eu sei que a pergunta era sobre aplicativos Android, mas os princípios gerais se aplicam e fazem você pensar de uma maneira de design de 'App', que é realmente bem diferente da perspectiva de design de aplicativos de desktop.
Também daria uma olhada no Appcelerator Titanium, que é uma ferramenta que permite portar códigos de um ambiente do tipo javascript / web dev para códigos nativos no iPhone, iPad e Android. Eu achei uma maneira útil de criar aplicativos pequenos rapidamente. Você pode fazer o download do exemplo 'Pia da cozinha', que, como o nome indica, demonstra todas as funcionalidades nativas disponíveis. Eu definitivamente recomendo isso como um lugar para começar.
fonte
Costumo encontrar três coisas que faltam em novos desenvolvedores de dispositivos móveis, depois de habilidades básicas com a (s) linguagem (s) de programação necessária (s) e conhecimento das ferramentas e bibliotecas do SDK (que não são ciência do foguete ... jovens de 14 anos desenvolveram aplicativos).
Desenvolvimento para ambientes restritos. CPU, memória, pixels de exibição e energia da bateria disponível são muito mais limitantes em dispositivos móveis. Alguns programadores nunca foram expostos a programação rápida e minúscula. Você simplesmente não consegue pensar da mesma maneira para resolver problemas, quando possui um rack com 5kW de energia e refrigeração disponível, etc. Aprenda novamente alguns dos truques que os veteranos usavam para codificar ótimos jogos em uma CPU de 1MHz com 48kB de memória, ou algo assim. Talvez pratique a codificação em um Arduino ou outro pequeno controlador.
Familiaridade da interface do usuário. Um usuário normalmente interage com seu dispositivo móvel de maneiras diferentes dos sistemas de desktop. Leve um por aí. Talvez vários modelos. Usa-os. Use muitos aplicativos e críticas (não recursos, mas) como são fáceis de usar, com pouca iluminação, veículos em movimento, etc. Leia e releia todos os vários HIGs móveis. Saiba o que os usuários gostam e não gostam na plataforma específica da interface do usuário para a qual você está codificando.
Peculiaridade familiar. Algumas das ferramentas e bibliotecas são novas e têm "peculiaridades". Leia as placas do desenvolvedor em busca de problemas e soluções, para que você não fique preso cometendo o mesmo erro que milhões de outros desenvolvedores encontraram. Eu vejo muitas perguntas sobre o stackoverflow sobre como fazer coisas que o hardware, as APIs ou os modelos de distribuição de aplicativos nem mesmo permitem. Empresas inteiras perderam seu tempo tentando fazer o impossível para a iPhone App Store.
fonte
Treinei meus juniores nesta maneira seguinte.
fonte
Muito mais importante do que os detalhes técnicos (que podem ser aprendidos e não devem ser muito difíceis) é saber o que fazer, para quem e se você poderá vender o suficiente. Essa última parte ainda é um problema no Android, em oposição ao iOS.
Portanto, antes de começar a aprender o desenvolvimento do Android, forme uma imagem clara do que você deseja alcançar, como alcançá-lo e se isso é realmente sustentável.
fonte