OSXでオープンソースSwiftの開発環境-まずビルドまで

このエントリーをはてなブックマークに追加
はてなブックマーク - OSXでオープンソースSwiftの開発環境-まずビルドまで

Swiftでの開発環境

Swiftでボットを作るためのフレームワークをオープンソース化しました こちらの記事でオープンソースSwiftでの開発を始めているのですが、最初あまりにも試行錯誤だったので、まとめの情報を書いておきたいと思います。僕もわからないことばかりで、試行錯誤中なので、この方法がいいよというのがあったら教えてください。

ビルドの環境を整える

まずはSwiftのコンパイラなのどのビルドの環境が必要です。オープンソースのSwiftは、現在6月のWWDC、9月の次期iOSを目標にSwift3.0の実装が行われていますので、月に2度のスナップショット毎に、昨日が少しずつ追加されています。そのため、複数のビルドを使い分ける環境にするkylef/swiftenv: Swift Version Manager をインストールします。

Homebrew でインストール

Bash以外の方は、リンクを見たら書いてあります。

これで、月2回のスナップショットをインストールできます。今僕が作っているプロジェクトは2月8日版を使っているので、以下のようにインストールできます

最新の4/12番だと、

となります。
各プロジェクトごとにこれは変わってくるので、フォルダごとに使うSwiftのスナップショットを設定できるようになっています。

と設定すると、.swift-versionというファイルが生成され、その中には、

と書き込まれます。Swiftの実行の際に、まずこのファイルを見て、使用するSwiftコンパイラを選んでいます。

プロジェクト作成

プロジェクト作成は簡単です。まず、からのフォルダを作成します。

これでDesktop上にmytestというフォルダができました。次に上のコマンドでSwiftを設定します。

そのあと、Swiftのテンプレートで、プロジェクトを作成します。

以下で空のテンプレートが作成されます。

プロジェクト編集

いろいろあると思いますが、僕は [Atom] (https://atom.io/) で編集しています。AtomにSwift関係のプラグインを入れると、簡単なコード保管も使えます。Atomがインストールされていれば、以下のコマンドで編集できます。

Screen Shot 2016-04-21 at 12.37.51 AM

Swift関係のプラグインを一通り入れてみました。

Screen Shot 2016-04-21 at 12.42.19 AM

Hello Worldでできたファイルを見ると、こうなっています。

Screen Shot 2016-04-21 at 12.44.01 AM

Hello Worldと出すだけのSwiftコードですね。

そのままだと味気がないので、ちょっと変えてみましょう。
Screen Shot 2016-04-21 at 12.48.03 AM
1-9を足して表示するコードですね。

ビルド、実行

ではこれを実行します。Terminalから以下のコマンドを実行します。

あら、うまくいきませんでした。コードのビルドは最初の行の、swift buildで簡単にできます。ここではaの定義が変だったので、ビルドがうまくいきませんでした。エラーメッセージとWebを見て書き直しました。

Screen Shot 2016-04-21 at 12.59.35 AM

Arrayの定義が正しい形になりました。1-10に変更しました。これでもう一回ビルドすると、

と成功しました!
これで、実行するには、

と、実行ファイル名をコマンドに入力して実行できます。答えも正しいですね。

上記が基本の基本です。ライブラリを読み込んだり、makeファイルを作ったり、Linuxでテストしたりは以後また書こうかなと思います。

Comments

comments

Powered by Facebook Comments

One comment

  1. Pingback: Open Source Swift でMySQLにつなげるためのSwiftクラスを生成するコードを公開しました |

Post a comment

You may use the following HTML:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">