Как писать на swift на windows

Привет, Хабр!

Сегодня я поделюсь своим опытом страданий установки языка программирования Swift под Windows в форме небольшого рассказа и постараюсь описать те проблемы, с которыми я столкнулся при попытке развернуть детище Apple на платформе конкурента. 

Начну издалека. Я являюсь мобильным разработчиком под Андроид и периодически люблю развлекать себя различными экспериментами. Совсем недавно ко мне в руки попал Mac Mini на Apple Silicon — в офисе был бесхозный компьютер от яблочной корпорации и в один момент я захотел собрать свой пет-проект на KMP (бывш. КММ) под айос, посмотреть, как оно будет работать. (И будет ли работать вообще) Плюсом меня давно тянуло к макоси, было интересно за что ее кто-то обожает, а кто-то терпеть не может. Забавно, что нейтрального мнения я не встречал ни разу.

Установка Swift

В первую очередь, я решил зайти на официальный сайт Swift и посмотреть, поддерживает ли он ОС от Майкрософт. К моему счастью, добрые дяди (или тети) программисты уже попотели за меня и добавили поддержку ЯПа в винду, начиная с 10ки.

Официальный сайт Swift с инструкциями к установке для разных ОС.

Официальный сайт Swift с инструкциями к установке для разных ОС.

Переходим в инструкции для нужной нам ОС и видим это:

Инструкция по установке Swift на Windows

Инструкция по установке Swift на Windows

Нас просят изначально поставить некоторый список зависимостей. Ставим сначала Visual Studio (в моем случае 2022). При установке выбираем «Разработка классических приложений на С++». Как только поставилось, листаем чуть ниже.

И вот тут лично у меня было некоторое смятение. К чему относиться блок ниже? К scoop? winget? Почему он так оформлен, будто является частью большого заголовка? Может, я придираюсь, но, честно говоря, это совсем неочевидно.

Хорошо. Будем действовать одним из самых древних методов познания – методом тыка.

Пробуем сначала поставить winget и запустить указанные скрипты, предварительно немного их изменив:

winget install Git.Git

winget install Python.Python.3 --version 3.10.2150.0

winget install Python.Python.3.9

winget install Microsoft.VisualStudio.2022.Community --force --custom "--add Microsoft.VisualStudio.Component.Windows10SDK.19041 --add Microsoft.VisualStudio.Component.VC.Tools.x86.x64"

В чем разница? Сразу же можно заметить, что мы устанавливаем кроме Python 3.10 еще и Python 3.9. Это потребуется нам, когда мы будем собирать наш проект. Так же я просто поменял версию студии, так как скрипт написан для 2019, а у меня 2022.

Будем считать, что первый шаг сделан. Листаем инструкцию дальше.

Видим, что теперь нас просят установить сам свифт, я предпочитаю скачать exe-шник, поэтому поставлю его.

На этом казалось бы все. Свифт стоит у вас на компьютере и можно даже что нибудь написать и запустить. Ведь можно же, да? Нет. На самом деле компилятор и все тулзы у вас действительно установлены, но вот нет никакой инфраструктуры, чтобы можно было хоть что то написать и запустить. Сейчас кто-то может возразить, мол, есть же Swift REPL, интерактивный редактор кода, который идет в комплекте со свифтом, в нем же тоже можно писать код. Безусловно можно, но лично у меня возникла такая проблема:

Это вынудило меня искать обходной путь.

Установка инструментов разработки

Буквально сразу в мою голову закралась мысль: «А что, если мы будем использовать VS Code?». Иногда мне кажется, что в этом простеньком редакторе можно или вскоре будет можно даже программировать ядерные реакторы, достаточно будет лишь доставить необходимые плагины для работы. Конкретно сейчас мы ядерные реакторы не программируем, но гибкость VS Code нам так же очень пригодится.

Ставим сначала редактор, после того как поставили ставим плагин для свифта. В нем есть: подсветка кода, дебаггинг, автодополнение, запуск .swift файлов (об этой функции мы поговорим чуть позже) и много чего еще, полный список можно найти в карточке плагина.

