00:00:00A maioria dos modelos de IA para programação tem um grande problema: eles simplesmente não dão conta do Swift.
00:00:06Já vimos aquelas demonstrações incríveis de agentes criando web apps e ferramentas em JavaScript em segundos,
00:00:11mas assim que você pede para mexerem em código Swift, tudo desmorona rapidinho.
00:00:16Agora, por que os modelos mais inteligentes do mundo estão falhando no desenvolvimento iOS?
00:00:22É isso que vamos descobrir no vídeo de hoje.
00:00:25Vou colocar os principais agentes de programação no mesmo desafio de criar um app em Swift para ver
00:00:30quais modelos realmente aguentam o tranco e quais são apenas especialistas em desenvolvimento web.
00:00:35Vou dar um pequeno spoiler: um desses modelos passou no teste com nota máxima.
00:00:36Você verá qual é mais adiante neste vídeo.
00:00:40Vai ser bem divertido, então vamos lá.
00:00:43Primeiro de tudo, vamos abordar a questão central.
00:00:50Por que os modelos de IA são ruins no desenvolvimento em Swift?
00:00:52E para ser claro, isso não é apenas uma observação minha.
00:00:56Um estudo intitulado “Avaliando Grandes Modelos de Linguagem para Geração de Código - Um Estudo Comparativo”
00:00:59sobre Python, Java e Swift descobriu que em todos os modelos testados, incluindo GPT e Claude,
00:01:05o desempenho em Swift foi consistentemente inferior ao de Python ou Java.
00:01:12E o motivo se resume a três gargalos principais que prejudicam a IA quando ela toca no ecossistema da Apple.
00:01:17Primeiro, há a lacuna de dados.
00:01:22Enquanto a web está inundada de código aberto em JavaScript e Python, grande parte do código profissional em Swift
00:01:24está guardada em repositórios privados ou comerciais.
00:01:25Segundo, temos a volatilidade das APIs.
00:01:31A Apple é famosa por se mover rápido e mudar tudo no caminho.
00:01:36O SwiftUI e os modelos de concorrência do Swift mudaram mais nos últimos três anos do que alguns padrões web em uma década.
00:01:38E como a maioria dos modelos de IA tem uma data limite de conhecimento, eles costumam tentar escrever código Swift
00:01:42usando regras desatualizadas que simplesmente não funcionam na versão mais recente do Xcode.
00:01:47E, finalmente, há o viés de benchmarking.
00:01:49A maioria dos modelos que testaremos hoje, como o Qwen ou o Grok, são treinados para testes específicos.
00:01:54Eles são otimizados para passar em benchmarks massivos como o HumanEval, que são quase inteiramente focados em Python e lógica web.
00:01:59Como não existem muitos benchmarks de peso para UIs complexas de iOS, esses modelos simplesmente não foram avaliados
00:02:02em sua capacidade de construir um app funcional.
00:02:08Então, escolhi alguns dos modelos de IA mais populares e dei a cada um deles exatamente o mesmo prompt.
00:02:13Pedi para criarem um clone simples do Tinder usando Swift chamado Dogtinder, onde
00:02:16são apresentados diferentes cachorros usando a API Dog CEO.
00:02:21pode abrir uma interface de chat para trocar mensagens engraçadas com o cachorro correspondente.
00:02:25So I chose some of the most popular AI coding models out there and I gave each one of them
00:02:30A ideia é ser fofo e simples o suficiente para um agente completar, mas também envolve
00:02:32alguns desafios interessantes, como criar uma funcionalidade de animação de deslize em Swift nativo.
00:02:38Para os testes em si, vamos começar do pior desempenho até chegar ao melhor.
00:02:43E na lanterninha, infelizmente, temos o novo modelo Qwen 2.5-Coder.
00:02:47O Qwen tem anunciado este novo modelo como uma alternativa de código aberto a pesos pesados como o Kimi ou o Claude,
00:02:52com um tamanho menor, mas maior desempenho.
00:02:58Embora isso possa ser verdade para web apps, infelizmente não se confirmou no desafio Swift.
00:03:03Sempre que possível, tentei usar as ferramentas de CLI próprias disponíveis para cada modelo,
00:03:07e neste caso, usei a ferramenta CLI do Qwen para realizar o desafio.
00:03:09Assim que terminou de gerar o código, não consegui abrir o arquivo de projeto que o Qwen produziu.
00:03:15Então, pedi para ele corrigir o erro apresentado ao tentar abrir o arquivo.
00:03:20Mesmo assim, o Qwen não conseguiu corrigir e me deu um arquivo README longo explicando
00:03:25como construir o projeto do zero manualmente e depois copiar os arquivos, o que não é o que eu quero fazer,
00:03:32pois isso derrotaria o propósito do desafio.
00:03:37Como vocês verão depois, notei que alguns modelos tiveram muita dificuldade em produzir a coleção final de arquivos
00:03:42que pudéssemos abrir com sucesso logo de primeira.
00:03:46Para casos como o do Qwen, decidi dar um desafio mais fácil.
00:03:48Criei um novo projeto de app iOS no Xcode manualmente e decidi que seria uma boa hora para testar
00:03:53a nova funcionalidade de inteligência de código que agora vem no Xcode.
00:03:58Isso é bem legal porque finalmente o Xcode tem seu próprio assistente de IA.
00:04:03Conectei-o à minha conta do OpenRouter, escolhi o modelo Qwen 2.5-Coder no menu
00:04:08e tentei o desafio novamente.
00:04:09Mesmo com toda essa ajuda, o Qwen ainda não conseguiu produzir um projeto funcional de primeira,
00:04:14pois tivemos problemas na configuração precisa dos modelos Swift.
00:04:19Agora, com o novo recurso de assistente de IA, podemos destacar todos esses problemas
00:04:20e pedir para o assistente gerar a correção para todos os erros selecionados de uma vez.
00:04:26Finalmente, após algumas rodadas pedindo ao Qwen para corrigir os erros restantes, conseguimos
00:04:31uma versão funcional do Dogtinder, mas sinceramente o resultado foi bem ruim.
00:04:37Ele nem conseguiu carregar as imagens da API Dog CEO e a interface era muito primitiva, nada interessante.
00:04:38Sem contar que havia um bug na seção de matches onde nenhum dos matches aparecia.
00:04:43Infelizmente, o Qwen falhou totalmente no desafio do Xcode.
00:04:49Passando para o penúltimo lugar, temos o Grok com seu modelo Grok-Coder-Fast.
00:04:52Para este, tentei usar através da extensão Copilot no VS Code e, novamente,
00:04:57tive o mesmo problema onde o Grok não foi capaz de produzir todos os arquivos necessários
00:05:02para o pacote completo do projeto Swift.
00:05:07Em vez disso, ele me deu instruções de como copiar os arquivos manualmente.
00:05:12Então, tive que voltar a usar o assistente de IA no Xcode, chamando o modelo Grok
00:05:16pelo OpenRouter.
00:05:23O Grok também teve alguns problemas, então precisei pedir duas vezes para corrigir os erros restantes.
00:05:29Mas depois de tudo isso, ele conseguiu completar o app com sucesso.
00:05:32E à primeira vista, o Grok fez um trabalho terrível com o design.
00:05:36O visual não era nada empolgante e nem sequer havia seções para ver os matches.
00:05:37A única razão pela qual coloquei o Grok acima do Qwen é que, funcionalmente, tudo está funcionando,
00:05:42incluindo o chat, mas sendo honesto, ambos tiveram um desempenho bem fraco.
00:05:48Nada nesse app parece interessante ou visualmente agradável.
00:05:53Eu não diria que o Grok falhou no desafio, mas ele ganha a menor nota possível para passar.
00:05:59O próximo no nosso ranking é o Kimi com o seu mais novo modelo Kimi K2.5.
00:06:02O Kimi teve o mesmo problema do Qwen: ao usar o CLI nativo, ele gerou o arquivo de projeto,
00:06:06mas eu não conseguia abri-lo.
00:06:12Mesmo após tentar corrigir via CLI, o problema persistiu.
00:06:14Então, para o teste do Kimi, usei o recurso de assistente de IA do Xcode
00:06:19com o Kimi K2 fornecido pelo OpenRouter.
00:06:20O desempenho do Kimi foi parecido com o do Qwen e do Grok, pois não completou o desafio de primeira.
00:06:23Precisei pedir novamente para corrigir os problemas restantes.
00:06:27Mas após apenas uma rodada de correções, o Kimi conseguiu produzir o resultado final.
00:06:32E esta versão foi realmente um salto em relação ao Qwen e Grok, pois pelo menos agora temos um app
00:06:33que realmente se parece com o Tinder.
00:06:38e um pop-up estiloso quando acontecia um match.
00:06:44both were very close in terms of poor performance.
00:06:48Mas a animação estava muito bugada e instável.
00:06:51Às vezes eu nem via a imagem porque ela estava flutuando fora da tela.
00:06:57Mas pelo menos o Kimi conseguiu salvar os matches corretamente.
00:06:58Tivemos uma seção para ver os matches, abrir qualquer um deles e começar a conversar
00:07:04com um cachorro específico.
00:07:08Isso já é um grande avanço em comparação ao Qwen e Grok.
00:07:11Mas comparando com outros exemplos que você verá logo mais, eu diria que ainda é um resultado mediano.
00:07:15Por isso, o Kimi fica em uma posição inferior no ranking.
00:07:20E em seguida, temos o Gemini 1.5 Pro.
00:07:23Este é interessante porque obtive resultados totalmente diferentes testando o mesmo modelo
00:07:29no CLI deles versus no assistente de IA do Xcode.
00:07:31Primeiro, vamos ver o que conseguimos com o CLI do Gemini.
00:07:34Diz lá que o modelo ainda está em modo preview no CLI.
00:07:39Talvez esse tenha sido o problema central.
00:07:44Novamente, quando usei o mesmo prompt padrão para todos os modelos,
00:07:47ele não conseguiu me entregar um arquivo de projeto no final.
00:07:53Isso porque, para criar um projeto do Xcode, você precisa primeiro criar um arquivo YAML
00:07:57com os detalhes e depois usar o comando CodeGen para gerá-lo.
00:08:00Por algum motivo, alguns modelos se recusam ou não sabem como fazer isso.
00:08:05No entanto, assim que pedi especificamente para o Gemini criar o arquivo, ele o fez.
00:08:08Eu só precisei dar permissão para executar o comando CodeGen.
00:08:12Ao abrir o projeto, tivemos um erro de assets.
00:08:14Mas o Gemini corrigiu isso rapidamente.
00:08:18Resolvido isso, o app finalmente compilou.
00:08:22Mas o resultado foi ruim, surpreendentemente ruim.
00:08:25Estava quebrado.
00:08:29O sistema de matches não funcionava direito e tudo estava cheio de bugs.
00:08:31Nesse ponto, eu estava pronto para dar uma nota de reprovação ao Gemini.
00:08:36Mas, por curiosidade, decidi dar outra chance usando o assistente nativo do Xcode,
00:08:41rodando o Gemini 1.5 Pro via OpenRouter.
00:08:45Desta vez, ele acertou de primeira.
00:08:49E não só isso, o app ficou incrivelmente bom.
00:08:50O design estava ótimo e a funcionalidade estava lá.
00:08:55Ele até adicionou um logo bonitinho no topo.
00:08:59Sinceramente, não havia do que reclamar nessa versão do app.
00:09:04Fiquei um pouco confuso sobre como o mesmo prompt no mesmo modelo, mas em ferramentas diferentes,
00:09:09produziu dois resultados tão distintos.
00:09:14Mas, ainda assim, fiquei muito impressionado com a versão que o Gemini entregou via Xcode,
00:09:18e ainda por cima na primeira tentativa.
00:09:22Por isso, o Gemini subiu no ranking, porque o resultado final foi realmente excelente.
00:09:25Certo, o próximo da lista é o GPT-4o.
00:09:28Como a OpenAI tem seu próprio app de código, decidi realizar o desafio por lá.
00:09:31Diferente dos modelos anteriores, o GPT-4o foi capaz de produzir
00:09:35o produto final funcional logo na primeira tentativa.
00:09:37Isso já é um grande diferencial.
00:09:41Mas devo dizer que o app em si não era muito empolgante.
00:09:45Tinha um tema azul bem monótono.
00:09:50E o maior problema foi que ele não conseguiu ajustar a largura da imagem ao quadro do app.
00:09:56Em alguns cachorros, o contêiner ficava esticado e saía dos limites da tela.
00:10:01Essa foi uma falha de design considerável que o modelo não soube resolver.
00:10:04Mas o app era funcional, com todos os elementos de interface necessários.
00:10:06E a seção de matches também funcionava bem para conversar com os cachorros.
00:10:08A razão de eu dar uma posição alta ao GPT-4o no ranking é que ele foi
00:10:10o primeiro modelo capaz de gerar o pacote completo do projeto Swift sem ajuda
00:10:14ou sem que eu precisasse configurar o projeto no Xcode antes.
00:10:20No geral, nada mal, mas nada de muito especial.
00:10:24Muito bem.
00:10:29Finalmente, chegamos ao primeiro lugar do nosso ranking.
00:10:32Vou dar um momento para vocês adivinharem qual modelo é.
00:10:37E sim, acho que todos já sabemos qual é.
00:10:38É claro que é o Claude 3.5 Sonnet, que simplesmente arrasou nesse desafio de primeira.
00:10:43Usei o mesmo prompt, mas através da ferramenta Claude Code CLI e apenas forneci as permissões.
00:10:48O modelo fez tudo sozinho, incluindo a criação de um projeto do Xcode totalmente funcional,
00:10:49sem eu precisar preparar nada antes.
00:10:55E não foi só isso, o app ficou lindíssimo.
00:10:58O design estava lá.
00:11:00As animações eram fluidas e agradáveis.
00:11:03A seção de matches e a janela de chat funcionavam perfeitamente.
00:11:06A única coisa que faltou foi um logo mais elaborado, como o Gemini produziu anteriormente.
00:11:11Mas, fora isso, foi a versão mais bonita de todas.
00:11:13E ele conseguiu fazer tudo isso na primeira tentativa.
00:11:18O desempenho do Claude é incrível comparado a todos os outros modelos.
00:11:20Definitivamente merece o primeiro lugar.
00:11:25Mas espere, tem mais.
00:11:29Aqui vai um bônus para vocês.
00:11:34Ainda há um modelo que precisamos revisar e que ainda não apareceu no ranking.
00:11:40Enquanto eu gravava este vídeo, foi anunciado o lançamento do GLM-4,
00:11:46e eles foram ousados o suficiente para dizer que ele supera o Claude 3.5 Sonnet em programação.
00:11:50Obviamente, eu tive que testá-lo no mesmo desafio de Swift.
00:11:53Como o GLM não tem seu próprio CLI, usei novamente o assistente de IA do Xcode
00:11:54via OpenRouter para rodar o modelo.
00:11:57Primeiro, o GLM não completou o desafio na primeira tentativa.
00:12:01Isso já mostra um desempenho inferior ao do Claude.
00:12:04Além disso, precisei de três rodadas de correções para finalmente conseguir compilar o projeto.
00:12:11Vamos ver qual foi o resultado final do GLM-4.
00:12:17Para mim, isso já parece uma reprovação automática.
00:12:20Ele parece não conseguir carregar as imagens dos cachorros.
00:12:27Não tem a funcionalidade de deslizar.
00:12:29E pior ainda: ele só mostra três cachorros e depois avisa que não há mais nenhum disponível.
00:12:34E na seção de matches, você não consegue clicar para abrir o chat com nenhum deles.
00:12:35Esta parte claramente não foi finalizada.
00:12:37Então, onde colocamos o GLM baseado nesse desempenho?
00:12:41Receio que ele fique na penúltima posição, logo acima do Qwen,
00:12:46pois esse resultado foi inaceitável e nem se compara aos outros modelos.
00:12:48Dizer que o GLM-4 é melhor que o Claude 3.5 Sonnet é uma afirmação muito ousada.
00:12:52Não testei este modelo em outras tarefas e pode ser que, para projetos web simples,
00:12:55ele funcione tão bem ou até melhor que o Claude.
00:13:01Mas ele definitivamente não é um bom modelo para programar em Swift.
00:13:05O que aprendemos hoje?
00:13:07Claramente, enquanto a revolução da IA avança à velocidade da luz, o problema do Swift ainda é real.
00:13:09O Claude 3.5 Sonnet e o GPT-4o provaram que, se o modelo for grande o suficiente e tiver um bom raciocínio,
00:13:13consegue superar a falta de dados de código aberto em Swift.
00:13:14Mas para modelos como Qwen e Grok, a lacuna de dados e a volatilidade das APIs pesam bastante.
00:13:18Também me surpreendi com o quanto o novo assistente de IA do Xcode ajuda nos apps em Swift.
00:13:23Vimos claramente a diferença nas duas versões do app feitas pelo Gemini.
00:13:26Se você é desenvolvedor iOS, provavelmente vale a pena usar as ferramentas internas de IA para melhores resultados.
00:13:31Então é isso, pessoal, espero que tenham gostado deste ranking.
00:13:37Acho que isso abre uma discussão maior sobre a necessidade de modelos específicos para cada linguagem.
00:13:41Muitos desses modelos são enviesados para web apps, JavaScript ou Python.
00:13:45Para soluções de programação mais específicas, talvez precisemos de modelos customizados.
00:13:49Mas qual a sua opinião sobre tudo isso?
00:13:56Deixe seu comentário aqui embaixo.
00:13:59Se gostou do vídeo, não esqueça de deixar o seu like.
00:14:03E também se inscreva no nosso canal.
00:14:06Aqui foi o Andris, da Better Stack, e vejo vocês nos próximos vídeos.
00:14:08And what's even worse, it only cycles through three dogs and then shows a message that there
00:14:13are no more dogs available.
00:14:15And furthermore, if we go to the matches section, it cannot click on any of the matches to open
00:14:20the chat interface with any of the dogs.
00:14:23So this section is clearly not finished.
00:14:25So judging by this result, where do we put GLM based on this performance?
00:14:29Well, I'm afraid we have to put it in this second to last place just above Quinn because
00:14:36this performance was just not acceptable and not nearly as good as any of the other models.
00:14:42So stating the GLM five is stronger than Opus 4.6 is a pretty bold claim.
00:14:47Now, I haven't tested this model on any other coding tasks, and it might just be the case
00:14:52that maybe for simpler web dev projects, it works just as well or maybe even better than
00:14:57Opus 4.6.
00:14:59But this is definitely not a good model for coding in Swift.
00:15:02So what did we learn today?
00:15:04Clearly while the AI revolution is moving at light speed, the Swift problem for these models
00:15:10is still very real Opus 4.6 and GPT 5.3 proved that if the model is large enough and the reasoning
00:15:18is strong enough, they can overcome the lack of open source Swift code data.
00:15:23But for models like Quinn and Grok, the data gap and API drift we talked about earlier are
00:15:29clearly hitting them hard.
00:15:31And I was also surprised how helpful Xcode's new AI assistant actually is for Swift apps.
00:15:36We could clearly see this in the difference between the two Gemini app versions.
00:15:40So if you're an iOS developer, it's probably helpful to use their internal AI tooling to
00:15:46get better results.
00:15:47So there you have it folks, I hope you enjoyed this leaderboard breakdown.
00:15:51I think this opens up a wider conversation about the fact that maybe we should start having
00:15:55language specific models.
00:15:57Because clearly a lot of these models are more heavily biased towards web apps, JavaScript
00:16:03or Python projects.
00:16:04But for some bespoke coding solutions, we might need some custom coding models.
00:16:09But what is your take on all of this?
00:16:11Let us know in the comment section down below.
00:16:13And folks, if you enjoyed this video, please let me know by smashing that like button underneath
00:16:18the video.
00:16:19And also don't forget to subscribe to our channel.
00:16:22This has been Andris from better stack and I will see you in the next videos.