Artigo

Cartola FC 2020 e SwiftUI + Combine

Uma adaptacao editorial sobre como o time avaliou, introduziu e estabilizou SwiftUI e Combine em uma feature real do Cartola FC.

Texto adaptado para o site a partir do artigo original publicado no Medium em julho de 2021.

Contexto

A mudanca nasceu durante o planejamento da temporada 2021, quando a equipe precisava lancar o Banco de Reservas em uma tela legada, com Objective-C, muitas responsabilidades acopladas e uma janela de entrega curta.

Por que SwiftUI e Combine

A aposta fazia sentido por velocidade de prototipacao, escrita declarativa e possibilidade de evoluir a experiencia em dispositivos mais recentes. O time comecou de forma conservadora, usando OpenCombine para compatibilidade e deixando a migracao para o Combine nativo mais simples quando o suporte ao iOS12 fosse removido.

Principais obstaculos

O maior trabalho nao foi somente a tela em SwiftUI, mas a preparacao do ecossistema ao redor. Alguns frameworks dinamicos do app precisaram virar pacotes Swift para reduzir atrito de integracao e viabilizar melhor a nova stack.

Modulos migrados para SPM

  • UI
  • Networking
  • Models, Logic e Protocol
  • Resources, Analytics e Navigation

Tradeoffs reais em producao

SwiftUI trouxe produtividade e melhor fluidez para a equipe, mas o suporte ao iOS13 exigiu misturar SwiftUI 1 com UIKit em varios pontos. Preview instavel, lacunas de framework e curva de aprendizado fizeram parte do pacote.

Impacto em produto e engenharia

Do ponto de vista de negocio, a decisao aumentava a capacidade de entrega e melhorava a experiencia para a maioria da base ativa. Do ponto de vista de engenharia, criava espaco para reaproveitar componentes, acelerar layout e preparar o terreno para novas features.

Lancamento

A feature entrou em producao em abril. A equipe acompanhou analytics de perto por se tratar de uma stack relativamente nova no app. O resultado relatado no artigo foi estabilidade alta, com crash-free users na casa de 99% e comportamento consistente mesmo com o aumento de trafego no inicio do campeonato.

Conclusao

A experiencia mostrou que SwiftUI nao precisa entrar por reescrita total. Em produtos reais, ele funciona melhor quando vem acompanhado de criterio: adocao progressiva, leitura honesta dos limites da versao alvo e preparo do time para aprender rapido.

Os ganhos de produtividade compensaram os pequenos contratempos da adocao inicial.