После того как поставили, пробуем наконец таки запустить наш простенький код на свифте:

print(“Hello world!!!”)

Жмем Ctrl + Shift + P и выбираем «Swift: Run swift script». И тут лично меня ждало еще одно разочарование:

Пораскинув мозгами, я пришел к единственно верному решению – отобрать у VS Code его работу и собирать и компилировать скрипты самостоятельно, вводя команды в cmd. Не самый приятный исход, но вполне себе терпимый.

Создаем папку под на будущий проект, после чего, находясь внутри созданной нами директории, прописываем в cmd следущее:

swift package init

Далее переходим в папку Sources/<PROJECT NAME> и создаем там файл с именем main и расширением .swift (Обязательно файл должен иметь имя main, так как пакету нужна входная точка для исполнения кода). Итого файл должен называться так: main.swift.

После всего этого открываем наш main.swift в VS Code и пробуем запустить все тот же код.

Кажется, что это все и теперь мы можем спокойно выполнить наш код, но не тут-то было:

Оказывается, у нас беды с конфигурацией пакета, поэтому, в первую очередь, необходимо устранить эту проблему. Поднимаемся наверх по директориям, пока не дойдем до корневой папки пакета, где лежит файл Package.swift. Открываем его.

Меняем

let package = Package(

    name: <PROJECT NAME>,

    products: [

        // Products define the executables and libraries a package produces, making them visible to other packages.

        .library(

            name: <PROJECT NAME>,

            targets: [<PROJECT NAME>,])

    ],

    targets: [

        // Targets are the basic building blocks of a package, defining a module or a test suite.

        // Targets can depend on other targets in this package and products from dependencies.

        .target(

            name: <PROJECT NAME>,),

        .testTarget(

            name: <PROJECT NAME TESTS>,

            dependencies: ["<PROJECT NAME>,"])

    ]

)

На

let package = Package(

    name: <PROJECT NAME>,

    products: [

        // Products define the executables and libraries a package produces, making them visible to other packages.

        .executable(

            name: "main",

            targets: ["<PROJECT NAME>"])

    ],

    targets: [

        // Targets are the basic building blocks of a package, defining a module or a test suite.

        // Targets can depend on other targets in this package and products from dependencies.

        .target(

            name: <PROJECT NAME>, 

            dependencies: []),

        .testTarget(

            name: <PROJECT NAME TESTS>,

            dependencies: [<PROJECT NAME>])

    ]

)

Сохраняем изменения. Находясь в директории, где лежит файл main.swift запускаем команду:

swift run

Вуаля, код заработал, можно открывать шампанское.

Стоит отметить, что, возможно вы столкнетесь с такой проблемой, когда компилятор просто соберет готовый исполняемый файл, но не запустит его. Чтобы это решить перейдите сначала в корневую директорию проекта (папка .build/x86_64-unknown-windows-msvc\debug), там найдите файл main.exe и запустите его. Если он будет сразу же закрываться после запуска, то добавьте в конце всего кода функцию readLine() и тогда консоль не будет закрываться сразу же, а будет ждать ввод любой клавиши.

Когда я устанавливал все это дело в первый раз, я столкнулся с проблемой, которую не мог решить, после нескольких дней своих изысканий было решено забить на установку свифта прямо на винду и сделать все через WSL. Я проследовал всем инструкциям, что были указаны на сайте для установки свифт под Линукс, но опять забрел в тупик и решил бросить это дело в принципе. Но в тот же день я заметил, что ни один из установленных компиляторв C++ не может собрать простейший проект. Каждый как под копирку твердил, что не может найти необходимые файлы при линковке, естественно я начал свое расследование, что же послужило причиной выхода из строя линковщика. Искал я очень упорно, но результатов все не было, я удалил свифт с винды, переустановил начисто Visual Studio 3 раза, но ничего не помогало. И, наконец, на третий день я вспомнил про wsl и снес все пакеты, что я поставил во время той злосчастной установки. Каково же было мое счастье, что после всех попыток разобраться, я в кой то веке нашел ответ. Как уже стало ясно из рассказа, установка свифта из под wsl ломает линковщик компиляторов С++ (в частности, MSVC и GCC). Поэтому, никогда ни за что, ни при каких обстоятельствах, не совершайте этой ошибки. Она может стоить слишком дорого.

