iOS Inside #005 – Refatoração, produtividade e carreira em alta performance

This article is also available in English:
https://iosinside.hashnode.dev/ios-inside-005-write-like-a-senior-grow-like-a-pro
Fala, dev!
Sabe aquele código que funciona, mas dá uma leve vergonha quando você volta depois de dois meses?
Ou pior: aquele código que tá “ok”, mas você sente que poderia estar muito melhor — só não sabe exatamente como?
Esse episódio do iOS Inside é sobre isso.
Vamos falar de refatorações com propósito.
De como devs sêniors pensam, simplificam e deixam o código mais limpo, legível e escalável — sem firula e sem overengineering.
Além disso:
Tem comandos novos no Xcode pra agilizar sua rotina
Uma análise do mercado iOS atual, com empresas que estão se destacando
E, claro, aquele toque prático com comparação de código que todo mundo adora
Então puxa uma água, abre o Xcode e vamo que vamo!
Refatorando como um sênior: clareza antes de tudo
Vamos direto ao ponto.
Aqui está um código real que poderia estar melhor:
Versão comum
if user.isLoggedIn == true {
if let name = user.name {
print("Olá, \(name)")
}
}
Nada “errado” aqui. Funciona. Mas veja como ele pode ficar mais elegante e expressivo:
Versão refatorada com visão sênior
guard user.isLoggedIn, let name = user.name else { return }
print("Olá, \(name)")
Por que essa versão é melhor?
Elimina a duplicidade de verificações aninhadas
Usa
guard
pra sair cedo e limpar o fluxo de leituraTransforma um “caminho feliz” em código direto e legível
Refatoração em ação: uma função que já vimos mil vezes
Vamos pegar um exemplo típico: uma função de validação de formulário.
Versão comum (mas repetitiva e frágil)
func validateForm(email: String, password: String) -> Bool {
if email.isEmpty || !email.contains("@") {
print("Email inválido")
return false
}
if password.count < 6 {
print("Senha muito curta")
return false
}
return true
}
Essa função parece simples — mas tem problemas:
Está diretamente acoplada à UI (exibe prints como feedback)
Usa lógica embutida difícil de reaproveitar
Cresce rápido demais se novas validações forem adicionadas
Versão refatorada com visão sênior
enum FormValidationError: Error, CustomStringConvertible {
case invalidEmail
case shortPassword
var description: String {
switch self {
case .invalidEmail:
return "Email inválido"
case .shortPassword:
return "Senha muito curta"
}
}
}
func validateForm(email: String, password: String) -> Result<Void, FormValidationError> {
guard email.contains("@") else {
return .failure(.invalidEmail)
}
guard password.count >= 6 else {
return .failure(.shortPassword)
}
return .success(())
}
E na prática:
switch validateForm(email: inputEmail, password: inputPassword) {
case .success:
submit()
case .failure(let error):
showAlert(message: error.description)
}
O que mudou — e por que é melhor?
Separação de responsabilidades: validação e exibição de mensagens são tratadas em lugares diferentes.
Escalabilidade: novas regras são adicionadas de forma clara.
Reutilização: a função pode ser usada em diferentes contextos (ex: CLI, testes, múltiplas telas).
Testabilidade: fácil testar os diferentes casos de erro isoladamente.
Esse tipo de refatoração mostra maturidade.
Não é sobre complicar — é sobre criar um código que você consegue crescer sem medo.
Dicas de Xcode que ninguém te contou (mas você vai amar)
Você provavelmente já sabe sobre ⌘ + Shift + O
pra buscar qualquer coisa no projeto.
Mas tem muita coisa escondida no Xcode que pode acelerar seu fluxo, economizar cliques e até evitar bugs.
Aqui vão algumas dicas novas (ou pouco exploradas) que valem ouro:
1. ⌘ + Control + J — Reveal in Project Navigator
Tá com um arquivo aberto e não sabe onde ele tá na árvore do projeto?
Aperta ⌘ + Control + J
e o Xcode seleciona o arquivo no navigator automaticamente.
Ideal pra quando você quer entender a estrutura ou mover algo de lugar sem ficar caçando na mão.
2. Control + 6 — Navegar entre métodos da classe
Esse aqui é subestimado.
Abre qualquer classe com vários métodos, pressiona Control + 6
e aparece uma lista com todas as funções, variáveis e extensões daquele arquivo.
Você navega direto entre trechos de código sem rolar feito louco.
Dica bônus: digita parte do nome da função e ele filtra.
3. ⌘ + Option + Control + G — Highlight all instances
Quer ver todas as ocorrências de uma variável, função ou nome no arquivo?
Com o cursor em cima dela, usa esse atalho.
Ele destaca todas as ocorrências visuais da palavra — ótimo pra analisar escopo, entender fluxo e refatorar com mais confiança.
Essas dicas são simples, mas quando viram hábito, mudam completamente a agilidade com que você se move no projeto.
Empresas referência em iOS hoje
Essas empresas têm se destacado por investir em produto, stack moderna e engenharia de qualidade:
Nubank – foco em arquitetura sólida, boas práticas e escala
iFood – alta performance, foco em UX e testes automatizados
QuintoAndar – código limpo, Swift moderno e time forte de mobile
Innvo Labs – consultoria referência em inovação no setor financeiro, com cultura tech forte, projetos em grandes bancos e destaque crescente no cenário de desenvolvimento mobile. (Dessa eu falo com propriedade 🤓)
Wildlife Studios – engenharia madura, cultura de aprendizado
Gympass – produtos internacionais, devs com ownership real
XP Inc. – times ágeis e tecnologia como pilar estratégico
No exterior, vale ficar de olho em:
Shopify – time iOS referência em modularização e SwiftUI
Airbnb – stack avançada, investimento em arquitetura escalável
Spotify – cultura de engenharia forte, projetos open source
Apple – claro né? Mas o processo seletivo é longo e exigente
Revolut – fintech com ritmo intenso e foco em código limpo
Wrap-up: dev sênior não se mede por tempo, mas por clareza
Se tem uma coisa que ficou clara neste episódio, é que maturidade no desenvolvimento iOS não tem a ver com quantos anos de carreira você tem, e sim com como você pensa e escreve código.
Você viu que:
Refatorar bem é, muitas vezes, remover código — não adicionar complexidade
Bons atalhos e comandos no Xcode aceleram sua produtividade sem esforço extra
O mercado valoriza quem entende arquitetura, se comunica bem e escreve código testável
Empresas como Innvo, Nubank, iFood, QuintoAndar e muitas outras estão abrindo portas pra quem entrega clareza e consistência
Se você chegou até aqui, já deu um passo além da média.
Agora é praticar, compartilhar, discutir — e evoluir junto com a comunidade.
Próximo episódio: vem aí o Swiftly 1.0
No iOS Inside #006 vamos falar de:
Tudo sobre o Swiftly 1.0
Reflexões práticas sobre produtividade e fluxo de trabalho em times iOS
Uma nova sessão surpresa que vai trazer código real da comunidade
Nos vemos em breve.
Valeu demais por ler. Até o próximo drop!
#iOSInside #SwiftTips #iOSDev #SwiftLang #MobileDev #DesenvolvimentoiOS #Refatoração #CarreiraDev #XcodeTips #Swift6
Subscribe to my newsletter
Read articles from iOS Inside directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
