Новые приключения Гулливера или учимся программировать на Swift в Linux


Вот так пафосно начинается пост о ныне популярном языке разработки яблочной фирмы. Причем, сказочность языка получилась такой, что даже сам Джонатан Свифт мог бы позавидовать, когда придумывал своего Гулливера.

Когда-то еще в далеком 2010 году я решил заниматься разработкой приложений под мобильные устройства. Как и сейчас, выбор тогда сводился только к Android и iOS, остальные уже просто были в стадии вымирания. Честно, хоть я и фанател от C++, но когда столкнулся с серьезным кодом на этом языке, просто понял то, насколько меня неправильно обучали ему и насколько я его все же не знаю. Это был пример того, как неправильный выбор литературы в самом начале обучения сможет полностью сбить с пути. Просто было одновременно и приятно и досадно узнавать новое о языке, который мне тогда нравился. Но когда перешел на java, c++ уже казался неудобным, с ужасными синтаксическими конструкциями. Java показался мне тогда настолько удачным и удобным, что я буквально влюбился в него. Хотя и прекрасно понимал ее своебразную ограниченность как в производительности, так и в заявленной «переносимости» (после открытия этого неприятного для себя сюрприза я еще долго вспоминал еще существующую на тот момент Sun Mycrosystems).

На iOS тогда разрабатывали строго на Objective C. Я попытался на нем писать, но моего терпения на изучение просто не хватило. Я не случайно описал свои эмоции от сравнения java и c++. Но лучше бы на iOS писали на c++, чем на этом языке, порожденным сумрачными гениями яблочной продукции. Его синтаксис после java казался каким-то непонятным и неочевидным. В итоге я тогда и выбрал Android, а потом к нашей фирме подкрался белый пушистый полярный зверек и я вообще забросил надолго программирование.

Подобное мнение на счет Objective C разделял не только я, но и многие разработчики. В итоге App Store буквально заполонили игры и приложения, написанные на Marmalade SDK и cocos2d –x, позволявшим писать на C++.

В итоге, Apple  в 2014 году решил реально упростить разработку приложений и создал просто потрясающий язык, который влюбляет в себя с первого взгляда. Язык получил название Swift.

Я не стану описывать все его возможности и основные плюшки. Вы это сами спокойно сможете прочесть на Википедии. Вкратце лишь могу сказать, что язык оказался очень простым для изучения, понимания, он весьма шустрый и может в одном проекте работать с кодом, написанным на том же Objective C. Причем, насколько я не любил раньше Python (свое отношение к нему поменял лишь из-за Ruby), то Swift просто притянул к себе.

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

Лично я знаю только три варианта. Давайте их все и рассмотрим.

Использование веб-сервиса для запуска кода на Swift

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

Фирма IBM любезно предоставляет нам такую возможность. По адресу https://repl.it/repls/BustlingThistleButton   вы сможете спокойно запускать свой код на Swift и обучаться ему. Весьма неплохой вариант.

Для владельцев маков

Под владельцами маков здесь я подразумеваю и «счастливых» обладателей хакинтошев, так как все же невозможна разработка под iOS без OS X. Причем, если железо позволяет, можно спокойно обойтись и виртуальной машиной с установленной маковской осью.

Главное, установить либо Xcode на свой мак, либо платную AppCode от JetBrains. Плюс подобного подхода в том, что вы сможете сразу же писать готовые приложения для мобильных устройств и запускать их на эмуляторе в среде разработки. По факту, это самый православный способ. В общем, здесь все скучно и понятно.

Для владельцев Ubuntu

Apple сама себя на этот раз переплюнула, запилив опенсорсный проект. Apple и бесплатно? А завтра что? Яблофоны по цене всяких там самсунгов? 🙂

На самом деле, амбиции Apple весьма большие. Они твердо намерены подсадить программистов на свой язык, да так, что даже Google даже как то сообщил, что хочет Swift использовать в качестве языка разработки для Android.

В итоге для нищебродов типа меня можно спокойно обучаться Swift на своем компьютере под управлением Ubuntu.

Для тех, кто все же хочет установить на своем рабочем месте этот язык программирования, ниже напишу, как все же легко поставить Swift на Ubuntu.