После этого, на удивление, я снова захотел поставить свифт, только теперь более основательно подойти к процессу. Результатом этого желания стала данная статья.

Заключение

Напоследок, хочу сказать, что это был крайне незабываемый опыт. Можно отметить, что документация в некоторых местах оставляет желать лучшего и хотелось бы более понятной инструкции к установке, так же, конечно, сказывается отсутствие нормального инструментария.

Надеюсь, эта ситуация изменится в лучшую сторону.

Manual Installation

Swift depends on a number of developer tools when running on Windows, including the C++ toolchain and the Windows SDK. On Windows, typically these components are installed with Visual Studio.

The following Visual Studio components should be installed:

Name Component ID
MSVC v143 — VS 2022 C++ x64/x86 build tools (Latest)1 Microsoft.VisualStudio.Component.VC.Tools.x86.x64
MSVC v143 — VS 2022 C++ ARM64/ARM64EC build tools (Latest)1 Microsoft.VisualStudio.Component.VC.Tools.ARM64
Windows 11 SDK (10.0.22000.0)2 Microsoft.VisualStudio.Component.Windows11SDK.22000

You should also install the following dependencies:

  • Python 3.9.x 3
  • Git for Windows

Developer Mode enables debugging and other settings that are necessary for Swift development. Please see Microsoft’s documentation for instructions about how to enable developer mode.

After the above dependencies have been installed, download and run the installer for the latest Swift stable release (6.1).

Alternatively, you may prefer to install a development snapshot for access to features that are actively under development.

By default, the Swift binaries are installed to %LocalAppData%\Programs\Swift.


Пройдите тест, узнайте какой профессии подходите

Работать самостоятельно и не зависеть от других

Работать в команде и рассчитывать на помощь коллег

Организовывать и контролировать процесс работы

Введение

Swift — это мощный и интуитивно понятный язык программирования, разработанный Apple для создания приложений на iOS, macOS, watchOS и tvOS. Однако, если вы являетесь пользователем Windows и хотите писать на Swift, перед вами могут возникнуть определенные сложности. В этой статье мы подробно рассмотрим, можно ли писать на Swift на Windows, какие инструменты и среды разработки доступны, а также альтернативные способы разработки на этом языке. Мы также обсудим преимущества и недостатки каждого метода, чтобы помочь вам сделать осознанный выбор.

Кинга Идем в IT: пошаговый план для смены профессии

Официальная поддержка Swift на Windows

На момент написания статьи, официальная поддержка Swift на Windows ограничена. Apple изначально разработала Swift для своих операционных систем, и основное внимание уделяется macOS. Однако, сообщество разработчиков активно работает над тем, чтобы сделать Swift доступным и на других платформах, включая Windows. Это означает, что хотя официальной поддержки нет, существуют проекты и инициативы, направленные на перенос Swift на Windows.

Swift for Windows от Apple

Apple официально не предоставляет полноценную поддержку Swift на Windows. Тем не менее, существуют проекты и инициативы, направленные на перенос Swift на Windows. Например, проект Swift for Windows, который предоставляет инструменты и инструкции для установки и использования Swift на Windows. Этот проект активно развивается и поддерживается сообществом, что делает его хорошим выбором для тех, кто хочет попробовать свои силы в разработке на Swift на Windows.

Установка Swift на Windows

Хотя официальной поддержки нет, вы можете установить Swift на Windows с помощью различных методов. Один из самых популярных способов — использование Windows Subsystem for Linux (WSL). WSL позволяет запускать Linux-дистрибутивы на Windows без необходимости использования виртуальной машины, что делает процесс установки более простым и удобным.

