Swift.org

Swift-projekti esittelee uusia ladattavia Swift-työkaluketjukuvia Windowsille! Nämä kuvat sisältävät kehityskomponentit, joita tarvitaan Swift-koodin rakentamiseen ja suorittamiseen Windowsissa.

Swift.org-sivustolla on jo yli vuoden ajan tehty merkittäviä ponnisteluja Swiftin siirtämiseksi Windowsille yhdessä kehittäjäyhteisön kanssa. Windows-tuki on nyt siinä vaiheessa, että varhaiset käyttäjät voivat alkaa käyttää Swiftiä todellisten kokemusten rakentamiseen tällä alustalla.

Swiftin tuominen Windowsiin

Swiftin porttaamisessa Windowsiin ei ole kyse pelkästään kääntäjän porttaamisesta, vaan pikemminkin sen varmistamisesta, että koko ekosysteemi on saatavilla alustalla. Tämä sisältää kääntäjän, standardikirjaston ja ydinkirjastot (dispatch, Foundation, XCTest). Nämä kirjastot ovat osa sitä, minkä ansiosta kehittäjät voivat kirjoittaa tehokkaita sovelluksia helposti ja ilman, että heidän tarvitsee huolehtia monista taustalla olevan järjestelmän yksityiskohdista. Tarinassa Swiftin saattamisesta käyttökelpoiseen tilaan Windowsissa on monia teknisiä yksityiskohtia, ja jos olet niistä kiinnostunut, suosittelen tutustumaan LLVM-kehittäjäkonferenssissa pitämääni esitykseen aiheesta.

Näiden ydinkirjastojen ja Swiftin joustavan yhteentoimivuuden C:n kanssa ansiosta on mahdollista kehittää sovelluksia Windowsissa puhtaasti Swiftillä ja samalla hyödyntää Windows-alustoilla jo olemassa olevaa kirjastojen kirjastojen korpusta.

Esimerkkisovellus

Tämä demolaskin on kirjoitettu kokonaan Swiftillä, ja koodi vaihtelee saumattomasti Swiftillä kirjoitetun sovelluskoodin ja järjestelmäkirjastojen välillä:

Tämä projekti on rakennettu käyttäen:

  1. Swift-työkaluketju Windowsissa

  2. Visual Studio 2019:n asennus, joka toimittaa muut tarvittavat palat CMaken, Ninjan ja Windows SDK:n muodossa

Vaikka demosovellus on rakennettu CMakella, Swift-paketinhallintatuki Windowsissa on tulossa. Pian on mahdollista saada sovellus rakennettua swift build:n avulla tarvitsematta CMakea tai Ninjaa.

Tässä näet sovelluksen läpikäymisen lldb:

Ristikkäisalustaiset sovellukset

Varhaistoimijat, kuten Readdle, kokeilevat Swiftillä kirjoitettuja ristikkäisalustaisia sovelluksia, ja tuovat helposti monia olemassa olevia Swift-kirjastoja Windowsille sovellustensa tueksi.

Olin ollut tekemisissä Readdlen Alexanderin kanssa hänen tiiminsä työstä, ja hän lähetti minulle tämän viestin:

Me Readdlellä aloimme kokeilla Swiftiä Windowsissa yli vuosi sitten, vuoden 2019 toisella neljänneksellä. Siihen mennessä olimme jo julkaisseet Sparkin Androidille, joka käyttää Swiftiä jakamaan ydinkoodia iOS:n/macOS:n kanssa, ja mahdollisuus laajentaa vielä yhdelle alustalle oli todella houkutteleva.

Huolimatta siitä, että jotkin toiminnallisuudet eivät vielä olleet valmiita, Swift on Windows osoittautui täysin tarpeitamme vastaavaksi. Itse asiassa jotkut kolmannen osapuolen C/C++-riippuvuudet aiheuttivat meille enemmän päänvaivaa kuin Swift itse. Kaikki Sparkin liiketoimintalogiikka sijaitsee erillisessä Core-moduulissa. Itse asiassa moduulien paketissa, mutta me kutsumme niitä Coreiksi. Näin voimme käyttää mitä tahansa UI-kehystä kohdealustalla: AppKit macOS:ssä, UIKit iOS:ssä, natiivi UI Toolkit Androidissa. Periaatteessa meidän oli siis siirrettävä Spark Core Windowsille. Kun kaikki alkuperäiset konseptit oli todistettu, oli enimmäkseen rutiininomaista päivittäistä työtä saada se eloon Windowsissa.

