- XTool é uma ferramenta de desenvolvimento multiplataforma que pode substituir os recursos do Xcode em vários sistemas operacionais
- Usando SwiftPM, é possível compilar e distribuir apps iOS em Linux, Windows e macOS
- Desenvolvedores podem se integrar de forma programática aos Apple Developer Services
- Fornece subcomandos baseados em CLI para gerenciamento de dispositivos, instalação, execução de apps e mais
- Com a biblioteca XKit, é possível usar os recursos diretamente dentro do app
Introdução ao projeto XTool
- XTool é uma ferramenta de desenvolvimento multiplataforma com recursos semelhantes aos do Xcode, funcionando em Linux, WSL e macOS
- Diferente do Xcode tradicional, também permite no Windows e no Linux compilar pacotes SwiftPM como apps iOS e assinar e instalar em dispositivos reais
- Desenvolvedores podem fazer integração programática com os Apple Developer Services e montar um ambiente de desenvolvimento iOS mesmo sem macOS
Principais recursos
- Suporte para compilar pacotes SwiftPM e convertê-los em apps iOS
- Possibilidade de assinar (Sign) e instalar (Install) apps iOS
- Integração com Apple Developer Services: oferece autenticação e uso dos serviços
Exemplos de uso representativos
Interface de linha de comando
xtool oferece recursos de desenvolvimento, dispositivos, configuração e mais por meio de vários subcomandos
setup: configurar o ambiente de desenvolvimento iOS
auth: gerenciar autenticação de desenvolvedor Apple
sdk: gerenciar o Darwin Swift SDK
new: criar um novo projeto SwiftPM
dev: compilar e executar o projeto
ds: interagir com os Apple Developer Services
devices: verificar a lista de dispositivos
install: instalar um arquivo ipa no dispositivo
uninstall: remover o app
launch: executar no dispositivo um app já instalado
Uso da biblioteca XTool (KIT)
- Ao registrar a biblioteca XKit como dependência do SwiftPM, é possível chamar diretamente no app em desenvolvimento recursos como controle de Apple Developer Services e dispositivos iOS
- Desenvolvedores Swift podem integrar isso facilmente ao projeto apenas com declarações
.package() e .product()
Resumo das vantagens
- Além do macOS, permite desenvolvimento e distribuição de apps iOS em várias plataformas, como Linux e Windows
- Possibilita integração com várias ferramentas de desenvolvimento, como VSCode
- Baseia-se em padrões abertos e oferece suporte a um fluxo de desenvolvimento genérico e automatizado
- Tem alto valor como alternativa quando não é possível usar o Xcode
1 comentários
Comentários do Hacker News
Essa ferramenta fala em "substituto do Xcode" e "desenvolvimento sem Xcode", mas eu acho impossível compilar um app sem Xcode. Fui pesquisar melhor como eles substituem coisas como bibliotecas e compiladores, e na prática não é bem assim. Eles dizem: "não usa o sistema de build do Xcode, mas a instalação do Xcode ainda é necessária por causa do SDK do iOS e do toolchain". Acho que a mensagem deles deveria ser mais clara. Isto não é um substituto nem uma alternativa completa, e sim uma camada sobre o sistema existente, buscando uma experiência melhor
A JetBrains já desenvolveu o AppCode no passado. O AppCode era uma IDE inteligente para desenvolvimento iOS/macOS, mas desde 14 de dezembro de 2022 ele não é mais oferecido como produto comercial
/dev/nullComentário com referência a https://forums.swift.org/t/… e ao tópico no HN https://news.ycombinator.com/item?id=43952239
Em teoria, fico me perguntando se essa ferramenta permitiria a um desenvolvedor Flutter compilar e publicar apps iOS a partir do Linux. Seria realmente ótimo se fosse o caso
xcode é aquela ferramenta que precisa baixar por 9 horas a cada poucos meses e sai alterando arquivos XML e plist sem parar. Aquele xcode mesmo
Lembra o Sweetpad. A instalação do Sweetpad é meio trabalhosa. O XTool parece oferecer uma experiência de desenvolvimento (DX) melhor. Espero que esse projeto continue evoluindo
Já houve discussão antes sobre "compilar apps iOS no Linux e no Windows". Ver https://news.ycombinator.com/item?id=43952239
Vi que o nome da organização no Github é "xtool-org". Fico curioso se a empresa XTool (que fabrica gravadores a laser e tecnologia para artesanato) não vai implicar com isso
Seria legal se existisse também uma ferramenta parecida, separada do XCode, com preview em tempo real de interfaces baseadas em Swift UI
Tem um ícone do vscode na captura de tela?