
-
Novidades do Xcode 26
Descubra os avanços mais recentes em produtividade e desempenho no Xcode 26. Saiba como usar LLMs (grandes modelos de linguagem) no seu fluxo de trabalho de desenvolvimento. Explore os aprimoramentos na edição e na depuração, o desempenho melhor e as ferramentas de teste, além do Swift Build, o mecanismo de sistema de compilação de código aberto usado pelo Xcode.
Capítulos
- 0:00 - Introdução
- 0:49 - Otimizações
- 1:42 - Espaço de trabalho e edição
- 10:37 - Inteligência
- 17:47 - Depuração e desempenho
- 27:50 - Compilações
- 30:15 - Teste
- 36:10 - Conclusão
Recursos
- Analyzing CPU usage with the Processor Trace instrument
- Enabling enhanced security for your app
- Measuring your app’s power use with Power Profiler
- Understanding and improving SwiftUI performance
- Xcode updates
Vídeos relacionados
WWDC25
- Conheça o novo visual dos ícones de apps
- Crie ícones com o Icon Composer
- Grave, reproduza e revise: automação de interface com o Xcode
- Monitore e otimize o consumo de energia do seu app
- Novidades do Swift
- Novidades do SwiftUI
- Otimize o desempenho da CPU com o Instruments
- Otimize o desempenho do SwiftUI com o Instruments
- Sessão prática de codificação: explore recursos de localização no Xcode
WWDC24
Tech Talks
-
Buscar neste vídeo...
Olá. Meu nome é Eliza. Trabalho com o Swift Previews. E eu sou o Chris. Trabalho com o Xcode. Desenvolver bons apps dá trabalho, seja escrever código, explorar e criar protótipos de novos recursos, depurar, melhorar o desempenho e muito mais. Vamos compartilhar algumas das melhorias no Xcode este ano para ajudar no desenvolvimento do seu app. Vamos começar com otimizações no tamanho e desempenho do download do Xcode. Depois, vamos ver as melhorias no espaço de trabalho e no editor de código-fonte, além de testar novos recursos interessantes de inteligência de código. Em seguida, Chris falará sobre novos recursos de desempenho, depuração e compilações e encerrará abordando atualizações em testes. Vamos começar com otimizações. Nos últimos anos, temos trabalhado para reduzir o tamanho do Xcode para você criar suas ferramentas ainda mais rápido e baixar só os componentes de que precisa. Neste ano, o Xcode está 24% menor. Os tempos de execução do simulador não são mais compatíveis com Intel por padrão, e o kit de ferramentas do Metal só será baixado se o projeto precisar. Neste ano, o Xcode tem um tamanho de download menor do que o Xcode 6 em 2014. Otimizamos a entrada de texto no Xcode, melhorando a latência de digitação em algumas expressões complexas em até 50%.
Também otimizamos muito o desempenho de carregamento do Xcode. Agora é 40% mais rápido carregar um espaço de trabalho. Para projetos grandes, isso faz muita diferença. Isso resulta em atualizações no espaço de trabalho e na edição. Foram feitas várias melhorias no editor de fontes do Xcode este ano. Vamos começar com as abas do editor. Neste ano, o Xcode melhora o comportamento das abas do editor, tornando-as mais intuitivas. Assim como no Safari, posso abrir uma aba e decidir o que acessar usando esta nova página inicial. Também posso fixar uma aba para mantê-la fixa em um arquivo específico. Assim, posso saber exatamente quantas abas eu tenho. Pode ser só uma, uma para cada arquivo ou um conjunto selecionado.
Agora, vamos falar sobre a busca. Ao explorar um projeto desconhecido ou em que já trabalhou, é importante fazer buscas no seu código de forma eficaz. O Xcode tem um novo modo de busca chamado "busca de várias palavras", que usa técnicas de mecanismo de busca para encontrar grupos de palavras no projeto. Nesse modo de busca, posso inserir um conjunto de palavras. Por exemplo, estou tentando encontrar onde eu crio imagens redimensionáveis cortadas no meu projeto.
O Xcode agora encontrará todos os grupos dessas palavras próximas umas das outras nos documentos, classificando os documentos por relevância.
Os grupos podem abranger várias linhas, e os termos de busca podem aparecer em qualquer ordem, o que torna esse recurso eficiente.
Este ano, a acessibilidade deu um grande passo no Xcode. Agora você pode usar facilmente o controle por voz para escrever código do Swift e pronunciar o código exatamente como o lê em voz alta. Nesse modo, o controle por voz entende a sintaxe do Swift. Ele descobrirá onde os espaços devem estar, se as expressões correspondem a operadores ou devem ser maiúsculas e assim por diante. Veja por conta própria o quanto isso é incrível. Com o Modo Swift para Controle por Voz, posso navegar e editar meu código do Swift falando com o Mac. Vamos usá-lo para adicionar um campo ao inspetor de ponto de referência para o continente onde ele fica.
"start listening" "Swift mode" "Select labeled content" "Four" "Go to the end of the line" "New line, new line" "if let continent equals landmark dot continent open brace" "New line" "labeled content paren quote continent quote comma value colon continent" "correct quote continent" "One" "stop listening". O campo continent aparece perto da parte inferior da prévia. Não toquei no teclado. Agora, vamos falar sobre a iteração no código. O uso de prévias é um ótimo jeito de iterar rapidamente o código da interface. Este ano, apresentamos uma nova macro chamada Playground, que você pode usar para iterar rapidamente qualquer código. Assim como nas prévias, você pode adicionar um playground alinhado no documento. Os resultados da execução do código aparecerão na própria aba na tela. Vou fazer uma demonstração. Notei que há uma falha no app Landmarks, em que os pontos de referência aparecem no lugar errado no mapa. Vou usar um playground para analisar a struct Landmark e tentar descobrir o que está acontecendo.
Importar o módulo Playgrounds me dá acesso à macro Playground.
Vamos carregar um ponto de referência de exemplo para examinar os dados dele.
Na tela, vejo uma entrada para cada expressão no meu playground. Só tenho uma, que é a estrutura do ponto de referência para o Grand Canyon, e posso ver os valores de cada propriedade dele. Alguns tipos de propriedade têm um ícone de Visualização Rápida. Vamos examinar melhor a propriedade coordenada. Isso está estranho... O Grand Canyon não deveria estar dentro de uma cidade. Posso adicionar outra expressão ao meu playground para obter mais informações sobre a região desse ponto de referência. Conforme modifico o playground, as expressões nele são executadas novamente e a tela é atualizada automaticamente.
O Grand Canyon definitivamente não fica na China. Vamos descobrir o que está acontecendo. Ao carregar pontos de referência de um arquivo, usamos uma expressão regular para analisar as coordenadas de localização em uma string. Esta é a expressão regular que estamos usando. Talvez haja um problema fazendo nossas coordenadas serem analisadas incorretamente. Vamos investigar isso em outro playground. Adicionar outro playground abre uma nova aba na tela.
Vamos adicionar código a esse playground.
Vou chamar a função onde essa expressão regular é definida.
Estou usando uma string de entrada de exemplo e extraindo resultados computados em variáveis locais para facilitar a análise. Alguns tipos, como resultados de correspondência de expressão regular, têm visualizações personalizadas na tela. Aqui, vejo que o Xcode realça o intervalo de correspondência na string original. O intervalo de correspondência mostra que houve um problema ao capturar o sinal de menos. Agora a falha faz sentido, já que a longitude negativa teria sido analisada como um número positivo, colocando o Grand Canyon no lugar errado.
Vou consertar a expressão. Se você observar o playground na tela enquanto faço isso, verá que os resultados são atualizados imediatamente. Na visualização, vejo agora que o sinal de menos está incluído no intervalo correspondente pela expressão regular.
Voltando para o playground original, vejo que o Grand Canyon agora está no lugar certo. Esses são os Playgrounds. Eles são ótimos para entender o código existente e testar novas ideias. A nova macro #Playground está sendo transformada em código aberto para levar a experiência para a escrita dos desenvolvedores do Swift em outras plataformas. Confira a publicação nos fóruns do Swift e participe da conversa. Agora vamos falar sobre ícones. O Icon Composer é um novo app que vem com o Xcode 26. Com o Icon Composer, você pode criar ícones sofisticados, multicamadas e lindos que funcionam em várias plataformas e versões de software. Nos últimos anos, facilitamos a criação de ícones para todas as plataformas. Neste ano, os ícones não diferem só dependendo da plataforma para a qual você está criando. Agora eles podem ter vários modos, incluindo escuro e colorido, no iOS, iPadOS e macOS. E têm um novo visual para watchOS também.
Agora, é possível fazer tudo isso em um só arquivo usando o Icon Composer.
Você pode aproveitar todos os nossos efeitos de material e adicionar propriedades dinâmicas às camadas, como desfoque, sombra, realces especulares e translucidez. A ferramenta também é ótima para criar ícones planos compatíveis com sistemas operacionais anteriores, sites ou qualquer outro lugar.
Para saber sobre os ícones de apps e como usar o Icon Composer, confira "Conheça o novo visual dos ícones de apps" e "Crie ícones com o Icon Composer". ótima ideia disponibilizar seu app para mais usuários no mundo todo. Disponibilizar idiomas diferentes ajuda as pessoas a usarem seu app com naturalidade. Com os catálogos de strings, a localização pode ser muito fácil. Os catálogos de strings tiveram melhorias incríveis este ano para facilitar a vida de desenvolvedores e tradutores. Para desenvolvedores, adicionamos símbolos Swift com segurança de tipo para strings localizadas. Os desenvolvedores que querem controlar melhor as strings podem defini-las no catálogo de strings, que agora produz símbolos Swift acessíveis no código. Esses símbolos até aparecem como sugestões de preenchimento automático. Para ajudar os tradutores, os catálogos de strings podem gerar automaticamente comentários que descrevem o contexto da string.
O Xcode consegue isso analisando de forma inteligente onde e como uma string localizada é usada no seu projeto. Depois, ele gera comentários usando o modelo no dispositivo.
Para saber mais sobre catálogos de strings, confira a sessão prática de codificação "Explore recursos de localização no Xcode". Isso nos leva ao próximo tópico: inteligência. O Xcode receberá mais recursos novos e interessantes de inteligência. Ele agora pode usar grandes modelos de linguagem, como o ChatGPT, para ajudar na programação. Você pode fazer perguntas gerais sobre o Swift, como: "Fale mais sobre concorrência no Swift".
Devido à integração com o Xcode, o modelo pode analisar seu código e responder a perguntas específicas sobre seu projeto ou fazer alterações em seu nome.
Além disso, incluíremos um menu prático e leve que você pode usar para aplicar alterações automaticamente ao código selecionado. Ao abrir as ferramentas de codificação, você tem acesso rápido a ações comuns ou pode digitar uma consulta personalizada no campo de texto. Vejamos esses recursos com mais detalhes. Este app tem uma visualização que mostra minhas coleções de pontos de referência favoritos, mas não conheço bem o código e não sei onde é implementado. Então vou perguntar ao Xcode.
O Xcode envia o contexto do projeto para o modelo e responde com uma explicação que descreve os arquivos de origem relevantes e o que eles fazem. O modelo também pode pedir mais informações ao Xcode sobre o contexto adicional necessário enquanto gera uma resposta.
O botão de informações na transcrição mostra o contexto que o Xcode enviou.
A resposta contém links para você acessar rapidamente qualquer arquivo mencionado. Este parece ser o certo. É um ótimo jeito de explorar uma base de códigos desconhecida. Agora vamos adicionar um recurso. Queremos que o Xcode adicione avaliações às coleções de pontos de referência.
Estou usando um caractere @ para fazer referência direta a um símbolo a ser modificado pelo modelo.
Ao digitar o símbolo @ no prompt, posso referenciar símbolos, arquivos de origem ou problemas no meu projeto que a resposta deve focar. Isso pode ser útil para fazer mudanças específicas. Posso até anexar arquivos para que a consulta possa referenciá-los. As imagens são úteis, já que muitos modelos de linguagem grandes geram código só com um esboço de uma interface. As alterações automáticas de contexto e código resolvem a questão automaticamente, mas você pode ter mais controle, se quiser. Esse controle define se o Xcode inclui informações sobre seu projeto com a consulta. Se você estava fazendo uma pergunta geral sobre o Swift, por exemplo, talvez opte por desativar o contexto do projeto. Na maioria das vezes, é melhor deixar ativado. Esse controle permite que você defina se as mudanças sugeridas no código serão aplicadas automaticamente. Se estiver desativado, você poderá revisar cada alteração antes de decidir aplicá-la. Parece que a resposta está completa e todas as alterações foram feitas no meu projeto. Posso clicar para ver um resumo das alterações feitas. Parece que está bom. Posso digitar uma nova mensagem para continuar a conversa. Vamos pedir ao modelo para adicionar essa classificação à interface.
O modelo pode descobrir a que se refere, porque novas mensagens preservam o contexto de consultas e respostas anteriores.
Essa alteração parece boa.
Posso continuar fazendo mudanças no contexto das anteriores. Vamos brincar um pouco e mudar para onze.
Mais uma vez, o modelo sabe ao que me refiro.
Pronto. Agora temos onze estrelas! Por padrão, as alterações são aplicadas automaticamente ao seu código. O Xcode salva um snapshot do código antes de cada alteração ser aplicada para que você possa visualizá-las e desfazê-las com o histórico de modificações na visualização de conversa. Aqui posso examinar cada linha de código alterada durante cada etapa da conversa. Posso avançar ou retroceder no tempo para aplicar ou reverter conjuntos individuais de alterações. Neste caso, todas as mudanças estão certas, então vou cancelar o histórico de modificações.
Até agora, tenho usado o assistente de código para fazer alterações que afetam vários arquivos no meu projeto. Para me concentrar em uma seção específica de código, posso usar ferramentas de codificação no meu editor de código-fonte.
Vamos usar ferramentas de codificação para adicionar um playground e testar a estrutura de pontos de referência. Elas têm botões para ações rápidas que podem ser aplicados no meu código ou posso inserir uma consulta personalizada. Nesse caso, vamos selecionar a ação para gerar um playground. Como o modelo tem acesso ao contexto do código recém-gerado e do código existente, ele pode criar playgrounds que testam o código de maneiras interessantes. Agora temos um playground para inspecionar um exemplo de ponto de referência. Além de explicar ou modificar o código, o Xcode ajuda a corrigir problemas no meu código. Por exemplo, aqui há um erro em que uma visualização ForEach está sendo usada com um tipo não compatível com Identifiable. Este ano, foi lançada uma alternativa para corrigir isso, o assistente de codificação.
Como o modelo tem acesso à declaração de tipo e ao local onde o erro é detectado, ele pode descobrir qual arquivo precisa ser modificado para corrigir o erro. Neste caso, a solução foi adicionar um protocolo de conformidade a activity.swift.
E agora o erro está resolvido. O Xcode também é ótimo para corrigir outros problemas. Por exemplo, às vezes deixo avisos de descontinuidade no código porque não estão causando problemas imediatos. Agora, posso poupar tempo pedindo para o Xcode corrigi-los para mim. Há muitos jeitos de adicionar um modelo no Xcode. Primeiro, você pode ativar o ChatGPT com alguns cliques. Você receberá um número limitado de solicitações por dia e poderá usar sua conta do ChatGPT para fazer mais solicitações.
Para usar outro provedor, como o Anthropic, é só inserir sua chave de API e interagir com modelos como Claude 4 Opus e Sonnet. Você pode escolher quais modelos mostrar de cada provedor e marcar seus favoritos para acesso rápido. Também pode usar modelos locais executados no seu Mac ou rede privada com ferramentas como Ollama e LM Studio.
Adicione quantos provedores quiser nas preferências do Xcode. Após configurar um conjunto de modelos, você pode alternar rapidamente entre eles no assistente de codificação ao iniciar uma nova conversa. Vocês viram os novos recursos do espaço de trabalho e editor de código do Xcode e como usar a inteligência de código para aumentar a criatividade e a produtividade. Agora vou passar para o Chris, que vai falar sobre depuração e desempenho. Agradeço, Eliza! Detectar erros e melhorar o desempenho dos seus apps são etapas cruciais para oferecer uma ótima experiência no app. Este ano, temos algumas atualizações interessantes, começando com o depurador. A depuração de código concorrente em Swift recebeu ótimas melhorias de usabilidade no Xcode deste ano. Ao executar o código passo a passo dentro de uma tarefa Swift, o Xcode acompanha a execução de funções assíncronas, ainda que isso envolva troca de threads. A interface do depurador do Xcode agora também exibe IDs das tarefas. Por exemplo, a tarefa Swift atual é mostrada na visualização de pilhas de chamadas à esquerda e na anotação do contador de programa à direita. Na visualização de variáveis, você verá representações mais claras e legíveis de tipos relacionados à concorrência, como Tasks, TaskGroups e actors. Neste exemplo, é muito mais fácil ver as propriedades da variável Task, como sua prioridade e tarefas secundárias.
O Xcode 26 facilita a depuração de código concorrente no Swift. Para saber mais sobre concorrência no Swift, confira Novidades do Swift.
Se você já adicionou uma funcionalidade ao seu app que requer acesso a um recurso privado, como localização do usuário ou câmera, você pode ter visto seu app parar de rodar de repente no depurador devido a um erro de descrição de uso ausente. É necessário adicionar descrições de uso ao acessar recursos privados para que o sistema possa incluí-las em um prompt de autorização e mostrar ao usuário por que o app solicita acesso. O Xcode agora entende quando um app parou de funcionar devido a uma descrição de uso ausente e explica o que está faltando. Você pode acessar a documentação a partir da anotação para saber mais. Mas a forma mais rápida de corrigir o problema é usar o novo botão Add, adicionar, que levará diretamente ao editor de assinatura e recursos. O recurso necessário será adicionado automaticamente, pois o editor de assinatura e recursos no Xcode 26 permite a edição de muitos recursos que exigem descrições de uso para editá-los em um só lugar. O Xcode atualizará o arquivo Info.plist subjacente, os ajustes de compilação ou os direitos para você. Então tudo o que você precisa fazer é inserir sua descrição de uso. Em seguida, execute novamente e verifique se o recurso agora solicita permissão, conforme esperado. Instruments é uma ferramenta poderosa para analisar o desempenho dos seus apps e é fornecido como parte de cada instalação do Xcode. Para análise de CPU, o Instruments tem ferramentas avançadas, oferecendo opções para analisar o desempenho do seu código em hardware moderno com Apple Silicon. O Instruments usava ferramentas de profiling baseadas em amostragem para entender o uso da CPU, que são boas opções para analisar cargas de trabalho de longa duração. Mas o que significa uma análise de desempenho baseada em amostragem? Significa que a ferramenta faz amostragens da CPU periodicamente, assumindo que as pilhas de chamadas na amostra refletem proporcionalmentee o uso geral da CPU. A amostragem por si só é apenas uma aproximação da carga de trabalho completa e por isso é mais prática para análise de carga de trabalho de longa duração. Na ilustração, as seções laranjas de execução não foram capturadas pela amostragem, por exemplo. Os dispositivos com Apple Silicon mais recentes podem ter um Processor Trace, onde a CPU guarda detalhes sobre a execução do código, como os caminhos que segue e as instruções que acessa. A CPU transmite essas informações para uma área no sistema de arquivos para que possam ser analisadas com o instrumento Processor Trace.
Em vez de amostragem periódica, o Processor Trace coleta informações de cada decisão de ramificação de baixo nível da CPU, em todas as threads com pouca sobrecarga do tempo de execução. A linha do tempo do Processor Trace pode apresentar uma visualização de alta fidelidade do fluxo de execução. Diferente de outros profilers baseados em amostragem, que podem deixar de capturar trechos críticos do código entre intervalos de amostragem, essa ferramenta revela cada ramificação tomada e cada função chamada, incluindo o código gerado pelo compilador, como o gerenciamento de memória ARC no Swift. O Processor Trace é uma mudança fundamental na forma de medir o desempenho do software, coletando todas as chamadas de função, em todas as threads, com baixa sobrecarga. O Processor Trace foi lançado com o Xcode 16.3 e é compatível com dispositivos M4 e iPhone 16.
O Processor Trace é ótimo para entender a execução do código e onde o tempo da CPU está sendo gasto. Por outro lado, o instrumento CPU Counters atualizado ajudará a entender como seu código está interagindo com a CPU.
Essa ferramenta ajudará você na criação de otimizações de microarquitetura. CPU Counters usa modos predefinidos que agrupam contadores relacionados para uma abordagem guiada sobre como seu código é manipulado pela CPU. Esses modos incluem um modo geral CPU Bottlenecks, que é um bom ponto de partida para esse tipo de análise.
CPU Bottlenecks dividem a largura de banda sustentável de instruções da CPU em trabalho útil ou gargalos causados por uma das três razões gerais: a CPU precisava esperar as unidades de execução ou a memória ficarem disponíveis, ou a CPU não conseguia passar instruções com a devida rapidez, ou a CPU previu incorretamente trabalho futuro e precisou corrigir o ritmo.
Além da abordagem de análise de gargalos, os modos Instruction Characteristics e Metrics oferecem um uso mais tradicional dos contadores para obter contagens absolutas de consumo. Com eles, você pode se concentrar em ajustar sequências de instruções críticas analisando ramificações, comportamento de cache e operações numéricas.
CPU Counters inclui uma documentação detalhada para ajudar a entender o que os modos e contadores representam. Para saber mais sobre Processor Trace e CPU Counters, confira "Otimize o desempenho da CPU com o Instruments" O SwiftUI facilita ainda mais a criação de apps altamente interativos. Para a melhor experiência do usuário, desempenho é fundamental. Nas versões de sistemas operacionais deste ano, fizemos melhorias no desempenho do SwiftUI. Por exemplo, as listas podem ser atualizadas até 16 vezes mais rápido sem alterações adicionais no app. Mesmo com essas melhorias, seu app pode não ter o desempenho esperado e você pode querer descobrir por que as visualizações são atualizadas com frequência. Para ajudar nisso, o instrumento SwiftUI de última geração incluído no Xcode 26 captura informações detalhadas sobre as causas e efeitos das atualizações do SwiftUI. Isso ajuda a entender quando e por que suas visualizações são atualizadas. A linha do tempo mostra quando o SwiftUI está executando tarefas na thread principal e as atualizações individuais de visualizações demoram, colocando seu app em risco de travamentos ou lentidões. O resumo View Body Updates informa quantas vezes cada visualização é atualizada no seu app. Se o número de atualizações em um dos modos de visualização for muito maior que o esperado, abra o gráfico de causa e efeito para saber o motivo.
Para saber mais sobre as melhorias de desempenho do SwiftUI, confira "Novidades do SwiftUI". Para obter mais informações sobre como usar o instrumento SwiftUI, confira "Otimize o desempenho do SwiftUI com o Instruments". As pessoas adoram apps nos quais podem confiar, e uma parte crucial dessa confiabilidade é uma boa duração da bateria. Ao depurar seu app, talvez você tenha notado um alto impacto energético no Xcode, indicando um possível problema. Mas encontrar a causa principal pode ser difícil. Nessas situações, você precisa poder executar seu app, reproduzir o problema e registrar métricas de energia. O Instrument Power Profiler é a ferramenta perfeita para isso. Ele permite analisar o desempenho do seu app e registrar métricas de energia que podem ser visualizadas depois. A trilha do Power Profiler mostra o uso de energia do sistema, correlacionado com os estados térmico e de carregamento do dispositivo, ajudando a identificar picos de energia inesperados. A trilha de processo mostra o impacto que o aplicativo tem em vários subcomponentes de energia do dispositivo, como CPU, GPU, monitor e rede. O Power Profiler é compatível com dois modos de rastreamento: Gravação com cabo, com o Instruments conectado diretamente ao dispositivo, e gravação passiva, em que o rastreamento pode ser iniciado no dispositivo através dos Ajustes do Desenvolvedor, sem conexão via cabo. O rastreamento depois pode ser importado para o Instruments para análise. Ao registrar cargas de trabalho estáveis, você pode usar o instrumento Power Profiler para observar como sua escolha de algoritmos e APIs afeta a sustentabilidade de uma carga de trabalho. Saiba mais na sessão "Monitore e otimize o consumo de energia do seu app". Embora o Instruments seja ótimo para analisar o desempenho do seu app durante o desenvolvimento, o Xcode Organizer permite monitorar o impacto de energia e desempenho dos apps em produção por meio de métricas e diagnósticos.
O Organizer no Xcode 16 agora tem um recurso chamado Trending Insights para os diagnósticos de Disk Write com um ícone de chama na lista lateral. Ele ajuda a identificar problemas cujo impacto aumentou e aos quais você deve prestar atenção. Na versão deste ano do Xcode, fomos além e incluímos os Trending Insights nos diagnósticos de Hang e Launch, onde o ícone de chama destaca os tempos que estão seguindo uma tendência negativa. Além disso, a área Insights agora fornece clareza sobre a tendência, traçando o aumento nas últimas 5 versões do app. Isso não apenas fornece um ponto de partida para otimizações de desempenho, mas também ajuda a entender onde pode estar o código que levou ao aumento geral do impacto.
E agora que você sabe o que priorizar, pode compartilhar um relatório de diagnóstico com seus colegas usando o compartilhamento de URL.
Outra área do Organizer para ajudar você a entender o desempenho do seu app em todas as versões são as métricas. As métricas foram ampliadas no Xcode 26 com a adição de recomendações. As recomendações de métricas comparam as métricas do seu app com outras fontes, incluindo apps semelhantes e dados históricos do seu app, para fornecer uma referência importante e entender o desempenho do seu app em toda a base de usuários. Neste exemplo, o tempo de inicialização do nosso app é medido em cerca de 564 milissegundos. Com base em métricas de apps semelhantes, o Xcode recomenda que o tempo de inicialização fique perto de 425 milissegundos, o que nos dá uma meta clara. Este ano, as recomendações de métricas estão disponíveis para a métrica de tempo de inicialização. Apple permitirá recomendações para outras métricas ao longo do tempo. Em seguida, vamos falar sobre o sistema de compilação do Xcode. No Xcode 16, apresentamos os módulos compilados explicitamente, ativados para código C e Objective-C. No Xcode 26, agora estamos ativando, por padrão, os módulos compilados explicitamente para código Swift. Com os módulos explícitos, o Xcode divide o processamento de cada unidade de compilação em três fases: análise, compilação dos módulos e compilação do código-fonte original. Essa separação dá ao sistema de compilação um melhor controle das tarefas de compilação dos módulos para otimizar o pipeline de compilação.
A compilação de módulos explícitos melhora a eficiência e confiabilidade da compilação, com compartilhamento mais preciso e determinístico dos módulos. Também melhora a velocidade de depuração do código Swift, pois o depurador pode reutilizar os módulos já compilados. Para saber mais, confira o vídeo "Demystify explicitly built modules". Neste ano, a Apple disponibilizou o Swift Build como código aberto, um mecanismo de compilação poderoso usado pelo Xcode e Swift Playground, além do processo de compilação interno dos próprios sistemas operacionais da Apple. Estamos trabalhando para incorporar o Swift Build ao Swift Package Manager, para unificar a experiência de compilação nas cadeias de ferramentas de código aberto do Swift e Xcode. Também estamos adicionando suporte para todas as plataformas compatíveis com o ecossistema Swift, incluindo Linux, Windows, Android e muito mais. Você pode visualizar essa nova implementação nos seus próprios pacotes usando a opção build-system da ferramenta de linha de comando do Swift. Ou pode ver suas alterações no Xcode usando as instruções no repositório do Swift Build.
Pela primeira vez, a comunidade pode contribuir para a implementação do mecanismo de compilação que propulsiona o Xcode e o ecossistema Swift. Para saber mais sobre o Swift Build ou participar do desenvolvimento, confira o repositório no GitHub. No mundo interconectado de hoje, a segurança é um requisito cada vez mais crítico para apps. O novo recurso de segurança avançada do Xcode oferece aos seus apps as mesmas proteções usadas nos apps da Apple, como a autenticação de ponteiros. Você pode ativar esses ajustes de segurança no seu app adicionando o recurso Enhanced Security no editor Signing and Capabilities. É recomendado ativá-las para aplicativos com uma superfície de ataque significativa, como redes sociais, mensagens, visualização de imagens e navegação. Veja mais detalhes sobre segurança avançada na documentação do Apple Developer. A seguir, vamos falar sobre testes. Os testes de interface do Xcode tiveram uma atualização significativa este ano. A gravação de automação da interface do usuário foi aprimorada com um sistema de geração de código completamente novo. Isso é bom, pois eu queria implementar um teste de interface para o app Landmarks e testar a interface de edição de coleções. Vamos usar o recurso de gravação de automação da interface do Xcode 26 para criar meu teste. Já tenho um destino de teste configurado para este projeto e um novo método de teste para preencher. Ao colocar o cursor no corpo do método de teste, o Xcode revela um botão Start Recording na margem lateral do editor. Podemos apertar esse botão para iniciar uma sessão de gravação. Então, o Xcode solicita a confirmação e me informa que o arquivo ficará no modo somente leitura até que a gravação seja concluída.
Agora, ele prepara a sessão. Ele inicia o app no simulador em modo de gravação.
Agora posso realizar as interações exatas que quero que meu teste realize. Vou começar acessando a tela Collections.
E observe como o Xcode está adicionando código ao meu método de teste para cada uma das minhas interações. Muito legal!
Agora vou adicionar uma nova coleção e alterar para o modo de edição.
Editar uma coleção é o principal objetivo deste teste. Então vou interagir com cada um dos campos nesta tela para editar o título e a descrição e adicionar um ponto de referência.
Parece ótimo!
Isso conclui nossas etapas para adicionar e editar uma nova coleção. Finalmente, como uma simples verificação da nossa edição, vamos selecionar o ponto de referência que adicionamos à coleção e navegar até os detalhes dele.
Isso é tudo para este teste de interface. No editor de código-fonte, vou clicar em Stop Recording na lateral do editor para encerrar a sessão de gravação de teste.
Agora vamos usar o diamante de teste para ver nosso teste em ação.
Observe como o Xcode gerou um código conciso para todas as nossas interações. Além disso, temos várias opções de identificador para muitos elementos.
Podemos usá-las para ajustar como um elemento é identificado nos nossos testes. É muito mais fácil fazer um novo teste de interface quando você pode simplesmente executar as interações no app que o teste deve executar.
E esse é um exemplo de gravação de um teste de interface no Xcode 26. O Xcode faz todo o trabalho pesado de converter suas interações no melhor código de teste possível. Mas a geração de código de teste de interface não para por aí. A mesma geração de código foi integrada ao Automation Explorer nos relatórios de teste.
Aqui tenho um relatório de teste contendo uma falha de teste de interface. Parece que o teste tentou tocar em um TextField, mas não conseguiu encontrar nenhum com o identificador especificado. À direita, o Automation Explorer contém uma gravação de vídeo completa do teste. Podemos repetir todo o teste em tempo real, se precisarmos. O quadro de vídeo atual está mostrando o ponto em que a falha ocorreu. Podemos ver um campo de descrição na interface do app. O mais incrível sobre o teste de interface é que o Xcode registra atributos de cada elemento identificável durante a execução de um teste. Depois podemos inspecionar elementos no Automation Explorer. Agora vamos analisar o elemento description. Nos detalhes do elemento, há o identificador correto, mas o tipo dele é Text View, não um Text Field, como o teste esperava. Parece que a interface do app foi atualizada para aceitar descrições de várias linhas. O trecho de código correto para identificar esse elemento foi gerado automaticamente. Basta copiar o código da janela e atualizar nosso teste para fazer a correção.
E essa é a experiência aprimorada de teste de interface. Além da gravação de interface aprimorada, o Xcode melhorou o suporte a dispositivos para interações automatizadas de hardware, incluindo teclado físico e pressionamentos de botão de hardware. Juntos, esses aprimoramentos simplificam muito o teste de interface. Então, experimente, adicione alguns testes de interface ao seu projeto e aproveite o Xcode Cloud para testar de forma autônoma. Para saber mais, confira "Grave, reproduza e revise: automação de interface com o Xcode".
O teste de interface é ótimo para avaliar a capacidade de resposta da interface usando a API Measure. No Xcode 26, expandimos a API adicionando a métrica XCTHitchMetric para que agora você possa detectar travamentos no seu app durante os testes. Por exemplo, como mostrado, você pode usar XCTHitchMetric para testar o desempenho da animação de rolagem do app.
O XCTHitchMetric registra várias métricas para o desempenho do travamentos do app, como Hitch Time Ratio. Hitch Time Ratio representa o tempo total em que seu app apresentou travamentos durante o período analisado do teste. Para saber mais sobre travamentos, confira "Explore UI animation hitches and the render loop".
Outro modo fazer testes de regressão do seu código é com as Runtime API Checks. O Xcode deste ano traz mais Runtime API Checks para testes, configuradas no editor de configuração do plano de teste. Os testes mostram problemas no tempo de execução de frameworks e destacam problemas de thread com o Thread Performance Checker.
O Thread Performance Checker detecta problemas de thread, como inversões de prioridade e trabalho que não é da interface na thread principal. Aqui, o Thread Performance Checker está mostrando uma API que não deve ser chamada na thread principal se quisermos manter o app responsivo.
Test Plans permite a falha automática de um teste se as verificações de API de tempo de execução identificarem problemas. Agora seus testes podem garantir que o código continua seguindo as práticas recomendadas da API. Essas são apenas algumas das novidades e recursos interessantes deste ano. O Xcode 26 ajuda a aumentar sua eficiência ao escrever código, pode orientar na criação de recursos e oferece novas ferramentas que facilitam a compatibilidade com mais plataformas e idiomas. E ele pode ajudar a depurar seu código, inspecionar o desempenho do seu app no mundo real ou testar suas interfaces. Baixe o Xcode 26 para criar, compilar e depurar seu código. E use o Xcode Cloud para testar e distribuir seu app. Inclua suas dúvidas nos Fóruns para desenvolvedores. Para saber mais, confira nossas notas de lançamento em developer.apple.com. Agradecemos sua participação.
-
-
5:25 - Using Playgrounds
import Playgrounds
-
5:30 - Using Playgrounds
#Playground { }
-
5:37 - Using Playgrounds
let landmark = Landmark.exampleData.first
-
6:10 - Using Playgrounds
let region = landmark?.coordinateRegion
-
6:33 - Regex to scan for floating point numbers
func scanForFloatingPointNumbers() -> [Regex<Substring>.Match] { return self.matches(of: /[0-9]*[.][0-9]+/) }
-
6:42 - Adding another playground
#Playground { }
-
6:49 - Adding another playground
let string = "lon: -113.16096, lat: 36.21904" let longitude = string.scanForFloatingPointNumbers().first let latitude = string.scanForFloatingPointNumbers().last
-
7:33 - Updated regular expression
func scanForFloatingPointNumbers() -> [Regex<Substring>.Match] { return self.matches(of: /[+-]?[0-9]*[.][0-9]+/) }
-
18:49 - Checking for camera authorization
// Checking for camera authorization var isCameraAuthorized: Bool { get async { let status = AVCaptureDevice.authorizationStatus(for: .video) // Determine if the user previously authorized camera access. var isAuthorized = status == .authorized // If the system hasn't determined the user's authorization status, // explicitly prompt them for approval. if status == .notDetermined { isAuthorized = await AVCaptureDevice.requestAccess(for: .video) } return isAuthorized } }
-
34:40 - Test scrolling animation performance with XCTHitchMetric
// XCTHitchMetric func testScrollingAnimationPerformance() throws { // Custom performance test measure options. let measureOptions = XCTMeasureOptions() measureOptions.invocationOptions = .manuallyStop // App being tested. let app = XCUIApplication() // Launch app and get reference to scroll view. app.launch() let scrollView = app.scrollViews.firstMatch measure(metrics: [XCTHitchMetric(application: app)], options: measureOptions) { scrollView.swipeUp(velocity: .fast) stopMeasuring() scrollView.swipeDown(velocity: .fast) } }
-
-
- 0:00 - Introdução
Conheça as melhorias do Xcode para desenvolvedores de apps, entre elas, otimizações de tamanho e desempenho do download, melhorias no espaço de trabalho e no editor de código-fonte, novos recursos de inteligência de código, ferramentas de depuração e desempenho, atualizações de compilação e melhorias em testes.
- 0:49 - Otimizações
Este ano, o Xcode ganhou otimizações significativas, resultando em um tamanho de download 24% menor. Isso foi possível graças à remoção do suporte padrão a Intel nos tempos de execução do Simulador e ao download condicional do conjunto de ferramentas do Metal. A entrada de texto de expressões complexas melhorou até 50%, e o desempenho de carregamento da área de trabalho aumentou em 40%, beneficiando especialmente projetos grandes.
- 1:42 - Espaço de trabalho e edição
A versão do Xcode deste ano traz melhorias significativas no editor de código-fonte, aprimorando a experiência do usuário e a produtividade. As abas do editor agora apresentam uma nova página inicial, semelhante ao Safari, e os usuários podem fixar abas, aumentando o controle sobre o espaço de trabalho. A funcionalidade de busca foi renovada com a introdução da pesquisa de várias palavras. Esse novo modo usa técnicas de mecanismo de busca para encontrar clusters de palavras no projeto, permitindo localizar segmentos de código específicos com mais eficiência, mesmo que os termos de pesquisa apareçam em ordem diferente ou em várias linhas. Também houve grande avanço em acessibilidade. O Xcode agora é compatível com o Modo Swift para Controle por Voz, permitindo escrever e pronunciar o código Swift naturalmente. O Controle por Voz entende a sintaxe do Swift, inserindo automaticamente espaços e formatando códigos de modo correto, o que o torna uma ferramenta eficiente para desenvolvedores com necessidades de acessibilidade ou que preferem usar comandos de voz. Além dessas melhorias principais, o Xcode introduz uma nova macro chamada #Playground, que permite iterar rapidamente qualquer código. Você pode adicionar playgrounds em linha em documentos; os resultados da execução do código aparecem em uma aba separada, fornecendo feedback em tempo real à medida que o código é modificado. Um novo app chamado Icon Composer vem com o Xcode, simplificando o processo de criação de ícones em várias camadas que funcionam em diversas plataformas e modos, como escuro e colorido.
- 10:37 - Inteligência
O Xcode 26 integra grandes modelos de linguagem, como o ChatGPT, para aprimorar o suporte de programação. Agora, você pode fazer perguntas gerais sobre o Swift ou perguntas específicas sobre seus projetos. O modelo fornece explicações, faz alterações ou gera código. Um novo menu leve permite que você aplique alterações automaticamente ao código selecionado. O modelo também pode analisar o contexto de todo o projeto, permitindo que ele compreenda referências e faça modificações relevantes. Você controla se o sistema inclui o contexto do projeto e se aplica as alterações de código automaticamente. O Xcode mantém instantâneos do código antes de cada alteração, facilitando a revisão e a reversão. Além da explicação e modificação do código, agora o Xcode pode gerar playgrounds, corrigir erros e resolver avisos de descontinuidade. Você pode escolher entre vários provedores de modelo de linguagem, inclusive o ChatGPT, o Anthropic ou modelos locais, e alternar entre eles facilmente no Xcode.
- 17:47 - Depuração e desempenho
O novo Xcode apresenta melhorias significativas na depuração e na análise de desempenho para desenvolvedores de apps. A depuração do código de simultaneidade do Swift está mais simplificada, já que o Xcode acompanha a execução em funções assíncronas, exibe IDs de tarefas e fornece representações fáceis de ler dos tipos de simultaneidade. O Xcode agora também identifica automaticamente quando um app é interrompido por falta de uma descrição de uso para acesso a recursos privados, disponibilizando um botão Adicionar direto no editor de assinatura e recursos para corrigir o problema. Para análise de desempenho, há um Instruments atualizado. O instrumento Processor Trace, introduzido no Xcode 16.3 e compatível com dispositivos M4 e com o iPhone 16, captura todas as decisões de ramificação de baixo nível da CPU, fornecendo uma visualização de alta fidelidade do fluxo de execução. O instrumento CPU Counters também foi substancialmente atualizado. Ele passou a usar modos predefinidos que ajudam a entender como seu código interage com a CPU, permitindo otimizações de microarquitetura e identificação de gargalos. O Instruments também inclui novos recursos para SwiftUI, permitindo acompanhar as atualizações de visualização e identificar os gargalos de desempenho. O instrumento Power Profiler ajuda a otimizar a duração da bateria registrando métricas de energia e visualizando o uso de energia do sistema e o impacto do app em vários componentes do dispositivo. O Xcode Organizer foi atualizado com o Trending Insights expandido, que destaca problemas crescentes de desempenho, como travamentos e gravações em disco em diversas versões do app. As métricas foram ampliadas para incluir recomendações, que comparam o desempenho do app com dados históricos e de apps semelhantes, fornecendo metas claras de melhoria, como a otimização do tempo de inicialização.
- 27:50 - Compilações
O Xcode 26 melhora a eficiência da compilação ao ativar, por padrão, os módulos compilados explicitamente, aumentando a confiabilidade e a velocidade de depuração. O Swift Build, o mecanismo de compilação de código aberto, está sendo integrado ao Swift Package Manager para suporte multiplataforma e contribuições da comunidade. O Xcode também recebeu recursos de segurança reforçada para apps, semelhantes aos usados nos apps da Apple, para reforçar a proteção contra ataques.
- 30:15 - Teste
Os recursos de teste de interface do Xcode também foram significativamente aprimorados. O novo sistema de geração de código otimiza a gravação de automação da interface, permitindo criar testes com mais eficiência. Usando o recurso de gravação, você pode interagir com o app no Simulador, e o Xcode gera automaticamente um código de teste conciso para cada ação. Esse recurso simplifica e facilita o processo de criação de testes da interface. O Automation Explorer em relatórios de teste auxilia ainda mais a depuração, fornecendo gravações de vídeo e ferramentas de inspeção de elementos. O Xcode também inclui suporte ampliado para medir a capacidade de resposta da interface, detectar problemas e executar verificações de API de tempo de execução, garantindo que o código siga as práticas recomendadas e permaneça responsivo e estável.
- 36:10 - Conclusão
O Xcode 26 melhora a eficiência da codificação, a criação de recursos e o suporte a idiomas. Ele auxilia na depuração, na inspeção de desempenho e nos testes de interface. Você pode baixar o Xcode 26 e utilizar o Xcode Cloud para testes e distribuição.