Установка через WSL

WSL позволяет запускать Linux-дистрибутивы на Windows без необходимости использования виртуальной машины. Вот шаги для установки Swift через WSL:

  1. Установите WSL и выберите дистрибутив Linux (например, Ubuntu). Для этого откройте PowerShell от имени администратора и выполните команду:

    После этого перезагрузите компьютер и выберите дистрибутив Linux из Microsoft Store.

  2. Откройте терминал WSL и обновите пакеты:

    Это необходимо для того, чтобы все пакеты были актуальными и совместимыми с Swift.

  3. Установите необходимые зависимости:

    Эти пакеты необходимы для компиляции и работы Swift.

  4. Скачайте и установите Swift:

    Эти команды скачивают и устанавливают Swift на вашу систему.

  5. Проверьте установку:

    Если все прошло успешно, вы увидите версию установленного Swift.

Инструменты и среды разработки

После установки Swift на Windows, вам понадобятся инструменты и среды разработки для написания и отладки кода. Существует несколько популярных редакторов и IDE, которые поддерживают Swift и могут быть использованы на Windows.

VS Code

Visual Studio Code (VS Code) — это популярный редактор кода, который поддерживает множество языков программирования, включая Swift. Для работы с Swift в VS Code вам понадобятся следующие расширения:

  • Swift Language: добавляет поддержку синтаксиса и автодополнения для Swift.
  • CodeLLDB: для отладки Swift-кода.

Эти расширения значительно упрощают процесс разработки и делают его более удобным. VS Code также поддерживает множество других полезных функций, таких как интеграция с Git, терминал и различные плагины, что делает его отличным выбором для разработчиков на Swift.

CLion

CLion от JetBrains — это мощная IDE, которая поддерживает множество языков программирования, включая Swift. CLion предоставляет интеграцию с CMake, что позволяет легко настраивать проекты на Swift. Кроме того, CLion предлагает множество инструментов для отладки и анализа кода, что делает его отличным выбором для профессиональных разработчиков.

Альтернативные способы разработки на Swift для Windows

Если установка Swift на Windows кажется вам сложной или неудобной, существуют альтернативные способы разработки на этом языке. Эти методы могут быть более простыми и удобными, особенно если вы только начинаете изучение Swift.

Использование виртуальной машины

Вы можете установить macOS на виртуальную машину с помощью программного обеспечения, такого как VirtualBox или VMware. Это позволит вам использовать Xcode — официальную среду разработки от Apple, которая поддерживает Swift. Вот основные шаги для установки macOS на виртуальную машину:

  1. Скачайте и установите VirtualBox или VMware.
  2. Найдите образ macOS и создайте новую виртуальную машину.
  3. Установите macOS на виртуальную машину и настройте Xcode.

Этот метод позволяет вам использовать все возможности Xcode и macOS, но требует больше ресурсов и времени на настройку.

Облачные среды разработки

Существуют облачные среды разработки, такие как Repl.it и Gitpod, которые позволяют писать и запускать код на Swift прямо в браузере. Это удобный способ начать изучение Swift без необходимости установки дополнительных инструментов. Облачные среды разработки также предлагают множество полезных функций, таких как совместная работа и интеграция с GitHub.

Кросс-платформенные фреймворки

Фреймворки, такие как Flutter, позволяют писать кросс-платформенные приложения на Swift и Dart. Это может быть полезно, если вы хотите разрабатывать приложения для нескольких платформ одновременно. Flutter предоставляет множество инструментов и библиотек, которые упрощают процесс разработки и делают его более эффективным.

Заключение

Хотя официальная поддержка Swift на Windows ограничена, существуют различные способы установки и использования этого языка на платформе Windows. Вы можете воспользоваться WSL, виртуальными машинами или облачными средами разработки. Каждый из этих методов имеет свои преимущества и недостатки, и выбор подходящего метода зависит от ваших потребностей и предпочтений. Надеемся, что эта статья помогла вам разобраться в возможностях разработки на Swift для Windows и выбрать наиболее подходящий для вас метод.

