Por onde começar a estudar Programação de Aplicativos Android

Por onde começar a estudar Programação de Aplicativos Android

Versão em vídeo: https://www.youtube.com/watch?v=0ee7EB641wI

Qual o melhor caminho de estudos pra quem quer trabalhar com desenvolvimento de aplicativos

Sendo mais especifico ainda: aplicativos para Android

Utilizando o Framework Nativo do Google

Enfim: qual a base uma pessoa precisa ter para se tornar uma desenvolvedora de aplicativos

  1. Arquitetura do Android
    1. Provavelmente tu vai encontrar um ótimo video no Youtube sobre Arquitetura do Android
      1. e se tu tem duvidas de qual video assistir: vai no indiano que não tem erro
      2. os caras manjam muito dessa didática técnica
    2. Mas no geral tu vai precisar saber:
      1. As camadas: Nós temos 5 grandes blocos: Aplicação, Framework Android, Bibliotecas, Android Runtime e Kernel do Linux
      2. e a minha sugestão é entender a existência delas e se aprofundar na camada de Aplicação e Framework Android.
      3. Porque todas essas camadas abaixo: Bibliotecas, Runtime, Kernel, tu vai interagir através do Framework Android.

No último video eu falei sobre COMO EU ESTUDO

Como tu pode criar o teu PLANO DE ESTUDOS

E comentei que estudar a base, é algo eterno

Tu nunca vai deixar de estudar a base, os fundamentos

A questão é quanto tempo tu deveria investir estudando os fundamentos

Antes de criar o teu primeiro aplicativo, ou melhor o segundo

Mas ja explico porque o segundo...

Se quiser saber até quando tu precisa estudar a base

Acompanha o nosso ultimo video, link ta aqui

E ja aproveito pra pedir que tu deixe o seu like

E considere se inscrever no canal e nos seguir no Instagram e Twitter

Que por sinal eu tenho compartilhado no Twitter

As minhas anotações sobre processos seletivos que eu fiz no passado

  1. Ferramentas
    1. Linguagem de Programação: Kotlin ou JAVA
      1. Até onde tu estuda essas linguagens no primeiro momento: até entender na pratica o paradigma de Programação Orientada a Objetos
    2. SDK: sem o SDK, tu nao seria nada!
      1. SDK é um Kit de ferramentas, como o nome diz: Software Development Kit
      2. Toda vez que o Google lança uma versão nova do Android, ele também lança uma versão do SDK. Pra voce rodar o teu aplicativo em um dispositivo, tu precisa especificar qual versão do SDK tu ta utilizando.
      • Android SDK Build tool.
      • Android Emulator.
      • Android SDK Platform-tools.
      • Android SDK Tools.
    3. e tudo isso pode ser obtido, com um clique dentro da terceira ferramenta:
      1. Android Studio IDE
      2. Android Studio é um software que vai te ajudar com tudo, e atualmente tu precisa ter no minimo 8GB RAM pra rodar ele no teu computador + alguns requisitos que tu pode encontrar no site developer.android.com

E sabe porque eu falei que tu precisa investir em estudar os fundamentos antes de criar o teu segundo aplicativo? e não antes do primeiro.

Porque o pulo do gato, o hack que tu precisa pra desbloquear o teu cérebro e perceber que desenvolvimento android é pra você

Está em conseguir criar o teu primeiro aplicativo, que vai ser um Hello World

Nós temos uma Playlist aqui no canal, onde eu compartilho a tela e mostro passo a passo como fazer. Ela ta disponível para membros do canal, então se tu quer ajudar o canal e aprender como sair do ZERO, desde instalar o AS e criar o primeiro app de teste: considere se tornar membro e assistir a playlist.

Então o que falamos até agora de fundamentos que tu precisa pra trabalhar com desenvolvimento Android:

  • Entendimento teórico da Arquitetura Android
  • Domínio das Ferramentas
  • e o Terceiro Item: Sãos os Componentes
  1. Componentes:

    1. Interface: Os apps Android são criados como uma combinação de componentes que podem ser invocados individualmente. Por exemplo, uma atividade:Activity é um tipo de componente do app que oferece uma interface do usuário (IU).
      1. A atividade "principal" começa quando o usuário toca no ícone do app.
      2. Activity é como se fosse uma pagina na internet: o conteudo dessa pagina vai ser criado com outros componentes de interface.
    2. Nem todos componentes possuem interface: como o WorkManager, que permitem que o app execute tarefas em segundo plano sem uma IU.

    Há quatro tipos diferentes de componentes de aplicativo:

    • Atividades
    • Serviços
    • Broadcast receivers
    • Provedores de conteúdo

