3 pontos por GN⁺ 2026-01-05 | 1 comentários | Compartilhar no WhatsApp
  • Framework que permite desenvolver apps nativos para Android apenas com Swift, cobrindo da UI ao manifesto e ciclo de vida em uma única linguagem
  • Fornece uma estrutura para montar a UI do Android com abordagem declarativa de UI, sem usar XML, Java ou Kotlin
  • Funciona como um framework Android nativo puro, e não como wrapper web ou transpiler
  • Permite definir a UI com uma sintaxe declarativa semelhante ao SwiftUI, ocultando completamente a complexa camada JNI
  • Oferece uma experiência integrada de desenvolvimento em que até o Android Manifest e as configurações do Gradle são definidos diretamente em código Swift
  • É uma nova alternativa nativa para desenvolvedores Swift expandirem para Android e um ponto de virada que abre novas possibilidades para desenvolvimento multiplataforma baseado em Swift

Visão geral do Droid

  • Droid é um framework projetado para permitir o desenvolvimento de aplicações nativas para Android usando apenas a linguagem Swift
  • Foi estruturado para gerenciar UI, configurações do app, ciclo de vida e manifesto em uma única linguagem e base de código
  • Remove dependências de XML, Java e Kotlin, antes consideradas obrigatórias no desenvolvimento Android
  • Inclui componentes nativos do Android como AndroidX, Flexbox e Material Design
  • Oferece uma sintaxe declarativa semelhante ao SwiftUI para simplificar a definição de UI
  • Oculta completamente a camada JNI e permite acesso por meio de APIs de alto nível

Objetivos de design e características

  • Baseado em Pure Swift, com UI, manifesto e toda a configuração do app escritos em Swift
  • Adota UI declarativa com foco em legibilidade e composabilidade
  • Mantém uma abordagem de desenvolvimento No XML, sem usar XML em nenhum momento
  • Adota um modelo de execução Android nativo, e não uma abordagem baseada na web ou em conversão de código
  • Fornece uma estrutura integrada em que UI, manifesto e dependências do Gradle são definidos em um só lugar

Forma de composição da UI declarativa

  • Usa APIs amigáveis ao Swift para compor a UI do Android de forma declarativa
  • Expressa widgets do Android em código Swift, como ConstraintLayout, VStack, TextView e MaterialButton
  • Define diretamente no código restrições de layout, eventos de clique e estilos

Android Manifest escrito em Swift

  • O próprio Android Manifest é declarado em código Swift
  • Ícone do app, tema, activity e configurações de fragment são gerenciados no nível do código
  • O tratamento de eventos do ciclo de vida e a lógica de configuração são integrados em um único arquivo Swift

Documentação e ambiente de desenvolvimento

  • Há documentação oficial disponível e ela continua sendo expandida
  • Nem todos os recursos do Android estão totalmente documentados, mas os guias existentes são oferecidos de forma refinada
  • É possível começar a desenvolver imediatamente por meio do Swift Stream IDE

Escopo de suporte

  • Suporte a widgets clássicos do Android
  • Suporte a bibliotecas AndroidX
  • Suporte a componentes Material Design
  • Suporte a layout Flexbox

Status do projeto

  • O projeto está em desenvolvimento ativo e evolui rapidamente
  • A API segue sendo aprimorada com abertura para expansão, mas a visão central é mantida
  • Feedback e participação são fortemente incentivados

