Swift.org

O projeto Swift está introduzindo novas imagens da cadeia de ferramentas Swift para download para Windows! Estas imagens contêm componentes de desenvolvimento necessários para construir e executar o código Swift no Windows.

Há mais de um ano, tem havido um esforço significativo para portar o Swift para o Windows em conjunto com a comunidade de desenvolvedores em swift.org. O suporte ao Windows está agora em um ponto onde os primeiros usuários podem começar a usar Swift para construir experiências reais nesta plataforma.

Bringing Swift to Windows

Portar Swift para Windows não é simplesmente portar o compilador, mas sim assegurar que o ecossistema completo esteja disponível na plataforma. Isto inclui o compilador, a biblioteca padrão e as bibliotecas centrais (dispatch, Foundation, XCTest). Estas bibliotecas são parte do que permite aos desenvolvedores escrever aplicações poderosas com facilidade e sem ter que se preocupar com muitos dos detalhes do sistema subjacente. Há muitos detalhes técnicos na história de trazer o Swift para um estado utilizável no Windows, e se você estiver interessado neles, eu recomendaria checar minha palestra sobre o tópico na LLVM Developer Conference.

Com essas bibliotecas centrais e a interoperabilidade flexível do Swift com C, é possível desenvolver aplicações no Windows puramente no Swift enquanto se aproveita o corpus de bibliotecas existentes nas plataformas Windows.

Example Application

Esta calculadora demo é escrita inteiramente em Swift, com o código flipping sem problemas entre o código da aplicação escrito em Swift e as bibliotecas do sistema:

Este projeto foi construído usando:

  1. A cadeia de ferramentas Swift no Windows

  2. Uma instalação do Visual Studio 2019 que fornece as outras peças necessárias na forma de CMake, Ninja, e o Windows SDK

Embora o aplicativo demo seja construído com CMake, o suporte ao Swift Package Manager no Windows está surgindo. Em breve será possível obter a construção do aplicativo usando swift build sem precisar de CMake ou Ninja.

Aqui você pode ver o passo através do aplicativo usando lldb:

Aplicações Multiplataforma

Automizadores como Readdle estão experimentando com aplicações multiplataforma escritas em Swift, trazendo facilmente muitas das bibliotecas Swift existentes para o Windows para suportar suas aplicações.

Tinha estado a trabalhar com o Alexander na Readdle sobre o trabalho da sua equipa, e ele enviou-me esta nota:

Nós na Readdle começámos a experimentar com a Swift no Windows há mais de um ano atrás, no segundo trimestre de 2019. Nessa época já lançamos o Spark para Android que usa o Swift para compartilhar código central com iOS/macOS, e a oportunidade de estender para mais uma plataforma era realmente tentadora.

Apesar de algumas funcionalidades ainda não estarem prontas, o Swift no Windows acabou satisfazendo totalmente as nossas necessidades. Na verdade, algumas dependências C/C++ de terceiros nos deram mais dores de cabeça do que a própria Swift nos deu. Toda a lógica comercial da Spark está localizada em um módulo Core separado. Um pacote de módulos, na verdade, mas nós nos referimos a eles como Core. Isto permite-nos usar qualquer estrutura de IU na plataforma alvo: AppKit no MacOS, UIKit no iOS, kit de ferramentas nativo de IU no Android. Então, basicamente, nós tivemos que portar o Spark Core no Windows. Depois de todos os conceitos iniciais terem sido provados, era na maioria das vezes um trabalho rotineiro no dia-a-dia para dar vida a ele no Windows.

O que nós temos agora:

  • 9 Módulos Swift (255 739 SLOC, 2 133 ficheiros fonte)
  • 3 módulos swift de terceiros
  • 1452 testes (powered by XCTest)
  • CIC baseado no Windows para manter todos os testes verdes
  • Sistema de construção heterogéneo (parcialmente CMake, scripts parcialmente personalizados)

Como um bom exemplo, módulos Swift puros como CryptoSwift e OAuthSwift quase funcionaram logo de cara. Fizemos ajustes triviais de importação, excluímos algumas referências AppKit/UIKit e voilà!

Outro desafio foi decidir como implementar a interface do usuário. Depois de um longo discurso acabamos com Electron como a parte frontal da futura Spark for Windows. Isso significava que não só precisávamos ser capazes de construir o Spark Core no Windows mas também usá-lo como um addon carregável para o Node.js.

Node.js addon em Swift puro? Isso pareceu ser surpreendentemente fácil. Swift importa perfeitamente os cabeçalhos N-API. Ainda precisamos de três linhas de código C mais um pequeno cabeçalho C para definir o ponto de entrada do addon, mas toda a lógica está no Swift. Devido à natureza multi-plataforma do Node.js, fomos capazes de usar macOS como plataforma de desenvolvimento com Xcode como IDE, e então usar a agilidade do CMake para construir o mesmo código no Windows.

Desde o primeiro dia que começamos, o Swift no Windows deu um passo gigantesco em termos de suporte e estabilidade da plataforma. Eu diria, se você está pensando em estender sua base de código de aplicativos existente para outras plataformas além do MacOS/iOS – você pode absolutamente fazê-lo com o Swift agora, ou, pelo menos, em breve. Se você estiver mantendo uma pequena biblioteca Swift – você já poderia facilmente adicionar suporte ao Windows!

– Alexander Smarus; Product Engineering Lead at Spark Team, Readdle Inc

Mais detalhes estão disponíveis no blog da Readdle.

Adicionar suporte para Windows à Swift é o começo de uma jornada. O suporte atual estabelece o primeiro marco onde o idioma é utilizável. Há ainda outra parte ainda mais ampla do ecossistema como lldb e o Gerenciador de Pacotes Swift que ainda precisa de mais trabalho para ser tão completo em seu suporte para esta plataforma diferente.

Começando e Envolvendo-se!

A seção Iniciando foi atualizada com novas informações sobre o uso do Swift no Windows! Para os primeiros usuários que estão começando e encontrando problemas, por favor informe-os ao Swift Bug Tracker.

Há muitas oportunidades para aqueles interessados em ajudar a empurrar o Swift no Windows para frente. Uma das coisas que tornam o Swift fácil de usar são as bibliotecas: publicar novas bibliotecas e pacotes para o Swift no Windows ou portar as existentes é outra forma de se envolver e ajudar a fazer do trabalho com o Swift um prazer cada vez maior.

Para os interessados em trabalhar com as principais ferramentas, há muito trabalho a ser feito para melhorar o depurador e para melhorar o suporte ao Windows no Gerenciador de Pacotes Swift. Nós convidamos você a verificar o Swift Bug Tracker para os problemas atuais e enviar correções para os repositórios do GitHub. Há também uma nova seção nos fóruns Swift para discutir o desenvolvimento do Swift no Windows. Lá a comunidade pode discutir os problemas ou você pode se apresentar e deixar os outros saberem em que área das ferramentas você está focando. Esta é a oportunidade perfeita para se envolver no projecto e ajudá-lo a crescer num ecossistema forte, vibrante e multiplataforma. Mal podemos esperar para ver que coisas emocionantes você constrói com a Swift!

Deixe uma resposta

O seu endereço de email não será publicado.