PDM · DAW 2

Aula 01 · Semana 3 · Segunda, 21 de setembro de 2026 · 16:00 às 18:00

Panorama mobile e install party

Teoria: o que muda quando um programa corre num telemóvel, iOS e Android lado a lado, as cinco formas de construir uma app, e como o Flutter desenha o ecrã. Prática: instalação do ambiente (Git, GitHub, Android Studio, VS Code, Flutter).

Programação para Dispositivos Móveis · CTeSP DAW 2

Cinco ferramentas: o que é cada uma

VS Code Onde o código se escreve. Run, erros e hot reload. flutter dart framework Flutter SDK A caixa de ferramentas. Comandos e framework, em C:\dev. PEÇAS ANDROID SDK · Gradle emulador Android Studio Fornece as peças para Android. Depois disso, quase não se abre. seg ter hoje Git Álbum de fotografias do projeto. Cada commit é uma fotografia. GitHub A cópia partilhada, na internet. Não se instala: é um site. USB Android Studio Telemóvel ou emulador Onde a app corre. Qualquer um dos dois serve.
Onde se escreve, com que se constrói, onde fica o histórico, e onde a app corre.

Antes de descarregar: a pasta de trabalho

  1. Windows: abrir o Explorador de Ficheiros → Este PC → Disco Local (C:) → botão direito → Novo → Pasta → nome dev. Resultado: C:\dev.
  2. macOS e Linux: no Terminal, mkdir ~/dev.
  3. Esta pasta é para o Flutter SDK e para os projetos. Nunca no OneDrive, nem em Documentos ou Ambiente de Trabalho, nem em caminhos com espaços ou acentos.
Downloads e instalação são momentos diferentes Os instaladores que se seguem ficam na pasta Transferências do browser, e isso não interessa. Cada programa instala-se na sua pasta por defeito quando o instalador corre. A única escolha de pasta em toda a instalação é o download do Flutter SDK, mais tarde, e a resposta é C:\dev.

O que já está instalado? Verificar em dois minutos

Muitos portáteis do 2.º ano já têm o VS Code; o Git normalmente não. Abrir um terminal (menu Iniciar → Terminal) e correr:

git --version
code --version
FerramentaResultadoO que fazer
Git"não é reconhecido" (o caso habitual)Fazer o download 2.
Gitgit version 2.4x ou superiorEstá feito. Saltar o download 2.
VS CodeJá instalado (o comando responde, ou o programa abre)Saltar o download 3. Abrir o VS Code, Help → Check for Updates, e começar já o Flutter SDK: extensão Flutter, paleta, Flutter: Create New Project → Download SDK → C:\dev. São 2 GB; correm durante a teoria.
VS CodeNão instaladoFazer o download 3; o Flutter SDK vem depois, na prática.
Android StudioRaramente já existeSe existir: ecrã inicial → três pontos → SDK Manager, e ver se o SDK está instalado. Senão, download 1.

Download 1 de 3: Android Studio

É o maior (1,2 GB) e por isso vai primeiro. Endereço: developer.android.com/studio.

Página developer.android.com/studio com o botão Download Android Studio
Carregar no botão Download Android Studio. Aparecem os termos: aceitar em baixo e carregar em Download Android Studio for Windows. Se aparecer um aviso de cookies, OK.
  1. Carregar no botão, aceitar os termos, e deixar o ficheiro android-studio-…-windows.exe descarregar.
  2. Não instalar ainda: passar ao download seguinte enquanto este corre.

Download 2 de 3: Git (só quem não tem)

Endereço: git-scm.com/downloads/win. É pequeno (70 MB).

Página de download do Git for Windows com o link Click here to download a versão x64
No separador Windows, carregar em Click here to download: descarrega a versão x64 mais recente. Não usar as versões Portable nem ARM64.
  1. macOS: o Git vem com xcode-select --install no Terminal. Linux: sudo apt-get install git.
  2. Não instalar ainda; passar ao download seguinte.

Download 3 de 3: Visual Studio Code (só quem não tem)

