Pular para conteúdo

Aula 04 - Estrutura de um App 🏗️


🧐 O que tem "debaixo do capô"?

Ao abrir um projeto no Android Studio, vemos muitas pastas. Não se desespere! Vamos entender cada uma.


📂 Visão Geral do Projeto

Existem dois modos de visão: Project e Android. Nós usaremos o modo Android (mais organizado).


1. O Manifesto 📜

app/src/main/AndroidManifest.xml

É o contrato do seu app com o sistema operacional.

  • Nome e Ícone do App.
  • Declaração de todas as Activities.
  • Solicitação de Permissões (Câmera, GPS).

2. A Pasta java (ou kotlin) ⌨️

Onde a "mágica" acontece.

  • Ficam as classes de lógica.
  • Ficam as classes das telas (MainActivity).
  • Organizado em pacotes (ex: com.meuapp.telas).

3. A Pasta res (Resources) 🎨

Tudo o que o usuário ou ouve, mas que não é lógica.

  • drawable: Imagens e ícones.
  • layout: A interface visual (XML).
  • mipmap: Ícones que aparecem no menu do celular.
  • values: Strings, Cores e Temas.

🎨 Por que centralizar os values?

Evite escrever texto direto no código!

<!-- res/values/strings.xml -->
<string name="boas_vinda">Bem-vindo ao App!</string>

Facilita a tradução para outros idiomas (Internacionalização). 🌍


4. Gradle: O Gerente de Fábrica ⚙️

Não é código do seu app, é a configuração da "fábrica" que constrói ele.

  • build.gradle (Project): Configurações globais.
  • build.gradle (Module): Configurações específicas do App.

📦 O que tem no Gradle?

  • versionCode: Número interno (1, 2, 3...).
  • versionName: Nome para o usuário (1.0.1...).
  • Dependencies: Bibliotecas externas (Retrofit, Room).

🏗️ O Ciclo de Build

graph LR
    A[Código Kotlin/Java] --> B[Compilador]
    E[Recursos XML/Img] --> B
    B --> C[Arquivo DEX]
    C --> D[APK / AAB]

🆚 Estrutura: Android vs iOS

Android iOS Papel
AndroidManifest Info.plist Metadados
res/layout Storyboard/XIB UI Visual
gradle CocoaPods/SwiftPM Dependências
res/values Localizable.strings Textos

Antigamente usava-se o findViewById (lento e perigoso). Hoje usamos o ViewBinding.

// No código Kotlin
binding.txtTitulo.text = "Novo Título"

Garante que você não tente acessar um ID que não existe na tela! 🛡️


🛠️ Prática: Explorando o Studio

  1. Abra o arquivo Activity_main.xml.
  2. Veja as abas Code, Split e Design.
  3. Mantenha no Split para aprender rápido!

⚠️ Cuidado com a pasta build

Ela é gerada automaticamente. Nunca altere nada dentro dela manualmente. Se der erro, use o comando: Build -> Clean Project.


🧩 Resumo

  • Manifesto: Declarativo e essencial.
  • Res: Visual e Multimídia.
  • Gradle: Configuração e Bibliotecas.
  • Java/Kotlin: Comportamento.

🚀 Desafio da Aula

  1. Adicione uma nova cor em colors.xml.
  2. Crie uma nova String em strings.xml.
  3. Use essa cor e essa string em um componente na tela inicial.

🏁 Conclusão

Entender a estrutura é o primeiro passo para não se perder em projetos grandes.


Próxima Aula: Interface Gráfica (Layouts)! 🎨👋