Sobes.tech
Junior — Middle

Quais são as diferenças entre CoreGraphics e CoreAnimation, e em que casos é mais adequado usar cada uma dessas tecnologias?

sobes.tech IA

Resposta da IA

CoreGraphics é uma biblioteca gráfica 2D de baixo nível que permite desenhar linhas, formas, texto e imagens diretamente no contexto gráfico. Funciona na CPU e é usada para criar imagens rasterizadas estáticas ou dinâmicas, por exemplo, ao desenhar de forma personalizada em UIView.

CoreAnimation é uma tecnologia de animação de alto nível que funciona na GPU e permite criar animações suaves e transformações de camadas (CALayer). Está otimizada para animação de interfaces e controle de efeitos visuais sem necessidade de redesenhar manualmente o conteúdo.

Quando usar:

  • CoreGraphics é adequado se precisar desenhar conteúdo personalizado (por exemplo, gráficos, diagramas, formas complexas) com controle preciso sobre os pixels.
  • CoreAnimation é melhor para animar propriedades de camadas (posição, escala, opacidade), criar transições e efeitos visuais onde o desempenho e a suavidade são importantes.

Exemplo de uso de CoreAnimation para animar a opacidade:

let layer = CALayer()
layer.opacity = 0.0
let animation = CABasicAnimation(keyPath: "opacity")
animation.fromValue = 0.0
animation.toValue = 1.0
animation.duration = 1.0
layer.add(animation, forKey: "fadeIn")
layer.opacity = 1.0