Endereço: code.visualstudio.com (100 MB).

Página inicial do Visual Studio Code com o botão Download for Windows
Carregar em Download for Windows. O site deteta o sistema; em macOS e Linux o botão diz o nome respetivo. Se aparecer o aviso de cookies, Reject ou Accept, tanto faz.
  1. O ficheiro chama-se VSCodeUserSetup-x64-….exe. É o User Installer, que é o certo.
  2. Quem já tinha o VS Code está, em vez disto, a descarregar o Flutter SDK. Com os downloads a correr, criar a conta GitHub no slide seguinte.

Enquanto os downloads correm: conta GitHub

Endereço: github.com/signup. Quem já tem conta passa à frente.

  1. Email: o da escola ou o pessoal. Vai receber um código de confirmação.
  2. Password: pelo menos 15 caracteres, ou 8 com números e minúsculas. Guardar num gestor de passwords.
  3. Username: é o nome público. Vai aparecer em todos os repositórios e no currículo: convém ser apresentável (por exemplo, nome e apelido, sem números aleatórios).
  4. Resolver o desafio de verificação, inserir o código recebido por email, e escolher o plano Free.
O que a conta serve Enviar código para o GitHub (push), clonar os repositórios das aulas e, a partir do projeto, o repositório do grupo. Amanhã faz-se o primeiro push.

Ponto de situação antes da teoria

Quem tiver algum download terminado pode correr já o instalador com as opções por defeito. Os detalhes de cada instalação vêm na parte prática, depois da teoria.

O que muda quando um programa corre num telemóvel

Ecrã pequeno Sem rato, sem hover. Um dedo tem 1 cm. 20 % Bateria Rede, GPS e animações gastam. O sistema limita quem gasta. túnel · elevador · 3G Rede que vai e vem A app continua a funcionar com o que tem. O sistema manda Pausa ou termina a app sem avisar. Permitir localização? Permitir Não Permissões Câmara, localização, notificações: só com autorização. Lojas com revisão Cada versão é aprovada ou rejeitada. v2.0 v1.0 Atualizações lentas Há quem fique meses na versão antiga. RAM 4 GB Pouca memória e CPU Menos que um portátil, e aquece depressa.
Os limites mais frequentes; há outros (interrupções, tamanhos de ecrã, acessibilidade) que aparecem ao longo das aulas. Na web assume-se ecrã grande, rede estável e página aberta; no telemóvel nenhuma das três é garantida.

iOS e Android, lado a lado

iOS (Apple)Android (Google)
Linguagem e UISwift, SwiftUIKotlin, Jetpack Compose
FerramentaXcode, só em MacAndroid Studio, em qualquer computador
DispositivosPoucos modelos, todos da AppleMilhares de modelos e fabricantes
Loja e revisãoApp Store, revisão humana; TestFlight para testesGoogle Play, revisão mais automática; APK fora da loja também
Conta de programador99 USD por ano25 USD, uma vez
Ficheiro da app.ipa.apk (instalar) e .aab (loja)

Publicar para iOS exige um Mac. Para Android chega qualquer portátil: é o alvo principal da UC.

Cinco formas de construir uma app

PWA web app instalável corre no browser Híbrido web numa webview Ionic, Capacitor Cross-platform componentes nativos React Native, KMP Cross-platform desenha a própria UI Flutter Nativo Swift + SwiftUI Kotlin + Compose
AbordagemExemplosQuando
PWASite com manifest e service workerSem loja nem instalação; limitado no iOS
Híbrido (webview)Ionic, CapacitorReaproveitar uma web app já feita
Cross-platform, componentes nativosReact Native, Kotlin MultiplatformEquipas que já sabem React ou Kotlin
Cross-platform, UI própriaFlutterUma equipa, um código, mesmo aspeto em todo o lado
NativoSwift, KotlinIntegração máxima; duas equipas

Como o Flutter desenha o ecrã

1 · O código da app descreve o ecrã em widgets Scaffold AppBar Center Text Text uma lista do que deve aparecer 2 · O motor do Flutter pinta cada pixel (Impeller) 60 imagens por segundo 3 · O sistema operativo empresta a superfície e entrega os toques Android ou iOS os toques do utilizador voltam ao código, que descreve o ecrã de novo O sistema só vê uma superfície pintada. Por isso a app fica igual num Samsung de 2019 e num iPhone de 2026.
Três partes: o código diz o que aparece, o motor pinta, o sistema mostra e devolve os toques.
Analogia Um cinema. O sistema operativo empresta a sala e a tela; o Flutter é o projetor, que pinta cada imagem; o código da app é o guião que diz o que aparece em cada cena.

Como vão ser as aulas

Primeira fase 30 a 40 min de teoria sobre um tema de mobile depois prática num repositório da aula Dart, Flutter, rede, dados, arquitetura Projeto em grupo aulas 100% práticas trabalhar na app e tirar dúvidas uma app ligada a uma API pública (proposta: IPMA) Pelo caminho: exercícios do mercado de trabalho, como Crazy 8s, revisão de código entre colegas e retrospetivas.
Um ou dois testes escritos de escolha múltipla sobre a teoria; número e datas ficam fechados na próxima semana.

Inteligência artificial e responsabilidade

Escrito à mão Com IA Copiado O código entregue responsabilidade de quem o entrega Cada pedaço pode ser explicado? é isso que a defesa verifica
A IA é bem-vinda. A responsabilidade pelo código é de quem o entrega.

Instalar 1 de 4: Git

  1. Abrir o instalador (Git-….exe) a partir das Transferências. Aceitar a licença e carregar em Next em todos os ecrãs, com duas exceções.
  2. Ecrã Choosing the default editor used by Git: se o VS Code já estiver instalado, escolher Use Visual Studio Code as Git's default editor; se não, deixar como está (muda-se depois no guia).
  3. Ecrã Choose a credential helper: confirmar Git Credential Manager. É o que permite entrar no GitHub pelo browser em vez de escrever passwords.
  4. Tudo o resto: Next, Next, Install, Finish. A instalação vai para Program Files\Git.
  5. Confirmar num terminal novo: git --version.
macOS e Linux Não há instalador: xcode-select --install no macOS, sudo apt-get install git no Linux.

Instalar 2 de 4: VS Code e a extensão Flutter

  1. Abrir VSCodeUserSetup-x64-….exe. Aceitar a licença. No ecrã Select Additional Tasks, marcar Add to PATH e Add "Open with Code" action. Install, Finish.
  2. Abrir o VS Code. Menu Extensions: Ctrl+Shift+X. Escrever Flutter na pesquisa e instalar a extensão Flutter, autor Dart Code, a primeira da lista. Traz a extensão Dart com ela.
Vista Extensions do VS Code com a extensão Flutter de Dart Code no topo
Extensions, pesquisa "Flutter": a extensão certa é a de Dart Code.

Instalar 3 de 4: Flutter SDK, a partir do VS Code

  1. Paleta de comandos: Ctrl+Shift+P. Escrever flutter new e escolher Flutter: Create New Project.
  2. Quando perguntar pelo SDK: Download SDK. Na janela de pasta, escolher C:\dev. Carregar em Clone Flutter e esperar (cerca de 2 GB).
  3. Quando terminar: Add SDK to PATH. Se aparecer um aviso sobre Google Analytics, OK.
  4. Fechar o VS Code e todos os terminais e voltar a abrir. Num terminal novo: flutter --version.