Então anota ai para estudar cada um deles, mas anota em inglês porque tu vai achar muito mais conteúdo na internet.

  • Activities
  • Services
  • Broadcast receivers
  • Content providers

Um aspecto exclusivo do sistema Android é que qualquer aplicativo pode iniciar um componente de outro aplicativo. Por exemplo, se tu quiser que o usuário capture uma foto com a câmera do dispositivo, provavelmente haverá outro aplicativo que faz isso e seu aplicativo poderá usá-lo, ou seja, não será necessário desenvolver uma atividade para capturar uma foto.

E isso só é possivel por conta do proximo topico de estudo sobre componentes: Ativação de componentes: Três dos quatro tipos de componentes — atividades, serviços e broadcast receivers — são ativados por uma mensagem assíncrona chamada intent.

Anota ai dentro do Componentes: Activities, Services, Broadcast Receivers, Content Providers e Intent.

Então até agora nós vimos:

  1. Arquitetura Android
  2. Ferramentas
  3. Componentes
  4. Proximo seria os Recursos do Aplicativo

Mas calma!

Tudo que já listei aqui tu pode ir fazendo com calma.

Tu nao precisa pegar o primeiro item dessa lista e estudar tudo sobre, tu pode ir pulando e depois voltando pra aprender um pouco mais.

E tu vai descobrir outros itens para estudar no meio do caminho, por exemplo: ao estudar sobre Activities tu vai precisar aprender a declarar esse componente e vai descobrir o tal Manifesto.

Não me refiro ao ManifestoTech que foi lançado na semana passada e que viralizou no Twitter.

Me refiro ao arquivo de manifesto AndroidManifest.xml  que precisa ser criado para que o sistema Android saiba que um componente existe na tua aplicação.

Continuando então: quarto item de estudo seria os Recursos do Aplicativo

