10 pontos por GN⁺ 2025-10-25 | 1 comentários | Compartilhar no WhatsApp
  • À medida que a linguagem Swift amadureceu e se expandiu para nuvem, Windows, navegadores e microcontroladores, agora foi lançado o Swift SDK para Android
  • Este SDK é o resultado de meses de trabalho do Swift Android Workgroup e permite que desenvolvedores criem apps nativos para Android com Swift
  • O SDK vem incluído no instalador do Windows ou pode ser baixado separadamente para Linux e macOS, acompanhado de código de exemplo e guias
  • Por meio do projeto swift-java, há suporte à interoperabilidade bidirecional entre Swift e Java, com geração automática de bindings para garantir desempenho e segurança
  • Este lançamento é visto como um ponto de virada que acelera a expansão do ecossistema multiplataforma do Swift e abre novas possibilidades para o desenvolvimento mobile

Visão geral do Swift SDK for Android

  • No contexto em que a linguagem Swift se expandiu nos últimos 10 anos de serviços em nuvem a Windows, navegadores e microcontroladores, sua entrada na plataforma Android agora foi oficializada
    • Graças à interoperabilidade (interoperability) do Swift, fica fácil compartilhar código entre várias plataformas
  • O Android Workgroup é um grupo aberto do qual qualquer pessoa pode participar, com o objetivo de expandir o Swift para o Android
  • Este anúncio representa a divulgação de um build nightly (preview) do Swift SDK for Android, resultado de uma longa colaboração da comunidade

Principais recursos do SDK e forma de distribuição

  • Agora os desenvolvedores podem usar Swift para criar diretamente aplicações nativas para Android
    • Isso abre novas possibilidades para o desenvolvimento multiplataforma
  • O SDK é fornecido embutido no instalador do Windows e também pode ser baixado separadamente para Linux e macOS
  • O Swift.org orienta, por meio do guia “Getting Started”, como configurar código Swift em dispositivos Android
    • O repositório Swift for Android Examples no GitHub demonstra um fluxo de trabalho completo de app

Compatibilidade de pacotes e expansão da comunidade

  • Com o Swift SDK, é possível portar pacotes Swift existentes para Android
    • Mais de 25% dos pacotes no Swift Package Index já oferecem suporte a builds para Android
    • A página Community Showcase indica se há compatibilidade com Android
  • Essa expansão fortalece ainda mais o suporte multiplataforma do ecossistema Swift

Projeto swift-java e interoperabilidade

  • O projeto swift-java é uma biblioteca e gerador de código que oferece interoperabilidade (interoperability) entre Swift e Java
    • Ele lida automaticamente com a integração bidirecional entre Swift e Java, gerando bindings seguros e de alto desempenho
  • Com isso, os desenvolvedores podem levar lógica de negócio para o Android, e mais detalhes podem ser vistos no vídeo da apresentação do Swift Server Side Meetup

Participação da comunidade e roadmap futuro

  • Este lançamento preview abriu novas oportunidades para melhorias nas ferramentas e expansão do ecossistema
    • É recomendado compartilhar experiências, ideias, ferramentas e apps na categoria Android do fórum Swift
    • O anúncio também está sendo discutido na thread oficial do fórum
  • O Android Workgroup está atualmente elaborando um documento de visão (vision document), que deverá apresentar as áreas prioritárias e a direção futura do Swift no Android
    • É possível acompanhar o progresso principal pelo project board, e a qualidade do SDK é gerenciada com o sistema oficial de CI
  • A equipe do Swift incentiva a participação da comunidade e busca fortalecer a presença do Swift no ecossistema Android