Читайте также

Swift is a powerful and popular programming language, especially for Mac and iOS app development. While it’s true that Swift is native to Apple’s ecosystem, you don’t necessarily need a Mac to learn and code in Swift. In this guide, we will explore how to program in Swift on a Windows 10 machine. We’ll cover the basics, including setting up an editor, writing a simple Swift program, and compiling it on Windows.

Understanding Swift

Before diving into Swift on Windows, let’s take a moment to understand what Swift is and why it’s worth learning.

What Is Swift?

Swift is a modern programming language developed by Apple. It draws inspiration from various programming languages like Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and more. Chris Lattner, the project originator, designed Swift to be efficient, easy to read, and versatile.

Despite being relatively young, Swift has gained widespread popularity since its public release in 2014. In fact, it rapidly climbed the ranks on the TIOBE Index, becoming one of the fastest-growing programming languages.

In essence, Swift is the language of choice for developers looking to create applications for Mac and iOS platforms.

Getting Started with Swift on Windows 10

To begin coding in Swift on Windows, you’ll need an editor to write your code. While you can use any Integrated Development Environment (IDE) you prefer, we’ll start with a straightforward option: Notepad++. It’s free, user-friendly, and suitable for our introductory purposes.

Setting Up Notepad++

  1. Download Notepad++: Visit the official Notepad++ website and download the application for Windows.
  2. Installation: Install Notepad++ by following the on-screen instructions.

With Notepad++ ready, let’s create a simple Swift program.

A Simple Swift for Windows Program

In this section, we will create a basic Swift program that runs in the Windows command line.

  1. Open Notepad++: Launch Notepad++.
  2. Writing the Program: Begin by writing the following code:

    swift

    // This will display when the program runs.
    print("Hello! How's your day?")

    This code prints a question to the screen.

  3. User Input: To gather user input, add the following lines:

    swift

    let response = readLine()

    This code reads the user’s response and stores it in the response variable.

  4. Displaying the Response: Now, display a message based on the user’s input:

    swift

    print("Have a great day, \(response!)!")

    Here, we use string interpolation to include the user’s response in the message.

    Note: The ! after response denotes that it’s not an optional value, indicating that it must have a value.

  5. Save Your Code: Go to “File” > “Save As” and select “Swift file” from the “Save As Type” menu. If “Swift file” isn’t available, choose “All files” and add the .swift extension to your chosen filename.

Compiling Swift in Windows 10

Now that you have a Swift program, you’ll need a way to compile and run it on Windows 10. While there is no native Swift support on Windows, there is a workaround.

Using the Swift for Windows Compiler

  1. Download the Compiler: Han Sangjin has developed a Swift compiler for Windows, available on GitHub. Download the Swift for Windows application following the provided instructions in the link.
  2. Installation: Install the Swift for Windows application on your system.
  3. Compile Your Program: Open the Swift for Windows application, click “Select File,” and choose the Swift program you created earlier. Click “Compile” and wait for the process to complete. For small programs, this should be nearly instant.
  4. Run Your Program: Once the compilation is successful, click “Run,” and your Swift program will execute in the Windows Command Line.

Conclusion

While Swift is primarily associated with macOS and iOS development, Windows users can still explore and learn the language with the right tools and setup. Notepad++ serves as a suitable text editor for writing Swift code on Windows, and the Swift for Windows compiler allows you to compile and run your programs seamlessly.

As you delve deeper into Swift, you’ll discover a wealth of resources and opportunities to enhance your coding skills. Whether you’re an aspiring developer or looking to expand your programming repertoire, Swift on Windows is a viable path to explore the world of app development.

So, why wait? Begin your Swift coding journey on Windows today, and who knows, you might soon be crafting innovative Mac and iOS applications of your own.


  • Tags


    How to Program in Swift on Windows 10

