Как программировать в Swift в Windows 10
Swift — один из самых популярных языков на данный момент, и это вызвало волнение у многих, и не без причины. Приложения OS X и iOS занимают огромную часть рынка. Возможность создавать приложения для iOS изначально важна для людей, которые не хотят погружаться в темные глубины Objective C (хотя есть много веских причин для изучения C
Если вы новичок в программировании, вы, безусловно, можете извлечь выгоду из изучения более нового языка, такого как Python
, Swift также вписывается в эту коробку, вырезая некоторые углы, которые некоторые считают препятствием для начинающих, обучающихся программированию.
Поскольку Swift является родным для Apple, может показаться сложным понять, с чего начать, если у вас нет Mac. Не существует готового способа компиляции Swift в Windows. Означает ли это, что пользователи Windows не могут изучать Swift? Как оказалось, нет! Есть выход.
В этой статье вы узнаете, как создать простую программу Swift и как скомпилировать и запустить ее в Windows 10.
Что такое Свифт?
Прежде чем мы начнем, давайте посмотрим, что же такое Swift. Swift — это язык программирования, разработанный Apple, который берет идеи «из Objective-C, Rust, Haskell, Ruby, Python, C #, CLU и многих других», по словам создателя проекта Криса Латтнера.
Это относительно молодой язык, который был выпущен для публики в 2014 году, хотя он уже широко известен. Индекс лучших языков программирования TIOBE в 2017 году поставил Swift на 11-е место, что делает его одним из самых быстрорастущих языков за все время.
Изображение предоставлено: stackify.com
Короче говоря, если вы программируете для OS X или iOS, Swift для вас! Для более глубокого изучения использования Swift, взгляните на эти причины, почему Swift стоит изучить
Начало работы с Swift в Windows
Во-первых, нам понадобится редактор для написания нашего кода. Вы можете использовать любую IDE, которая вам удобна, хотя использовать ее не обязательно, и любого текстового редактора тоже будет достаточно. Это в основном сводится к личным предпочтениям, хотя, если вам нужна помощь, решение о том, что использовать это руководство, может помочь вам
Сегодня мы собираемся использовать Notepad ++, так как он бесплатный, простой и может быть расширен при необходимости
, Загрузите Блокнот ++ и откройте его. Давайте приступим к некоторому кодированию!
Привет тебе!
Для нашего тестового проекта сегодня мы собираемся создать простую программу, которая будет работать в командной строке Windows. Начните с открытия нового файла Notepad ++. Мы начнем с вывода вопроса на экран, подождем, пока пользователь напечатает его ответ, а затем используем этот ответ для предоставления ответа.
Это отобразится, как только программа запустится. Теперь, когда мы задали вопрос, мы должны предоставить пользователю возможность ответить. Для этого мы используем Readline () метод и сохранить ответ в виде переменной с именем ответ.
Если вы уже знакомы с другими языками программирования, вы можете заметить здесь несколько небольших отличий. Во-первых, мы можем хранить данные, полученные из readLine, как вар вместо того, чтобы указывать, что это будет строка. Еще одно изменение для тех из вас, кто пришел из JavaScript
это отсутствие точки с запятой для обозначения конца строки. Пользователи Python
может быть, здесь уже больше дома!
Теперь, когда эта информация хранится в переменной, мы хотим использовать ее и отобразить ее пользователю. Что может быть лучше, чем пожелать им хорошего дня?
Даже если у вас есть опыт работы с другими языками, вы увидите здесь некоторые различия. Вместо того, чтобы использовать + оператор за кавычками для отображения вашей переменной, вы используете \ (ИмяПеременный) в кавычках. Еще одной особенностью Swift является использование Необязательные значения. Эти значения трудно понять на первый взгляд, но они расширяют функциональность использования переменных в Swift.
В этом случае мы просто хотим отобразить значение как есть, поэтому мы добавляем восклицательный знак после имени переменной ответ! обозначить, что это не необязательное значение. Необязательное значение — это переменная, которой может или не может быть присвоено значение. Это не требует одного. Если ему не присвоено значение, ему будет присвоено ноль. Знак вопроса (?) После типа значения определяет его как необязательный, а восклицательный знак означает, что это не так.
Теперь, когда мы закончили, ваш код должен выглядеть примерно так:
Чтобы сохранить свой код, используйте Файл> Сохранить как и выберите Свифт файл от Сохранить как тип меню. Если в вашем меню отсутствует тип файла Swift, выберите все файлы вместо этого, и добавьте .быстрый расширение файла после выбранного вами имени файла.
Компиляция Swift в Windows 10
Теперь, когда у нас есть программа, мы должны быть в состоянии скомпилировать и запустить ее. Хотя в Windows 10 нет встроенного способа программирования Swift, существует обходной путь. Хан Санджин создал компилятор для Swift, который можно загрузить с Github. Загрузите и установите приложение Swift для Windows, используя инструкции, приведенные в ссылке.
Как только это установлено, откройте это. Вам будет представлен такой интерфейс:
Нажми на Выберите файл кнопку и выберите вашу ранее сделанную программу. Нажмите компилировать и подождите, пока программа скомпилируется. Для такой маленькой программы это должно быть почти мгновенно, хотя это может занять время, в зависимости от того, насколько сложным вы сделали свой код!
Вы должны получить сообщение «Успешно скомпилировано» в диалоговом окне. Если нет, вернитесь и проверьте свой код, чтобы убедиться, что вы не допустили ошибок. Как только код скомпилирован, нажмите Бежать запустить вашу программу. Программа откроется в командной строке Windows и должна выглядеть следующим образом:
Стоит отметить, что вы должны использовать приложение Swift для Windows, чтобы запустить свой код, .EXE Созданный файл не будет работать отдельно, даже если приложение открыто.
Маленькие Начало
Поскольку Swift не предназначен для использования в Windows 10, это единственный способ начать работу с языком в настоящее время за пределами виртуальной машины.
, Хотя он ограничен, для тех, кто интересуется языком, это отличный способ получить практический опыт работы с ним и изучить его синтаксис.
Если вы решите, что Swift для вас и планируете работать с ним на OS X, есть множество инструментов
там, чтобы помочь вам. Как только вы овладеете основами, почему бы не попробовать несколько начинающих проектов
воплотить свои знания в жизнь?
Если вы являетесь пользователем Linux и задаетесь вопросом, возможно ли кодировать в Swift с помощью Ubuntu, у нас есть несколько хороших новостей
Вы изучаете Swift? Как вы себя чувствуете по сравнению с другими новыми языками кодирования? Мы пропустили какие-либо другие замечательные хаки, чтобы начать работать с ним в Windows 10? Дайте нам знать в комментариях ниже!
Introducing Swift on Windows
The Swift project is introducing new downloadable Swift toolchain images for Windows! These images contain development components needed to build and run Swift code on Windows.
For over a year now, there has been a significant endeavour to port Swift to Windows in conjunction with the developer community at swift.org. The Windows support is now at a point where early adopters can start using Swift to build real experiences on this platform.
Bringing Swift to Windows
Porting Swift to Windows is not about simply porting the compiler, but rather ensuring that the full ecosystem is available on the platform. This includes the compiler, the standard library, and the core libraries (dispatch, Foundation, XCTest). These libraries are part of what enables developers to write powerful applications with ease and without having to worry about many of the details of the underlying system. There are many technical details in the story of bringing Swift to a usable state on Windows, and if you are interested in them, I would recommend checking out my talk on the topic from the LLVM Developer Conference.
With these core libraries and the flexible interoperability of Swift with C, it is possible to develop applications on Windows purely in Swift while taking advantage of the existing corpus of libraries on the Windows platforms.
Example Application
This demo calculator is written entirely in Swift, with code seamlessly flipping between the application code written in Swift and the system libraries:
This project was built using:
The Swift toolchain on Windows
An installation of Visual Studio 2019 which delivers the other needed pieces in the form of CMake, Ninja, and the Windows SDK
Although the demo application is built with CMake, Swift Package Manager support on Windows is coming along. It will soon be possible to get the application building using swift build without needing CMake or Ninja.
Here you can see stepping through the application using lldb :
Cross-Platform Applications
Early adopters like Readdle are experimenting with cross-platform applications written in Swift, easily bringing many of the existing Swift libraries to Windows to support their applications.
I had been working with Alexander at Readdle about his team’s work, and he sent me this note:
We at Readdle started experimenting with Swift on Windows more than a year ago, in Q2 of 2019. By that time we already released Spark for Android which uses Swift to share core code with iOS/macOS, and the opportunity to extend to one more platform was really tempting.
Despite some functionality being unready as of yet, Swift on Windows turned out to be fully satisfying our needs. In fact, some third party C/C++ dependencies gave us more headaches than Swift did itself. All business logic of Spark is located in a separate Core module. A pack of modules, actually, but we refer to them as Core. This allows us to use any UI framework on the target platform: AppKit on macOS, UIKit on iOS, native UI Toolkit on Android. So, basically, we had to port Spark Core on Windows. After all initial concepts were proved, it was mostly routine day-to-day work to bring it alive on Windows.
What we have now:
- 9 Swift modules (255 739 SLOC, 2 133 source files)
- 3 third party swift modules
- 1452 tests (powered by XCTest)
- Windows-based CI to keep all tests green
- Heterogenous build system (partially CMake, partially custom scripts)
As a good example, pure Swift modules like CryptoSwift and OAuthSwift almost worked right out of the box. We did trivial imports adjustment, excluded a few AppKit/UIKit references and voilà!
Another challenge was to decide how to implement the user interface. After extensive discourse we ended up with Electron as the front-end part of future Spark for Windows. That meant we not only needed to be able to build Spark Core on Windows but also use it as a loadable addon for Node.js.
Node.js addon in pure Swift? That appeared to be surprisingly easy. Swift perfectly imports N-API headers. We still need three lines of C code plus one small C header to define addon entry point, but all logic is in Swift. Due to the crossplatform nature of Node.js, we were able to use macOS as a development platform with Xcode as IDE, and then use the agility of CMake to build the same code on Windows.
Since the first day we started, Swift on Windows did a giant step forward in terms of platform support and stability. I’d say, if you are thinking about extending your existing application codebase to platforms other than macOS/iOS – you absolutely can do it with Swift now, or, at least, soon. If you are maintaining a small Swift library – you could easily add Windows support already!
— Alexander Smarus; Product Engineering Lead at Spark Team, Readdle Inc
More details are available on Readdle’s blog.
Adding support for Windows to Swift is the beginning of a journey. The current support sets the first milestone where the language is usable. There is yet another even broader part of the ecosystem like lldb and the Swift Package Manager which still need more work to be as complete in their support for this different platform.
Getting Started and Getting Involved!
The Getting Started section has been updated with new information about using Swift on Windows! For the early adopters who are getting started and finding issues, please report them to the Swift Bug Tracker.
There are many opportunities for those interested in helping push Swift on Windows forward. One of the things that makes Swift easy to use is libraries: publishing new libraries and packages for Swift on Windows or porting existing ones is another way to get involved and help make working with Swift an ever greater delight.
For the ones interested in working on core tooling, there is plenty of work to be done to improve the debugger and to improve the Windows support in the Swift Package Manager. We invite you to check out the Swift Bug Tracker for the current issues and to send patches to the GitHub repositories. There is also a new section on the Swift forums to discuss the development of Swift on Windows. There the community can discuss issues or you can introduce yourself and let others know what area of the tooling you are focusing on. This is the perfect opportunity to become involved in the project and help it grow into a strong, vibrant, cross-platform ecosystem. We cannot wait to see what exciting things you build with Swift!
Except where otherwise noted, all content on this blog is licensed under a Creative Commons Attribution 4.0 International license.
Copyright © 2021 Saleem Abdulrasool All rights reserved.
Swift and the Swift logo are trademarks of Apple Inc.