Not seeing a Scroll to Top Button? Go to our FAQ page for more info. Personal Notebook: Swift 2 на linux

пятница, 8 января 2016 г.

Swift 2 на linux

3 Декабря компания apple открыла исходные коды языка swift теперь каждый может использовать и адаптировать язык и компилятор для своих нужд. Например на гитхабе есть форк под андройд. О проекте узнать можно тут github.com/SwiftAndroid. Исходники swift от apple доступны по адресу github.com/apple, оффициальный сайт языка swift.org. На сайте есть готовые бинарники для linux ubuntu. Cтоит отметить то, что хоть apple и открыла код компилятора возможность писать под iOS или OSX c поддержкой фреймворков яблочной компании например таких, как Darwin, Cocoa или UIKit у вас не получиться т.е. вам для этих целей все равно нужен мак c установленным xcode.

 Полезные ссылки которые могут пригодиться для изучения языка



Документация на английском доступна на оффиальном дев. сайте аппле


  Уроки от Алексея Скутаренко



Уроки от JustDev



Уроки от Hexlet



Справочник по swift

Вопросы и ответы, а также нужные материалы можно поискать в сообществе Justdev в контакте

-----------

И так пробуем навый язык в действии.

Для нормальной работы нам понадобится готовый архив компилятора языка с офф. сайта Скачиваем и распаковываем в домашнюю папку.

# Для ubuntu 15.10 
wget -O swift-2.2.tar.gz https://swift.org/builds/ubuntu1510/swift-2.2-SNAPSHOT-2015-12-18-a/swift-2.2-SNAPSHOT-2015-12-18-a-ubuntu15.10.tar.gz 

# Для Ubuntu 14.04 
wget -O swift-2.2.tar.gz https://swift.org/builds/ubuntu1404/swift-2.2-SNAPSHOT-2015-12-18-a/swift-2.2-SNAPSHOT-2015-12-18-a-ubuntu14.04.tar.gz 

tar -zxvf swift-2.2.tar.gz 

NB! Пакет имеет статус Development, stable релиз выйдет поже.

Устанавливаем необходимые библиотеки

sudo apt-get install clang libicu-dev

Для тех, кто компилирует из исходников необходимы библиотеки clang 3.5 или выше, Cmake 2.8.12.2 или выше, python 2.7, а также ninja, llvm, lldb и т.д.

Библиотеки установить в ubuntu можно командой

sudo apt-get install git cmake ninja-build clang python uuid-dev libicu-dev icu-devtools libbsd-dev libedit-dev libxml2-dev libsqlite3-dev swig libpython-dev libncurses5-dev pkg-config

NB! lldb требует swig-1.3.40, но скомпилирован был удачно и с версией 2.

Если вы компилируете в Ubuntu 14.04 LTS вам нужно обновить clang компилятор до С++ 14 и создать ссылки (симлинки):

sudo apt-get install clang-3.6 
sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-3.6 100 
sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-3.6 100 

Далее редактируем профиль вашей домашней папки

gedit .profile 

Добавляем туда полный путь до бинарного файла который находится в недавно распакованной папке, в /usr/bin папке

export PATH=/home/userName/swift-2.2-SNAPSHOT-2015-12-31-a-ubuntu15.10/usr/bin/:"${PATH}" 

Выходим из аккаунта и заходим обратно, чтобы настройки вступили в силу. Теперь вы можете запускать файлы командой

swift testMycode.swift

 Для проверки можно использовать вот эту команду

swift --version

Результат должен быть как на картинке

image -----------
Где и как писать код?

Так, как swift молодой язык, то в linux нет среды разработки подобной Xcode от apple и скорей всего может возникнуть вопрос, а где же писать?

Для знакомства можно попробовать использовать онлайн редактор от IBM.
Узнать больше можно по ссылке Об онлайн редакторе от IBM

Онлайн песочница от IBM 

Второе, что мне приходит в голову, это редактор Sublime text 3. Допилив его напильником можно получить более-менее рабочий редактор c подстветкой синтаксиса для swift. 

Напильником для sublime text editor может послужить Package Control.
Для установки Package Control откройте консоль в sublime text 3 и введите туда код установки

import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by) 

После установки заходим в контроль пакетов, в редакторе и ищем плагин под названием swift programming language.

Веб адрес плагина Swift plugin

 -----------

Используем проект

1. Создаем папку проект с вашим названием, а внутри папку sources и файл манифест Package.swift

2. Кидаем в папку sources все файлы с кодом swift

3. В файле Package.swift добавляем вот такой код import PackageDescription let package = Package( name: "Имя_пакета_библиотеки_с_сохранением_кавычек" )

4. Запускаем компиляцию в папке вашего проекта swift build

5. Скомпилированный проект можно найти в .build/debug/имя_пакета

-----------

Использованные материалы
https://vk.com/justdev?w=wall-72394213_3678%2Fall
https://github.com/apple/
https://swift.org
http://blog.krzyzanowskim.com/2015/12/04/swift-package-manager-and-linux-compatible/
Надеюсь кому то это будет полезно!



Комментариев нет: