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
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
Windows: abrir o Explorador de Ficheiros → Este PC → Disco Local (C:) → botão direito → Novo → Pasta → nome dev. Resultado: C:\dev.
macOS e Linux: no Terminal, mkdir ~/dev.
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
Ferramenta
Resultado
O que fazer
Git
"não é reconhecido" (o caso habitual)
Fazer o download 2.
Git
git version 2.4x ou superior
Está feito. Saltar o download 2.
VS Code
Já 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 Code
Não instalado
Fazer o download 3; o Flutter SDK vem depois, na prática.
Android Studio
Raramente já existe
Se existir: ecrã inicial → três pontos → SDK Manager, e ver se o SDK está instalado. Senão, download 1.
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.
Carregar no botão, aceitar os termos, e deixar o ficheiro android-studio-…-windows.exe descarregar.
Não instalar ainda: passar ao download seguinte enquanto este corre.
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.
O ficheiro chama-se VSCodeUserSetup-x64-….exe. É o User Installer, que é o certo.
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.
Email: o da escola ou o pessoal. Vai receber um código de confirmação.
Password: pelo menos 15 caracteres, ou 8 com números e minúsculas. Guardar num gestor de passwords.
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).
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
Pasta C:\dev criada (ou ~/dev).
Android Studio a descarregar ou descarregado.
Git descarregado, ou já instalado (git --version responde).
VS Code descarregado, ou já instalado e atualizado.
Quem já tinha o VS Code: Flutter SDK a descarregar para C:\dev.
Conta GitHub criada e email confirmado.
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
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 UI
Swift, SwiftUI
Kotlin, Jetpack Compose
Ferramenta
Xcode, só em Mac
Android Studio, em qualquer computador
Dispositivos
Poucos modelos, todos da Apple
Milhares de modelos e fabricantes
Loja e revisão
App Store, revisão humana; TestFlight para testes
Google Play, revisão mais automática; APK fora da loja também
Conta de programador
99 USD por ano
25 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
Abordagem
Exemplos
Quando
PWA
Site com manifest e service worker
Sem loja nem instalação; limitado no iOS
Híbrido (webview)
Ionic, Capacitor
Reaproveitar uma web app já feita
Cross-platform, componentes nativos
React Native, Kotlin Multiplatform
Equipas que já sabem React ou Kotlin
Cross-platform, UI própria
Flutter
Uma equipa, um código, mesmo aspeto em todo o lado
Nativo
Swift, Kotlin
Integração máxima; duas equipas
Como o Flutter desenha o ecrã
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
Um ou dois testes escritos de escolha múltipla sobre a teoria; número e datas ficam fechados na próxima semana.
Crazy 8s: oito ideias de ecrã em oito minutos, uma por minuto, em papel. Usa-se em equipas de produto para não ficar preso na primeira ideia.
Material em todas as aulas: portátil com o ambiente instalado, telemóvel Android com cabo de dados, conta GitHub.
Inteligência artificial e responsabilidade
A IA é bem-vinda. A responsabilidade pelo código é de quem o entrega.
Copilot, ChatGPT, Claude ou outra ferramenta podem ser usados. O docente usa-os diariamente.
Cada aluno é responsável pelo código que produz: com IA, à mão ou copiado. Cada pedaço tem de poder ser explicado por quem o entrega.
O objetivo é aprender a programar e perceber como as coisas funcionam, não passar à disciplina.
Instalar 1 de 4: Git
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.
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).
Ecrã Choose a credential helper: confirmar Git Credential Manager. É o que permite entrar no GitHub pelo browser em vez de escrever passwords.
Tudo o resto: Next, Next, Install, Finish. A instalação vai para Program Files\Git.
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
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.
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.
Extensions, pesquisa "Flutter": a extensão certa é a de Dart Code.
Instalar 3 de 4: Flutter SDK, a partir do VS Code
Paleta de comandos: Ctrl+Shift+P. Escrever flutter new e escolher Flutter: Create New Project.
Quando perguntar pelo SDK: Download SDK. Na janela de pasta, escolher C:\dev. Carregar em Clone Flutter e esperar (cerca de 2 GB).
Quando terminar: Add SDK to PATH. Se aparecer um aviso sobre Google Analytics, OK.
Fechar o VS Code e todos os terminais e voltar a abrir. Num terminal novo: flutter --version.
A paleta, com Flutter: Create New Project.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.
Num terminal: start ms-settings:developers. Ou menu Iniciar → Definições de programador.
Ligar o interruptor Modo de programador e confirmar o aviso.
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
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).
No ecrã inicial: menu de três pontos (More Actions) → SDK Manager → separador SDK Tools → marcar Android SDK Command-line Tools (latest) → Apply → OK.
Num terminal: flutter doctor --android-licenses e y a tudo. Depois flutter doctor: ✓ em Flutter, Android toolchain e Android Studio.
Ecrã inicial → três pontos → SDK Manager.SDK Tools: Build-Tools, Command-line Tools (latest), Emulator, Platform-Tools.
Windows: os quatro pontos que mais falham
Sintoma
Causa
Solução
flutter não é reconhecido
O terminal foi aberto antes de o PATH mudar, ou o botão Add SDK to PATH não correu
Fechar 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 paleta
Pasta em Restricted Mode: as extensões estão desligadas
Carregar em Manage → Trust no aviso amarelo, ou no botão Restricted Mode na barra de baixo.
Erros ao criar projeto, pub get a falhar
SDK ou projeto no OneDrive, ou caminho com espaços e acentos
Mover para C:\dev. Confirmar que C:\dev não está sincronizada.
Building with plugins requires symlink support
Modo de programador desligado
start ms-settings:developers e ligar o interruptor.
Primeira compilação lentíssima ou flutter.bat desaparece
Windows Defender ou antivírus a analisar cada ficheiro
Adicionar 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
Opções de programador (7 toques em Número de compilação) e Depuração USB.
Cabo de dados; aceitar o pedido de confiança no ecrã do telemóvel.
flutter devices mostra o modelo.
Opção B: emulador
Android Studio → menu de três pontos → Virtual Device Manager → +.
Medium Phone ou um Pixel → Next → Finish (descarrega cerca de 1 GB).
Arrancar pelo triângulo; flutter devices mostra-o. Pede 16 GB de RAM.
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.