Paleta de comandos com Flutter: Create New Project
A paleta, com Flutter: Create New Project.
Terminal do VS Code com flutter --version a responder
Terminal (Ctrl+`) com flutter --version a responder: o Flutter está no PATH.

Windows: modo de programador

O Flutter precisa de criar symlinks quando compila plugins, e o Windows só o permite com o modo de programador ligado. Sem isto, mais tarde aparece o erro Building with plugins requires symlink support.

  1. Num terminal: start ms-settings:developers. Ou menu Iniciar → Definições de programador.
  2. Ligar o interruptor Modo de programador e confirmar o aviso.
Definições › Sistema › Para programadoresModo de programadorInstalar apps de qualquer origem, incluindo ficheiros soltos.Ligado
Esquema (não é uma captura). No Windows 10 está em Atualização e Segurança → Para programadores.

Instalar 4 de 4: Android Studio e o SDK

  1. Abrir android-studio-…-windows.exe: Next em tudo, Install, Finish. No primeiro arranque escolher Standard, aceitar as licenças e deixar descarregar o SDK (3 a 4 GB). Se o utilizador do Windows tiver espaços ou acentos no nome, escolher Custom e pôr o SDK em C:\dev\Android\Sdk (guia).
  2. No ecrã inicial: menu de três pontos (More Actions) → SDK Manager → separador SDK Tools → marcar Android SDK Command-line Tools (latest) → Apply → OK.
  3. Num terminal: flutter doctor --android-licenses e y a tudo. Depois flutter doctor: ✓ em Flutter, Android toolchain e Android Studio.
Menu More Actions do Android Studio com SDK Manager
Ecrã inicial → três pontos → SDK Manager.
SDK Manager, separador SDK Tools, com as Command-line Tools marcadas
SDK Tools: Build-Tools, Command-line Tools (latest), Emulator, Platform-Tools.

Windows: os quatro pontos que mais falham

SintomaCausaSolução
flutter não é reconhecidoO terminal foi aberto antes de o PATH mudar, ou o botão Add SDK to PATH não correuFechar todos os terminais e o VS Code; abrir um terminal novo. Se persistir, seguir "Alterar o PATH à mão" no guia: o PATH é a lista de pastas onde o Windows procura os comandos.
Nenhum comando "Flutter" na paletaPasta em Restricted Mode: as extensões estão desligadasCarregar em Manage → Trust no aviso amarelo, ou no botão Restricted Mode na barra de baixo.
Erros ao criar projeto, pub get a falharSDK ou projeto no OneDrive, ou caminho com espaços e acentosMover para C:\dev. Confirmar que C:\dev não está sincronizada.
Building with plugins requires symlink supportModo de programador desligadostart ms-settings:developers e ligar o interruptor.
Primeira compilação lentíssima ou flutter.bat desapareceWindows Defender ou antivírus a analisar cada ficheiroAdicionar C:\dev às exclusões (Segurança do Windows → Proteção contra vírus → Exclusões).

Os restantes casos, incluindo o telemóvel que não aparece e erros de Gradle, estão na tabela de problemas frequentes do guia.

Quem terminar: primeira app, no telemóvel ou no emulador

Não é preciso hoje. Até sexta-feira é necessário um dos dois; qualquer um serve.

Opção A: telemóvel Android

  1. Opções de programador (7 toques em Número de compilação) e Depuração USB.
  2. Cabo de dados; aceitar o pedido de confiança no ecrã do telemóvel.
  3. flutter devices mostra o modelo.

Opção B: emulador

  1. Android Studio → menu de três pontos → Virtual Device Manager → +.
  2. Medium Phone ou um Pixel → Next → Finish (descarrega cerca de 1 GB).
  3. Arrancar pelo triângulo; flutter devices mostra-o. Pede 16 GB de RAM.
Device Manager do Android Studio com um dispositivo virtual e o botão + para adicionar
Device Manager: o + cria o emulador; o triângulo arranca-o.
cd C:\dev
flutter create ola_mobile
cd ola_mobile
flutter run

Com a app a correr, mudar um texto em lib/main.dart, gravar, e carregar em r no terminal: hot reload.

Até amanhã

Para fazer até amanhã

  • flutter --version responde num terminal novo.
  • Command-line tools instaladas e flutter doctor --android-licenses aceite.
  • git config --global user.name e user.email definidos (secção Git do guia).
  • Até sexta: telemóvel Android com depuração USB, ou um emulador criado. Não é preciso amanhã.
  • Conta GitHub criada e email confirmado.
  • Em caso de bloqueio: mensagem de erro completa no fórum do Moodle.

Para ler