šŖ Crypto Tracker - PreƧos em Tempo Real (SwiftUI) Este aplicativo monitora o mercado de criptomoedas em tempo real, consumindo dados da API pĆŗblica do CoinGecko. O projeto foca em exibição de listas dinĆ¢micas, formatação de moedas e feedback visual de variaƧƵes de mercado (lucro/prejuĆzo).
š Funcionalidades Dados ao Vivo: Listagem das principais criptomoedas com preƧos atualizados via API.
Pull-to-Refresh: Atualização manual da lista através do gesto de deslizar para baixo, implementado com o modificador .refreshable.
Formatação Inteligente: Uso de Formatter para exibir preços em dólares (USD) e porcentagens com duas casas decimais.
Indicadores Visuais: Alteração dinâmica de cores (verde/vermelho) para indicar alta ou baixa do ativo nas últimas 24 horas.
š ļø Tecnologias e Conceitos Utilizados SwiftUI List: Construção de listas otimizadas com cĆ©lulas personalizadas (CoinRowView).
AsyncImage: Carregamento assĆncrono das logomarcas das criptomoedas diretamente da web.
Arquitetura MVVM:
Model: Representação precisa dos dados financeiros (ID, Symbol, Current Price, etc).
ViewModel: Gerenciamento de estado da lista e controle do indicador de carregamento.
Service: Camada de rede isolada para realizar a chamada Ć API REST.
Protocolo Codable: Mapeamento de um JSON complexo para estruturas Swift.
š Estrutura do Projeto Plaintext CryptoTracker/ āāā App/ # Inicialização do aplicativo āāā Models/ # Estrutura do objeto Coin āāā ViewModels/ # Lógica de processamento dos dados financeiros āāā Views/ # CryptoListView (Principal) e CoinRowView (CĆ©lula) āāā Services/ # CryptoService (RequisiƧƵes HTTP) āāā Resources/ # Assets e Ćcones š§ Aprendizados AvanƧados Manipulação de Doubles: Como lidar com valores numĆ©ricos decimais e formatĆ”-los para uma visualização amigĆ”vel.
UX de Listas: Implementação de carregamento dinâmico e estados visuais para listas longas.
Desempenho de Imagens: Uso de placeholders enquanto as imagens das moedas são baixadas em segundo plano.