Então até agora nós vimos:

  1. Arquitetura Android

  2. Ferramentas

  3. Componentes

  4. Proximo seria os Recursos do Aplicativo

  5. Recursos do aplicativo

    1. Os apps Android são compostos de mais que somente códigos — eles exigem recursos separados do código-fonte, como imagens, arquivos de áudio e tudo o que se relaciona com a apresentação visual do aplicativo.
    2. Por exemplo, tu precisa definir animações, menus, estilos, cores e o layout das interfaces do usuário da atividade com arquivos XML.
    3. Um dos aspectos mais importantes de fornecer recursos separados do código-fonte é a capacidade de fornecer recursos alternativos para diferentes configurações de dispositivo.
    4. Por exemplo, ao definir um texto que vai na interface do aplicativo, é possível traduzir esse texto conforme o idioma do dispositivo. E pra fazer isso basta tu criar um arquivo xml para cada idioma que tu quer que o teu aplicativo suporte.
    5. Esse arquivo XML vai se chamar string e ele faz parte do tipo de recurso values.
    6. Principais Tipos de recurso:
      1. anim
      2. color
      3. drawable
      4. layout
      5. menu
      6. values
    7. Quase todos os aplicativos precisam fornecer recursos alternativos para suportar configurações específicas do dispositivo: dimensões, orientações, linguagens

    Agora o Numero 5 da nossa lista de estudos, que na verdade é um dos componentes.

    Mas que na minha opinião merece a atenção especial:

  6. Atividades

    1. e aqui tu vai precisar estudar algumas coisas, até entender.
    2. São itens que eu não recomendo tu pular. e o primeiro item é
      1. ciclo de vida da atividade
        1. Ao longo da vida útil de uma atividade, ela passa por vários estados. Uma série de callbacks são usados para lidar com a mudança entre estados.
        2. Se tu nao sabe o que é Callback, significa que tu não aprendeu ainda o primeiro item que eu falei aqui no video no topico de ferramentas / linguagem de programação.
        3. Então tudo bem, vai anotando e estuda primeiro as ferramentas.
        4. O que seria essas mudancas de estados de uma atividade:
        5. Eventos diferentes, alguns acionados pelo usuário e outros pelo sistema, podem fazer com que um [Activity](<https://developer.android.com/reference/android/app/Activity?hl=pt-br>) faça a transição de um estado para outro.
        6. Exemplos:
          1. usuario pode receber uma ligacao enquanto usava o teu aplicativo;
          2. usuario pode minimizar o aplicativo
          3. Ele pode clicar em uma notificacao do whatsapp e fechar o app
          4. e tudo isso vai disparar callbacks avisando o teu aplicativo que ele esta preste a mudar de estado: de ativo para pausado, parada ou destruido.
      2. tarefas e a pilha de retorno
        1. Uma tarefa é um conjunto de atividades com as quais os usuários interagem. As atividades são organizadas em uma pilha, a pilha de retorno, na ordem em que cada atividade é aberta.
        2. O que eh uma pilha: isso tu tambem vai estudar la na parte de linguagem de programação quando for ler sobre estrutura de dados.
        3. Essa pilha de retorno é o que permite o usuario a navegar para a atividade anterior.
        4. Exemplo: Quando a atividade atual iniciar outra, a nova atividade será empurrada para a parte superior da pilha e receberá o foco. A atividade anterior permanece na pilha, mas é interrompida. Quando uma atividade é interrompida, o sistema mantém o estado atual da interface do usuário.
      3. Fragmentos
        1. Um [Fragment](<https://developer.android.com/reference/androidx/fragment/app/Fragment?hl=pt-br>) representa uma parte reutilizável da IU do seu app. Um fragmento define e gerencia o próprio layout, tem o próprio ciclo de vida e pode processar os próprios eventos de entrada. Fragmentos não podem existir por conta própria. Eles precisam ser hospedados por uma atividade ou por outro fragmento.

Só um detalhe: esse video nao serve para explicar cada item de estudo. Isso tu vai precisar fazer por conta própria. Entao tudo bem se tu nao entender o que significa o que eu to falando agora, o importante é anotar para depois tu estudar.

Nao tem como explicar cada item desses aqui, para isso eu faço lives e disponibilizo elas tudo la na playlist que eu comentei.

Então recapitulando os tópicos de estudos:

  1. Arquitetura Android
  2. Ferramentas
  3. Componentes
  4. Recursos do Aplicativo
  5. Atividades

O 6 item seria os Componentes da arquitetura do Android

Componentes da arquitetura do Android é um conjunto de bibliotecas que te ajuda a projetar apps robustos, testáveis e de fácil manutenção.

Itens para estudar nesse topico:

  • LifeCycle Aware Components: Os componentes com reconhecimento de ciclo de vida executam ações em resposta a uma mudança no status do ciclo de vida de outro componente, como atividades e fragmentos. Esses componentes ajudam você a produzir códigos mais organizados e, com frequência, mais leves e mais fáceis de manter e testar.
  • LiveData: Use o LiveData para criar objetos de dados que notificam a interface quando o um dado é modificado. Dessa forma se algo mudar na base de dados, a tua interface vai estar escutando por essa mudança.
  • Arquitetura do Aplicativo:
    • A programação é um campo criativo, e a criação de apps Android não é uma exceção.
    • Há muitas maneiras de resolver um mesmo problema.
    • Entao aprender a dividir o teu aplicativo em no minimo 3 camadas de código faz parte do estudo dos fundamentos e base.
    • To falando das camadas de Dominio, Dados e Interface. Entao anota ai para estudar MVVM que é um padrão de arquitetura de software que facilita essa separação de camadas.
  • Ainda nos componentes tu precisa estudar o ViewModel armazena dados relacionados à IU que não são destruídos em rotações de apps.
  • O Room é uma biblioteca de mapeamento de objetos SQLite. Pra estudar esse item tu vai precisar saber o basico de SQL.

Recapitulando:

  1. Arquitetura Android
  2. Ferramentas
  3. Componentes
  4. Recursos do Aplicativo
  5. Atividades
  6. Componentes de Arquitetura do Aplicativo

Agora provavelmente tu se encontra em dois possíveis estado mental:

  • WOW! Isso é muita coisa
  • ou "Eu esperava mais desse video”

Se tu se encontra no primeiro estado: WOW isso é muita coisa.

Eu recomendo tu fazer três coisas:

  • torne-se membro do canal e acompanhe nossa playlist sobre Android;
  • junte-se a nossa comunidade do Discord que la a galera consegue te ajudar;
  • Vai com calma e foca no item 1 dessa lista de estudos, se tu começar a achar confuso, pula pro item 2, quando começar a ficar confusa, volta pro item 1 e vai perguntando para o pessoal la no nosso Discord ou aqui nos comentarios.

Agora se tu esta pensando: Eu esperava mais desse video:

  • Aproveita e ajuda quem ta no WOW isso é muita coisa;
  • Porque uma das melhores formas de aprender é ensinar;
  • Alguem vai acabar te perguntando sobre algo, tu vai responder porque ja estudou, essa pessoa vai fazer uma pergunta complementar pra saber mais detalhe, e talvez tu descubra coisas que acabou deixando escapar nos estudos...

Um abraço e te vejo no proximo video!