Swiftでの開発環境
Swiftでボットを作るためのフレームワークをオープンソース化しました こちらの記事でオープンソースSwiftでの開発を始めているのですが、最初あまりにも試行錯誤だったので、まとめの情報を書いておきたいと思います。僕もわからないことばかりで、試行錯誤中なので、この方法がいいよというのがあったら教えてください。
ビルドの環境を整える
まずはSwiftのコンパイラなのどのビルドの環境が必要です。オープンソースのSwiftは、現在6月のWWDC、9月の次期iOSを目標にSwift3.0の実装が行われていますので、月に2度のスナップショット毎に、昨日が少しずつ追加されています。そのため、複数のビルドを使い分ける環境にするkylef/swiftenv: Swift Version Manager をインストールします。
Homebrew でインストール
1 2 3 |
$ brew install kylef/formulae/swiftenv $ echo \'if which swiftenv > /dev/null; then eval \"$(swiftenv init -)\"; fi\' >> ~/.bash_profile |
Bash以外の方は、リンクを見たら書いてあります。
これで、月2回のスナップショットをインストールできます。今僕が作っているプロジェクトは2月8日版を使っているので、以下のようにインストールできます
1 2 |
$ swiftenv install DEVELOPMENT-SNAPSHOT-2016-02-08-a |
最新の4/12番だと、
1 2 |
$ swiftenv install DEVELOPMENT-SNAPSHOT-2016-04-12-a |
となります。
各プロジェクトごとにこれは変わってくるので、フォルダごとに使うSwiftのスナップショットを設定できるようになっています。
1 2 |
$ swiftenv local DEVELOPMENT-SNAPSHOT-2016--02-08-a |
と設定すると、.swift-version
というファイルが生成され、その中には、
1 2 |
DEVELOPMENT-SNAPSHOT-2016-02-08-a |
と書き込まれます。Swiftの実行の際に、まずこのファイルを見て、使用するSwiftコンパイラを選んでいます。
プロジェクト作成
プロジェクト作成は簡単です。まず、からのフォルダを作成します。
1 2 3 4 |
$ cd ~/Desktop/ $ mkdir mytest $ cd mytest/ |
これでDesktop
上にmytest
というフォルダができました。次に上のコマンドでSwiftを設定します。
1 2 |
$ swiftenv local DEVELOPMENT-SNAPSHOT-2016-02-08-a |
そのあと、Swiftのテンプレートで、プロジェクトを作成します。
1 2 3 4 5 6 7 |
$ swift build --init Creating Package.swift Creating .gitignore Creating Sources/ Creating Sources/main.swift Creating Tests/ |
以下で空のテンプレートが作成されます。
プロジェクト編集
いろいろあると思いますが、僕は [Atom] (https://atom.io/) で編集しています。AtomにSwift関係のプラグインを入れると、簡単なコード保管も使えます。Atomがインストールされていれば、以下のコマンドで編集できます。
1 2 |
$ atom . |
Swift関係のプラグインを一通り入れてみました。
Hello Worldでできたファイルを見ると、こうなっています。
Hello World
と出すだけのSwiftコードですね。
そのままだと味気がないので、ちょっと変えてみましょう。
1-9を足して表示するコードですね。
1 2 3 4 5 6 7 |
let a = [1 ... 10] var b = 0 for c in a { b += c } print("Anser : \(b)") |
ビルド、実行
ではこれを実行します。Terminalから以下のコマンドを実行します。
1 2 3 4 5 6 7 8 9 10 11 |
MBPR:mytest tomohisa$ swift build Compiling Swift Module \'mytest\' (1 sources) /Users/tomohisa/Desktop/mytest/Sources/main.swift:5:5: error: binary operator \'+=\' cannot be applied to operands of type \'Int\' and \'Range<Int>\' b += c ~ ^ ~ /Users/tomohisa/Desktop/mytest/Sources/main.swift:5:5: note: overloads for \'+=\' exist with these partially matching parameter lists: (inout ContiguousArray<Element>, S), (inout ContiguousArray<Element>, C), (inout ArraySlice<Element>, S), (inout ArraySlice<Element>, C), (inout Array<Element>, S), (inout Array<Element>, C), (inout _ContiguousArrayBuffer<Element>, C), (inout Self, S) b += c ^ <unknown>:0: error: build had 1 command failures error: exit(1): [\"/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-02-08-a.xctoolchain/usr/bin/swift-build-tool\", \"-f\", \"/Users/tomohisa/Desktop/mytest/.build/debug/mytest.o/llbuild.yaml\"] |
あら、うまくいきませんでした。コードのビルドは最初の行の、swift build
で簡単にできます。ここではaの定義が変だったので、ビルドがうまくいきませんでした。エラーメッセージとWebを見て書き直しました。
Arrayの定義が正しい形になりました。1-10に変更しました。これでもう一回ビルドすると、
1 2 3 4 5 |
MBPR:mytest tomohisa$ swift build Compiling Swift Module &amp;#039;mytest&amp;#039; (1 sources) Linking Executable: .build/debug/mytest MBPR:mytest tomohisa$ |
と成功しました!
これで、実行するには、
1 2 3 4 |
MBPR:mytest tomohisa$ .build/debug/mytest Anser : 55 MBPR:mytest tomohisa$ |
と、実行ファイル名をコマンドに入力して実行できます。答えも正しいですね。
上記が基本の基本です。ライブラリを読み込んだり、makeファイルを作ったり、Linuxでテストしたりは以後また書こうかなと思います。
Comments
Powered by Facebook Comments
「OSXでオープンソースSwiftの開発環境-まずビルドまで」への1件のフィードバック