Mobile App Development · Dart/Flutter

00 · Introdução — Desafios

Dois desafios de fechamento: montar um cartão de apresentação só com print() e ler dados do usuário pelo terminal.

Desafio 1

cartao_apresentacao.dart

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

desafio_intro.dart

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