Mobile App Development · Dart/Flutter
Dois desafios de fechamento: montar um cartão de apresentação só com print() e ler dados do usuário pelo terminal.
Desafio 1
Monta um cartão de apresentação completo usando apenas sequências de print(), com cabeçalho decorativo, dados pessoais e uma lista numerada de metas de estudo.
// Desafio: criar um cartão de apresentação usando apenas saídas no console.
// O objetivo é praticar sequências de print() para montar uma saída formatada.
void main() {
// Linha decorativa que delimita o início do cartão.
print('====================================');
print('Cartao de Apresentacao - Dart');
print('====================================');
// Dados pessoais do desenvolvedor(a) em formação.
print('Nome: Mariana Silva');
print('Area de interesse: desenvolvimento mobile');
print('Motivo: criar apps para Android e iOS com uma unica base de codigo');
// Linha em branco para separar seções do cartão visualmente.
print('');
// Seção de metas: lista numerada de objetivos de aprendizagem.
print('Metas:');
print('1. Praticar Dart todos os dias');
print('2. Criar meu primeiro app Flutter');
print('3. Publicar um projeto no GitHub');
print('');
// Mensagem motivacional de encerramento do cartão.
print('Mensagem: jornada iniciada com sucesso!');
// Linha decorativa que delimita o fim do cartão.
print('====================================');
}
Saída esperada
==================================== Cartao de Apresentacao - Dart ==================================== Nome: Mariana Silva Area de interesse: desenvolvimento mobile Motivo: criar apps para Android e iOS com uma unica base de codigo Metas: 1. Praticar Dart todos os dias 2. Criar meu primeiro app Flutter 3. Publicar um projeto no GitHub Mensagem: jornada iniciada com sucesso! ====================================
Como executar
dart run 00-Introducao/03-Desafios/codigo_fonte/cartao_apresentacao.dart
Desafio 2
Lê nome e idade digitados pelo usuário via stdin.readLineSync(), valida os dados (nome não vazio, idade numérica e não negativa) e exibe uma mensagem personalizada — ou um aviso de dados inválidos.
// Desafio: ler nome e idade do usuário e exibir uma mensagem personalizada.
// Pratica leitura de stdin, conversão de tipos e validação básica de entrada.
import 'dart:io';
void main() {
// Desafio: ler nome e idade e exibir uma mensagem personalizada.
stdout.write('Digite seu nome: ');
final nome = stdin.readLineSync()?.trim() ?? '';
stdout.write('Digite sua idade: ');
final entradaIdade = stdin.readLineSync()?.trim() ?? '';
final idade = int.tryParse(entradaIdade);
// Valida os dados de entrada para evitar erro de execução.
if (nome.isEmpty || idade == null || idade < 0) {
print('Dados inválidos. Tente novamente com nome e idade válidos.');
return;
}
// Exibe uma saída amigável com os dados do usuário.
print(
'Olá, $nome! Você tem $idade anos. Bem-vindo ao desafio de introdução.',
);
}
Saída esperada
A saída depende do que você digitar (nome e idade lidos do terminal). Exemplo: para nome "Ana" e idade "25", o programa imprime "Olá, Ana! Você tem 25 anos. Bem-vindo ao desafio de introdução."
Como executar
dart run 00-Introducao/03-Desafios/codigo_fonte/desafio_intro.dart