1 comentários

 
GN⁺ 2025-10-25
Comentários do Hacker News
  • A questão central de todo framework multiplataforma é como ele lida com a UI
    Se você usa um sistema de design que parece estranho em cada plataforma, como o Flex Builder da Adobe, no fim acaba tendo que implementar manualmente a sensação nativa
    O Flutter tenta reproduzir perfeitamente o tema Cupertino no iOS, e o React Native aproveita os widgets padrão da plataforma para que elementos como a rolagem pareçam naturais
    Fiquei decepcionado que esse ponto importante não foi mencionado no post do blog
    Mesmo que a Apple lance Swift para Android, por causa da filosofia de design característica da Apple existe a possibilidade de ele parecer estranho no Android
    Acho que o rumo futuro vai depender de este projeto ser liderado diretamente pela Apple ou ser uma tentativa open source centrada na comunidade

    • Eu prefiro frameworks que permitam escrever UI nativa em vez de compartilhar UI
      Por isso gosto de KMP. No iOS você escreve a UI com SwiftUI, no Android com Kotlin, e compartilha apenas a lógica de negócio
      Quando se tenta compartilhar a UI, surge o pesadelo de “escrever uma vez e depurar em todo lugar”
      Parece que o Swift for Android também vai permitir esse tipo de compartilhamento de lógica no nível da linguagem
    • O Swift SDK for Android não impõe nenhuma abordagem de UI
      Até nos exemplos eles usam Jetpack Compose normalmente enquanto chamam lógica em Swift
      Ele mantém a mesma estrutura do modelo de memória com contagem de referências do Swift, o que traz bastante consistência
      Como alguém que trabalha com ferramentas para desenvolvedores na Apple, espero que essa tecnologia sirva de base para novas inovações
    • Assim como a Browser Company portou SwiftUI para Windows, existe a possibilidade de no Android o SwiftUI ser mapeado para Jetpack Compose
      O SwiftUI não é originalmente uma “UI nativa”, mas sim uma linguagem declarativa que o sistema interpreta para gerar UIView ou NSView
    • Este lançamento não inclui nenhum porte de SwiftUI ou UIKit para Android
      A menos que alguém recrie tudo diretamente, como o Flutter, não dá para usar a UI da Apple do mesmo jeito no Android
    • O Swift SDK não especifica nenhuma tecnologia de UI
      Em vez disso, projetos como Skip.tools fazem a ponte entre SwiftUI e Jetpack Compose
      Você pode ver um exemplo no app Skip Showcase
      Eu faço parte do produto Skip e do Swift Android Workgroup, e participei como release manager deste SDK
  • Fico realmente feliz de ver isso anunciado como um projeto oficial
    Já usei RN e Flutter, mas o problema sempre foi a falta de sensação nativa
    Existe o KMP também, mas a maioria dos desenvolvedores começa pelo iOS e depois expande para Android
    Compartilhar código com Swift Package torna esse fluxo muito mais natural

    • Há muito mais desenvolvedores Android, e a distribuição também é mais simples
      Em contrapartida, há bem menos desenvolvedores Swift/Objective-C
      Fora dos EUA, a participação do iPhone é menor, então as empresas tendem a pensar com foco em Windows ou navegador
    • Dizer que “começa-se pelo iOS” parece uma visão centrada nos EUA
      O KMP já é usado em grandes apps como o Google Workspace e, com Kotlin e os investimentos da JetBrains, seu nível de maturidade é alto
      O ciclo de releases do Flutter era rápido demais e difícil de acompanhar
    • A lógica de negócio baseada em JavaScript também não pode ser ignorada
      Com JavaScriptCore ou QuickJS, ela roda em iOS, Android e Web, com suporte a hot reload
      Ainda assim, por causa das políticas das app stores, é difícil fazer grandes mudanças de funcionalidade, então isso serve mais para correções de bugs
      Considerando como o ciclo de distribuição mobile é lento, acho que essa abordagem representa uma grande oportunidade
    • Na Proton, eles compartilham mais de 80% da lógica em Rust, e implementam o restante por plataforma
    • Na verdade, esse tipo de estrutura já era possível com .NET e MvvmCross
      Funciona bem como uma arquitetura de biblioteca central compartilhada + projetos de UI nativa em cada plataforma
  • Fiquei curioso se isso tem relação com o projeto do transpilador SKIP que vi no blog da Skip.tools
    Eu queria levar um app em SwiftUI para Android, mas queria evitar RN

    • Sim, a Skip já usa há mais de um ano versões preview do Swift SDK e, com o modo Fuse, gera apps SwiftUI totalmente nativos para Android
      A Skip tem dois modos: o modo Lite, que converte código Swift para Kotlin, e o modo Fuse, que compila Swift diretamente para Android
      Os dois modos podem ser usados juntos para integração com o ecossistema Kotlin, como Lottie e Firebase
      Uma comparação mais detalhada está disponível na documentação da Skip
      Fico feliz que, com a chegada do SDK oficial, agora possamos usar a versão oficial em vez de builds próprios
    • A Skip é um dos principais contribuidores desse esforço
    • Agora ficou possível executar Swift nativamente sem transpilador, e a compatibilidade também melhorou bastante
  • Espero que isso não termine só como um simples proof of concept, como o Swift Embedded
    Swift é uma linguagem linda, mas existe um clima de insegurança em relação à liderança da comunidade

    • guard let self = self else { return } — uma piada familiar para qualquer desenvolvedor Swift
  • Já deu de RN e Flutter
    Estou cansado da UI quadradona e da resposta lenta ao toque

    • No Flutter também dá para ajustar o raio dos cantos, e o desempenho é rápido
      Se a resposta está lenta, provavelmente é problema da implementação do app
    • Eu também não gosto muito de RN e Flutter, mas não há garantia de que Swift no Android será melhor que eles
      A Apple pode simplesmente perder o interesse rapidamente
  • “You got Kotlin in my iOS.”
    “You got Swift in my Android.” — uma formulação espirituosa

    • É uma analogia perfeita. Talvez acabe surgindo mesmo um híbrido de Kotlin e Swift, como num comercial da Reese’s
    • Kotlin no iOS é compilado estaticamente e tem interoperabilidade nativa com Swift/ObjC
      Veja a visão geral do Kotlin Native
  • Este anúncio parece ser uma prova de sucesso do novo sistema de SDK do Swift
    Antes, dar suporte a outras plataformas era complicado por causa das amarras com CMake, mas agora, seguindo apenas as regras do SDK, parece possível portar para qualquer plataforma
    Além do Android, a expansão deve alcançar Linux, wasm, embarcados e, em breve, Windows
    A interoperabilidade com a JVM ainda não está completa, mas é claro que a independência de plataforma aumentou

  • Eu gosto de Kotlin Multiplatform, mas Swift for Android também é interessante
    Compartilhar bibliotecas nativas em Swift para tarefas sensíveis a memória parece útil
    Ainda assim, para migrar toda a lógica de negócio para Swift, o KMP continua mais maduro por enquanto

    • Você já fez apps desktop com KMP? Tenho curiosidade sobre o nível geral de maturidade
  • Compartilhar lógica de negócio já era um problema resolvido
    A verdadeira dor era ter que escrever a UI duas vezes
    Precisamos de um framework de UI comum que não seja incômodo como o React Native

    • O React Native melhorou bastante recentemente com a transição para a New Architecture
      Com Expo, a experiência de desenvolvimento também melhorou muito
  • Já compartilhei código entre Android e iOS por muito tempo, mas compartilhar UI era um pesadelo
    Eu compartilhava apenas a lógica complexa com C/C++/Rust, mas no fim acabava com três linguagens
    KMP e Swift for Android deixam compartilhar tudo só com Kotlin/Swift, o que é bem mais limpo
    Essa abordagem é muito mais realista e eficiente do que frameworks que tentam forçar o compartilhamento de UI