1 comentários

 
GN⁺ 2026-01-05
Comentários do Hacker News
  • Foi lançado o Swift Stream IDE v1.17.0. Agora стало possível desenvolver apps Android totalmente nativos só com Swift
    Sem precisar mexer em XML, Java ou Kotlin. Internamente, o framework SwifDroid criado pelo autor lida com o ciclo de vida do Android, Activity, Fragment, widgets de UI (Material, Flexbox etc.) e também gerencia automaticamente as dependências do Gradle
    Ele compila o código Swift e gera um projeto que pode ser executado diretamente no Android Studio. Tanto a ferramenta quanto o framework foram publicados sob a licença open source MIT

    • Interessante. Fiquei curioso sobre a interseção entre a experiência em Android necessária para desenvolvedores Swift e a experiência em Swift necessária para desenvolvedores Android/Kotlin
      Foi dito que não é preciso tocar em XML, Java ou Kotlin, mas queria saber se um desenvolvedor Swift sem nenhuma experiência com Android conseguiria criar um app com sucesso
      Também queria saber que porcentagem dos apps atuais e dos do próximo ano em Kotlin ou Flutter poderia ser escrita em Swift
    • Um dos pontos fortes do Swift é a interoperabilidade com bibliotecas C/C++. Normalmente elas são fornecidas como dependências do SwiftPM ou Bazel, então fiquei curioso sobre como as dependências do SwiftPM são tratadas
    • Fiquei curioso sobre como é feito o binding de código Java/Kotlin para Swift
      Estamos tentando fazer algo parecido com Rust no lugar de Swift
    • Parabéns. Eu também estava pensando em unificar meu ambiente de desenvolvimento em Swift, e isso ficou realmente muito legal
  • Esse tipo de tentativa no fim das contas precisa passar pelo JNI, então há uma limitação no fato de que 80% da API só é exposta em Java
    Esses projetos são sempre interessantes, mas no fim acabam batendo no problema de abstração com vazamento (leaky abstraction)
    Assim como no iOS é preciso conhecer Objective-C, e no Windows é preciso conhecer .NET/COM

    • Hoje em dia, até no ecossistema da Apple é preciso lidar com Swift e Objective-C para ter sucesso
      Pela minha experiência com Unity, o marshaling de C# para C é suave, mas Swift exige muito mais trabalho
      Na prática, é preciso tratar cada framework novo separadamente
  • Usar uma linguagem comum entre plataformas (Swift ou Kotlin) parece bom à primeira vista, mas acho que na prática não é tão eficiente quanto se espera
    No fim você acaba mantendo duas bases de código, e há tantas diferenças e contornos que talvez seja melhor cada um simplesmente usar sua própria linguagem como prefere
    A maioria dos desenvolvedores constrói a carreira aprendendo várias linguagens, e a transição não é difícil. É só uma opinião pessoal, mas acho o projeto excelente

    • Mesmo assim, tentativas como essa permitem que engenheiros acostumados a uma plataforma trabalhem também em outra
      Eu mesmo passei alguns meses estudando para criar apps nativos Android em Java, mas não foi prazeroso e acabei desistindo
      Tenho preferência por desenvolvimento totalmente nativo, e usei frameworks cross-platform por décadas sem nunca ter grande sucesso
      Trocar de linguagem sempre traz um custo de troca de contexto. Sempre que desenvolvo alternando entre Swift e PHP, cometo muitos erros de sintaxe
      Dá para aprender a linguagem rápido, mas dominar SDK, biblioteca padrão e frameworks leva muito tempo
    • Esses frameworks aceleram o desenvolvimento de funcionalidades simples, mas quando você tenta usar recursos específicos da plataforma, eles acabam mais atrapalhando do que ajudando
      Especialmente hoje, com ferramentas de IA, a velocidade das tarefas simples já aumentou bastante, então o ganho total de tempo no desenvolvimento não é tão grande
      A menos que o app seja basicamente um webapp, eu não recomendaria
    • Kotlin e Swift são muito parecidos, e nas partes em que diferem acho até melhor não abstrair
      Acho o Swift melhor como linguagem, mas o KMP é mais antigo e estável, então na prática eu provavelmente usaria isso
    • Conhecer várias linguagens na verdade dá mais liberdade
      Mas eu evitaria ficar ainda mais preso ao ecossistema de uma big tech específica
      Além disso, pessoalmente acho o Swift uma linguagem incômoda, então não tenho vontade de usá-la em outras plataformas
  • Fiquei curioso sobre como isso se compara ao Skip
    Este projeto não parece focado em levar código SwiftUI do iOS para Android, e sim em desenvolvimento Swift voltado exclusivamente para Android
    Queria saber se isso pode levar a apps de melhor qualidade e se já existem casos reais

  • Só o fato de não precisar usar Android Studio ou IntelliJ já me parece uma grande melhora. Trabalho muito legal

    • Usar Xcode para evitar o Android parece uma escolha comparável a mexer com ácido clorídrico
    • Fiquei curioso se também dá para evitar o Gradle. Quero saber se isso pula aquele pesadelo de gerenciamento de dependências
  • A janela de consentimento de cookies parece não estar em conformidade com a legislação europeia

  • Não entendo por que o desenvolvimento mobile é tão desagradável comparado ao de PC
    Queria entender por que até fazer um Hello World em assembly no mobile é tão difícil

    • Dá para fazer. Mas é algo tão doloroso quanto fazer um Hello World em assembly no PC, então ninguém faz
  • Faz um tempo que não acompanho desenvolvimento Android, então resumindo a situação atual
    Antes era Swift no iOS e Java no Android
    Agora, no lugar de Java, temos Kotlin, além de frameworks cross-platform como Flutter e React Native
    Fiquei curioso se Swift on Android é mais uma camada de abstração como essas, ou se é algo mais próximo do nativo
    No fim das contas, o mais rápido não é sempre o código nativo?

    • React Native não é baseado em webview. É uma camada de tradução nativa que converte JSX em código de UI SwiftUI/Kotlin
      Pessoalmente, prefiro Flutter. Muitos desenvolvedores Android nativos também dizem que Flutter pode ser o futuro do desenvolvimento Android
      Veja esta discussão relacionada nesta thread do Reddit
  • Este projeto segue uma abordagem diferente de SwiftCrossUI ou Skip
    SwiftCrossUI e Skip executam SwiftUI em várias plataformas praticamente como está,
    enquanto o SwifDroid propõe escrever UI específica de Android em Swift
    O objetivo é criar apps Android completos em Swift usando diretamente o sistema de Views e as APIs do Android, sem Java, Kotlin ou XML
    Ou seja, em vez de “escreva uma vez e rode em qualquer lugar”, a ideia é reproduzir a experiência nativa do Android em Swift

  • Fiquei curioso sobre como lidar de forma idiomática com requisições HTTP e parsing de JSON em Swift