Итак, для начала нужно убедиться, что у нас на компьютере или виртуалке стоит Ubuntu 14.04 или 16.04 и даже сойдет 16.10 (не люблю промежуточные версии, неоднократно в эпоху своего админства на этом обжигался).

Теперь с сайта https://swift.org/download/#releases выкачиваем последнюю версию swift для своей системы (он будет как всегда в архиве tar).

После этого распакуйте его в любую папку на своем ПК. Фактически, swift уже у вас установлен.

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

Запустите терминал и введите команду:

 

sudo apt-get install clang libicu-dev

После того, как все установится, нужно будет подправить профайл текстовым редактором, добавив в него две строчки. Можете это сделать любым, будь то nano, будь то gedit, суть не важна. Делаете это так:

gedit .profile

Теперь сразу спускайтесь вниз файла и добавьте две строки. Одна должна быть пустой, а во второй напишите следущий текст:

export PATH=/path/to/usr/bin:"${PATH}"

Где  /path/to/usr/bin — это путь к папке bin внутри папки usr внутри папки Swift, извлеченной из файла .tar. К примеру, если вы просто выкачали файл в папку Загрузка, то ваш путь будет примерно таким:  /home/имя_вашей_учетной_записи/Downloads/имя_папки_swift/usr/bin

Все это делается для того, чтобы ваш терминал знал, где искать swift, когда будете его вызывать из терминала.

Теперь можете использовать команду:

swift -- version.

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

Запуск программы на swift

Откройте редактор nano (ну или gedit, можно его также и расширить плагином для swift) и напишите в нем:

print("Привет ! Я твоя первая программа!")

Сохраните ее под названием, например, first и с расширением swift.

Теперь для ее запуска можно в терминале набрать команду:

swift first.swift 

В моем случае я находился в папке с созданным файлом. У вас может понадобиться явно указать каталог с этим файлом.

Запустите его и проверьте, что программа сработала.

Если вы уже программировали на чем-либо до этого, наверняка обратили внимание на то, что в данном случае swift сработал как интерпретатор, обрабатывая файл построчно.

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

В этом случае нужно будет проделать следующие манипуляции:

  1. Создайте папку проекта с любым именем, которое вам нравится, а затем создайте папку с именем “sources”.
  2. В эту папку поместите ваши файлы с расширением swift.
  3. Создайте текстовый файл с именем «Package.swift» в папке проекта (не в исходниках) и поместите в него текст:
import PackageDescription

let package = Package(

name: "ваше название проекта"

)
  1. Теперь соберите проект командой
swift build

В рабочем каталоге теперь ваш исполняемый файл можно найти по пути: .build/debug/ваш_пакет

Резюме

На самом деле, я немного покривил душой, когда написал о трех способах изучить Swift на практике. Само собой разумеется, что если это опенсорсный проект, то его портируют на другие платформы. Swift можно изучать и на Windows  посредством MinGW. На гитхабе можно спокойно скачать эту сборку по адресу https://swiftforwindows.github.io/. Там же есть и краткий мануал, как им пользоваться. По большому счету, сам принцип работы будет похож с описанием для Ubuntu просто хотя бы в силу того, что MinGW и есть мини-окружение Linux.

Какой из всех способов вам придется по вкусу, сказать уже не могу.

В заключение хотелось бы написать, что без мака вы только сможете изучить синтаксис и основные приемы работы с языком и понять, нравится он вам или нет. Для разработки под iOS одного синтаксиса Swift будет мало, нужны будут фреймворки, так что имейте это в виду.

Для тех, кто решит все же изучать Swift, пока рекомендую на Youtube найти бесплатный курс Сергея Пронина по Swift. Он до сих пор считается эталонным и неплохо обучает.

От себя могу добавить, что до разработки для яблока я дорвался только в этом году, так как все равно обходил его стороной, вспоминая впечатления от Objective C. Просто сам Swift купил своей простотой и быстротой. В нем вообще ничего лишнего. Apple сделала хит. И, уверен, что навык программирования на Swift вам пригодится.

Яндекс.Метрика