Swift has quickly become my favourite programming language. Its sleek syntax and fail safe features (guard and if let) are beautiful. My first steps with Swift were a few years back when I made my first iOS app. I knew that Objective-C was too different from what I knew at that time and I heard good things about Swift’s learning curve.

But now I wanted something more light-weight than Xcode for quick, un-sandboxed scripts. And so I looked into Visual Studio Code and Swift.

Turns out, writing a command line swift App can easily be done on macOS, Linux and Windows with VS Code, some extensions and just a few dependencies. Follow along to see how it’s done.

macOS

Firstly, install Xcode or the Xcode command line tools. I recommend installing the package manager brew (homebrew). It installs Xcode command line tools for you and comes in handy when you install software that’s not in the App Store (and even if it is!).

Now, install Visual Studio Code (if you haven’t already) and the executable SwiftLint (which is used by the extension we’ll install in a second) with i.e. brew install visual-studio-code swiftlint.

In VS Code, install the following extensions (via GUI or command line):

  1. Swift
  2. CodeLLDB
  3. SwiftLint
  4. Swift Project Creation

After that open a folder, and create a new swift project in VS Code. That’s easy, because you installed the Swift Project Creation extension. In the Sources directory, there’s a main.swift. Happy Coding. Once your code is ready to run, run it with a touch on the play button (or the play button with the critter for debugging) in your Touch Bar or with Run > Start Debugging (F5).

Windows

On Windows, things are a bit more involved but still straight forward once you know the culprits.

First, you’ll need Visual Studio Community (at the time of writing this blogpost, Visual Studio 2022 is the most recent version). Get it via winget install --id=Microsoft.VisualStudio.2022.Community -e , or directly via Visual Studio Community if you don’t have winget installed. winget (winget) is a package manager for Windows like chocolatey and scoop. They have been compared numerous times.

Don’t worry, you’ll still be using Visual Studio Code but Visual Studio must be installed!

If you hadn’t have the chance to install the «Desktop Development with C++» component with the IDE itself, install it in Visual Studio Community, install as described here.

Next, install Swift for Windows. Also, you’ll need Python 3.9 for the Swift Toolchain to work. LLDB is very picky about the Python version. Install both by using winget install Swift.Toolchain Python.Python.3.9.

Lastly, you’ll need the following Visual Studio Code extensions (via GUI or command line):

  1. Swift
  2. CodeLLDB
  3. Swift Project Creation

Note: SwiftLint — the executable required by the extension — is not available on Windows. So we omit the extension as well.

In Windows, you have to check Swift > Debugger: Use Debug Adapter From Toolchain in the Settings of the Swift VS Code Extension.

After that open a folder, and create a new Swift project in VS Code. That’s easy, because you installed the Swift Project Creation extension. In the Sources directory, there’s a main.swift. Happy Coding. Once your code is ready to run, run it with Run > Start Debugging (F5).

Linux

Help me, make this blog post complete: What are your instructions for making Swift and VS Code work on Linux?

Target Platform

For targeting the most recent macOS you have to add or change the code in Package.swift to include this snippet:

platforms: [
    .macOS(.v14)
],

Enter fullscreen mode

Exit fullscreen mode

Otherwise there will be errors if you use a language feature that is not available in the macOS version set in Package.swift.

Remarks

Swift Versions on macOS

One disadvantage of Swift is how Apple decided to deploy new versions. They only come bundled with new versions of their operating systems. However, with swiftenv (kylef/swiftenv) other versions than the bundled one can be installed. So maybe that adds a possibility to run more modern swift versions on older hardware?

VS Code Sync

VS Code can sync settings and installed extensions. If you’re running this setup on both, a macOS and a Windows machine, you’ll run into troubles:

  1. CodeLLDB has a setting that points to the lldb library. Don’t sync this setting.
  2. SwiftLint is not available on Windows. Don’t sync this extension.

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Как убрать две загрузки windows 7
  • Dcdiag windows server 2019
  • Спектроанализатор звука программа на windows
  • Гаджеты для windows 10 прогноз погоды
  • Как перевернуть пуск вниз windows 10