o que um desenvolvedor deve saber / endereço para criar aplicativos comerciais para Android? [fechadas]


21

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?


Por comercial, você quer dizer "qualidade comercial" ou "ganhar dinheiro" e, se mais tarde, quer conseguir um emprego na área ou escrevendo e vendendo aplicativos para si mesmo?
Jon Hopkins

@Jon. Não excluindo nenhuma dessas áreas. Mas (eu acho), existem muitos desenvolvedores por aí, como eu, que desejam estender sua organização atual efetivamente para dispositivos. Portanto, isso realmente não envolve "ganhar dinheiro" ou conseguir um novo emprego, simplesmente estendendo a empresa para executivos famintos por informações / guerreiros da estrada.
angryITguy

O que estou procurando é o conselho dos desenvolvedores seniores do Android que têm o "ooh! Você deve ler isso primeiro e depois para HTTP, ou para apelar para o design de interface e para desenhar 2D / 3D ...". Atualizei minha pergunta para refletir isso.
angryITguy

Respostas:


16

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".

  1. 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.

  2. 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:

  1. SQLite

  2. Noções gerais de streaming de vídeo e áudio, codecs. Para OpenCore (android.media).

  3. Desenho OpenGL.

  4. Serviços da Web baseados em REST, XML ou JSON.

  5. 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 ;-).

  1. ensine seu filho a desenhar e ler.

  2. cartões de memória para aprender línguas estrangeiras.

  3. Guia de TV UK-FreeSat + controle remoto.

  4. o seu aqui (receitas de cozinha ... etc).


Gostei da sua resposta, você pode fornecer alguns links que você usou para SQLLite, Webservices / REST / JSON e OpenGL?
angryITguy

12

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


oi, desculpe se isso é bobo, mas eu sou novo aqui! Por que isso seria rejeitado? A razão pela qual pergunto é que notei que ninguém mais respondeu a essa pergunta e, às vezes (acho que sim), você só precisa ir embora e elaborar a resposta sozinho. Isso é tudo o que eu estava sugerindo com alguns pontos de partida básicos, então o que há de errado nisso?

+1 para combater o negativo. Além disso, ele dá algumas boas ligações :)
Darren Young

@ Darren Young - obrigado, mas eu só estava interessado em saber por que ele pode ser rejeitado. Para que eu possa usar melhor o site, mas o +1 é sempre bem-vindo!

@Escavador. Obrigado por essa informação. Este é o material de nível de entrada que eu já consegui encontrar. Eu esperava que os desenvolvedores mais experientes entrassem / levassem essa resposta um pouco mais longe. 1
angryITguy

@giulio - obrigado, espero que você encontre as informações que está procurando.


3

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.


Graças foram olhando para titânio. Atualizei a pergunta para ajudar a respondere com o que estou procurando em uma resposta.
angryITguy

2

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).

  1. 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.

  2. 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.

  3. 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.


interessante .. você pode fornecer referências a sites que cobrem esses tópicos?
precisa saber é o seguinte

1

Treinei meus juniores nesta maneira seguinte.

Etapa 1: peço que eles vejam alguns aplicativos gratuitos no Android market e também as demos da API, pois também podem obter algumas idéias. ( Http://developer.android.com/resources/samples/ApiDemos/index.html ) e também http://www.androidpeople.com/

Por exemplo: o aplicativo IBNLive para Android Porque, quando veem esse aplicativo, eles podem ter uma idéia aproximada de que tudo isso é possível, por que não podemos garantir / usar, criar ou projetar controles ou funcionalidades como esta.

Etapa 2: depois de obter uma esperança, ao visualizar o aplicativo existente, eles podem pesquisar no Google e no Guia do desenvolvedor do Android, que atua como Bíblia para Android, e vieram a conhecer.

Por exemplo: Meus alunos juniores tiveram uma idéia, de exibição de lista expansível e notificações push, depois pesquisaram como podemos fazer essas coisas, depois encontram para a notificação por push, podemos usar o Cloud 2 Device Messaging, eles estudaram sobre isso e fizeram de uma maneira excelente.


0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.