Um anúncio comunitário que chamou minha atenção nesta semana foi o projeto Hummingbird anunciando sua política de ferramentas AI.
O tema das solicitações de pull escritas por LLMs em projetos open-source tem se intensificado há algum tempo. Mantenedores estão sendo inundados com lixo gerado por IA ao ponto de interromper bounties de bugs. Agentes de IA estão escrevendo posts retaliatórios em blogs quando suas solicitações de pull são fechadas. Será que algum desses eventos é o momento do Arquiduque Francisco da primeira grande guerra entre humanos e máquinas? 😬 Provavelmente não, mas definitivamente está causando atrito nas nossas comunidades.
Nós estamos sendo afetados um pouco no Swift Package Index, embora não seja um problema significativo e nem no repositório principal. Em vez disso, parece que os LLMs incorporaram em seu conhecimento o método antigo para submeter um pacote ao índice, infelizmente já não suportado por nós. Atualmente, cerca de 30% das submissões de pacotes vêm de agentes e sempre usam o método incorreto. Não é um grande problema, mas requer mais trabalho e mostra como este assunto se estende.
Ter uma política em vigor é um ótimo ponto de partida e fico feliz em ver o Hummingbird abordar o tema. Este problema não vai desaparecer e ter uma política escrita ajuda a prevenir discussões.
A política gira em torno da ideia de que PRs geradas por LLM são aceitáveis, mas apenas se um humano esteve envolvido e entende o código. Também exige transparência sobre quanto do código de um PR foi gerado pela ferramenta e que as descrições dos PRs devem ser escritas principalmente pelo contribuidor, não por uma LLM. Finalmente, e eu realmente gosto desse ponto, você não pode implementar “bom primeiro problema” com uma ferramenta. Eles têm um propósito especial e são protegidos.
É tão importante que incentivemos a participação em open-source e, na minha opinião, não é razoável ou prático banir completamente essas ferramentas. Elas são impressionantes quando usadas bem. Acredito que esta seja uma iniciativa excelente da equipe do Hummingbird e se você administra ou ajuda a manter um projeto open-source, mesmo um pequeno, pode querer pensar em qual é sua política e escrevê-la.
– Dave Verwer
Guia de Formatação e EstiloSe você usou Chris Eidhof’s SwiftUI Field Guide, pode se perguntar como funciona. Ele realmente implementou tudo que o site demonstra em TypeScript? Sim, ele de fato fez isso, mas tomou uma abordagem diferente com seu novo projeto e o FormatStyle Guide é um projeto Wasm! A página leva alguns segundos para carregar, mas você pode ter certeza que os resultados são precisos porque está rodando Swift por trás. É um ótimo exemplo de onde um projeto realmente beneficia ao executar Swift via Wasm. 🚀
Luca: Um Gerenciador de Ferramentas e Habilidades Descentralizado
Alberto De Bortoli escreve sobre Luca, um “gerenciador de ferramentas e habilidades minimalista, leve e descentralizado” que resolve um problema real para equipes: garantir que todos tenham as mesmas versões das ferramentas necessárias para trabalhar em um projeto. Da anúncio desta postagem:
Ele começou como uma ferramenta interna para pinar versões de binários CLI por projeto. Agora lida com gerenciamento de habilidades de agentes IA também e tem um ecossistema em crescimento ao seu redor.
Parece uma ferramenta promissora, e se você leu o blog do Alberto há algum tempo, saberá que resolver este problema para equipes é uma área muito importante para ele.
Código
Traits de pacote no XcodeMatt Massicotte escreve sobre traits de pacote, que estão disponíveis na linguagem desde a versão 6.1 mas agora podem ser configurados em projetos do Xcode a partir da versão 26.4. Eu gosto da ideia dos traits, mas eles parecem uma fonte potencial de bugs se não forem usados com cuidado. Eles podem potencialmente alterar completamente a implementação de um API com base no trait, então certifique-se de que seus testes cubram todas as configurações possíveis!
Um serviço de notificações push extremamente leve
Então, eu o substituí por um Cloudflare Worker que é cerca de 200 linhas de TypeScript mais algumas linhas de Swift no aplicativo. O conjunto inteiro custa nada na camada gratuita.
Os Cloudflare Workers são ótimos e as notificações push são mais fáceis do que você imagina. Eu recomendaria totalmente a solução que Shaun propôs neste post como um excelente (e gratuito!) meio para qualquer pequeno aplicativo que não exija nenhum outro aspecto de um servidor back-end personalizado.
Construindo uma substituição para List em SwiftUI
Quando você considerar a criação de uma tela roolável em SwiftUI, pode pensar em usar um List. No entanto, nem sempre é a melhor escolha. Os Lists são ótimos para exibir dados uniformes. Para qualquer outra coisa, ScrollView com lazy stack quase sempre é a melhor opção.
O SwiftUI List é ótimo, mas fica bastante rígido quando você começa a se afastar de algo como uma lista de e-mails no Mail.app. Isso não significa que você precisa criar tudo do zero toda vez, entretanto.
Negócios e Marketing
Introdução ao Guild AdsEu gosto muito de redes publicitárias menores, como a Tyler Hillsman lançou esta semana. Elas tendem a ter anunciantes de melhor qualidade e fornecer tráfego de melhor qualidade. O que torna o Guild Ads um pouco diferente é o modelo de negócios:
Toda semana, a rede tem um preço. Esse preço flutua com a demanda: se a rede vende tudo, o preço para a próxima semana sobe; se não preencher, o preço cai. Os anunciantes escolhem quanto da rede querem comprar. Quando o estoque está esgotado, ele está esgotado.
Eu gosto desse modelo e desejo muito sucesso a Tyler e a todos que participam!
E finalmente...
Vocês sabem o que tornaria 2026 o melhor WWDC de todos os tempos? Um oficial “Lil Finder Guy” caça ao tesouro em toda a Apple Park! 🕵️♂️