Mitä meillä on nyt:

  • 9 Swift-moduulia (255 739 SLOC, 2 133 lähdetiedostoa)
  • 3 kolmannen osapuolen swift-moduulia
  • 1452 testiä (powered by XCTest)
  • Windows-pohjainen CI pitääksemme kaikki testit vihreinä
  • Heterogeeninen build-järjestelmä (osittain CMake, osittain omia skriptejä)

Hyvänä esimerkkinä puhtaat Swift-moduulit, kuten CryptoSwift ja OAuthSwift, toimivat lähes suoraan laatikosta. Teimme triviaalin import-sovituksen, jätimme pois muutaman AppKit/UIKit-viittauksen ja voilà!

Toinen haaste oli päättää, miten käyttöliittymä toteutetaan. Laajan keskustelun jälkeen päädyimme Electroniin tulevan Spark for Windowsin front-end-osana. Tämä tarkoitti sitä, että meidän ei tarvinnut vain pystyä rakentamaan Spark Corea Windowsissa, vaan myös käyttää sitä ladattavana lisäosana Node.js:lle.

Node.js lisäosa puhtaassa Swiftissä? Se näytti olevan yllättävän helppoa. Swift tuo täydellisesti N-API-otsikot. Tarvitsemme edelleen kolme riviä C-koodia ja yhden pienen C-otsikon määrittelemään addonin tulopisteen, mutta kaikki logiikka on Swiftissä. Node.js:n alustarajat ylittävän luonteen ansiosta pystyimme käyttämään macOS:ää kehitysalustana ja Xcodea IDE:nä, ja sen jälkeen käyttämään CMaken ketteryyttä saman koodin rakentamiseen Windowsissa.

Ensimmäisestä aloittamispäivästä lähtien Swift Windowsissa teki valtavan askeleen eteenpäin alustatuen ja vakauden suhteen. Sanoisin, että jos harkitset olemassa olevan sovelluskoodipohjasi laajentamista muille alustoille kuin macOS/iOS – voit ehdottomasti tehdä sen Swiftillä nyt, tai ainakin pian. Jos ylläpidät pientä Swift-kirjastoa – voit helposti lisätä Windows-tuen jo nyt!

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

Lisätietoa löytyy Readdlen blogista.

Windows-tuen lisääminen Swiftiin on matkan alku. Nykyinen tuki asettaa ensimmäisen virstanpylvään, jossa kieli on käyttökelpoinen. On vielä toinenkin vielä laajempi osa ekosysteemiä, kuten lldb ja Swift Package Manager, jotka tarvitsevat vielä lisää työtä ollakseen yhtä täydellisiä tuessaan tätä erilaista alustaa.

Aloittaminen ja osallistuminen!

Aloittaminen-osiota on päivitetty uusilla tiedoilla Swiftin käytöstä Windowsissa! Varhaiskäyttäjät, jotka ovat aloittamassa ja löytävät ongelmia, pyydämme ilmoittamaan niistä Swift Bug Trackeriin.

Seille, jotka ovat kiinnostuneita auttamaan Swiftin edistämisessä Windowsissa, on monia mahdollisuuksia. Yksi niistä asioista, jotka tekevät Swiftistä helppokäyttöisen, ovat kirjastot: uusien kirjastojen ja pakettien julkaiseminen Swift on Windowsille tai olemassa olevien pakettien porttaaminen on toinen tapa osallistua ja auttaa tekemään Swiftin kanssa työskentelystä yhä miellyttävämpää.

Ydintyökalujen parissa työskentelystä kiinnostuneille on paljon työtä debuggerin ja Swiftin pakettihallinnan Windows-tuen parantamiseksi. Kutsumme sinut tutustumaan Swift Bug Trackeriin ajankohtaisten ongelmien osalta ja lähettämään korjauksia GitHub-tietovarastoihin. Swift-foorumeilla on myös uusi osio, jossa keskustellaan Swiftin kehittämisestä Windowsissa. Siellä yhteisö voi keskustella ongelmista tai voit esitellä itsesi ja kertoa muille, mihin työkalujen osa-alueeseen keskityt. Tämä on täydellinen tilaisuus tulla mukaan projektiin ja auttaa sitä kasvamaan vahvaksi, elinvoimaiseksi, alustarajat ylittäväksi ekosysteemiksi. Emme malta odottaa, mitä jännittäviä asioita sinä rakennat Swiftin avulla!

Vastaa

Sähköpostiosoitettasi ei julkaista.