Aula 15 - Desenvolvimento Mobile: Dart e Kotlin 📱
Objetivo
Objetivo: Criar aplicativos que rodam no seu bolso. Entenda a diferença entre Nativo e Multiplataforma.
1. O Mundo Mobile 🌍
Existem dois reis: Android (Google) e iOS (Apple). Para criar apps, temos dois caminhos:
- Nativo: Escreve um código para cada (Kotlin para Android, Swift para iOS). Melhor performance, mas dobro do trabalho.
- Multiplataforma: Escreve um código (Dart/Flutter, React Native) que roda nos dois.
Visualizando a Árvore de Widgets (Flutter/Mermaid)
Em Flutter, TUDO é um Widget (um pedaço da tela). Eles se organizam como uma árvore.
graph TD;
App[MaterialApp] --> Home["Scaffold (Tela Principal)"];
Home --> AppBar[Barra Superior];
Home --> Body[Corpo: Coluna];
Body --> Text1["Texto 'Olá'"];
Body --> Button["Botão 'Clique'"];
style App fill:#f9f;
style Home fill:#bbf;
2. Dart e Flutter 💙
Dart é a linguagem. Flutter é o framework (ferramenta).
import 'package:flutter/material.dart';
void main() {
runApp(MeuApp());
}
class MeuApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(title: Text("Meu Primeiro App")),
body: Center(child: Text("Olá, Flutter!")),
),
);
}
}
Simulando o Build (Termynal)
3. Gerenciando Estado (O Interativo) ⚡
Aplicativos não são estáticos. Se você clica num botão e a tela muda, o Estado mudou.
graph LR;
User["Usuário Clica"] --> State["Estado Muda<br/>(Contador + 1)"];
State --> UI["Tela Redesenha<br/>(build)"];
style State fill:#bfb;
4. Kotlin: O Poder do Android Nativo 🤖
Kotlin é moderno, conciso e 100% compatível com Java. É a linguagem oficial do Google para Android.
5. Mini-Projeto: Contador Interativo (Dart) 🚀
O coração de um app mobile é a interação com o usuário.
Desafio do Projeto
Crie uma lógica em Dart que simule um contador de curtidas.
1. Declare uma variável inteira chamada curtidas iniciando em 0.
2. Crie uma função clicarCurti() que aumente o valor em 1.
3. Crie uma função mostrarStatus() que diga se o post é "Popular" (mais de 10 curtidas) ou "Novo".
6. Exercícios de Fixação 📝
- Fácil (Dart): Crie uma função em Dart que receba uma lista de preços e retorne o total.
- Médio (Flutter Conceitual): Desenhe a árvore de widgets da tela de login do Instagram (Logo, Campo Email, Campo Senha, Botão Entrar).
- Desafio (Kotlin): Crie uma classe
Celularcom métodoligar(). Se a bateria estiver vazia, mostre erro.
Próxima Aula: Voltando para onde tudo começou (e onde a internet vive). PHP e o Legado Web.