3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

IBM Swift Sandboxでサードパーティのパッケージを使用する簡単な方法

Last updated at Posted at 2016-06-22

Swift環境を構築しなくても、Linux上で動作するSwift3.0の動作を手軽に確認できる IBM Swift Sandbox をちょろちょろっと触ってみたみた方も少なくないのではないでしょうか。しかし、FoundationGlibcDispatchなどの標準ライブラリだけでなく、サードパーティの外部ライブラリを使用したコードの動作確認も行いたいと思うはずです。

本記事では、次のスクリーンショットのように、IBM Swift SandboxSwiftyJson などの外部ライブラリが利用できるようにする方法を紹介します。
今回作成したサンプルはGithubで公開しています1。また、実際の動作を確認する場合はこちら2をご覧ください。
なお、この記事は調査中の内容も含んでいるので、すべての外部パッケージに適応できるかどうかは不明ですのでご注意ください。

動作画面

必須のディレクトリ構成とファイル

公開中のGitHubのリポジトリを見ていただくと、全体のディレクトリ構成がわかると思いますが、重要なのは次のファイルのみです(現時点でわかってる範疇では)。

├── .swift-version
├── Package.swift
└── Sources
    └── main.swift
ファイル名 意味
.swift-version サンドボックスの環境を示す文字列
Package.swift 依存(使用したい)するライブラリを含めたパッケージの記述
main.swift ライブラリを使用したコード

.swift-version

DEVELOPMENT-SNAPSHOT-2016-05-09-a 

Package.swift

import PackageDescription

let package = Package(
    name: "examples-for-ibm-swift-sandbox",
    dependencies: [
        .Package(url: "https://github.com/IBM-Swift/SwiftyJSON.git", majorVersion: 8),
        .Package(url: "https://github.com/IBM-Swift/BlueCryptor.git", majorVersion: 0, minor: 2),
        .Package(url: "https://github.com/IBM-Swift/HeliumLogger.git", majorVersion: 0, minor: 9)
            ]

majorVersionminor の値の詳細については、現在調査中です。

Sources/main.swift

import Foundation
import SwiftyJSON

func JSONExample() {
    let json = JSON(["name":"naokits", "age": 50])

    if let name = json["name"].string {
        print(name)
    }

    if let age = json["age"].int {
        print(age)
    }
}

JSONExample()

呼び出し方法

実際に利用するURL全体は脚注を参照してください。

ベースURL: https://swiftlang.ng.bluemix.net/#/repl?

パラメータ 説明
gitPackage https://github.com/naokits/examples-for-ibm-swift-sandbox.git サンプルリポジトリのような構成のリポジトリ
swiftVersion swift-DEVELOPMENT-2016-05-09-a-ubuntu15.10 動作が保障されているサンドボックスの(Docker?)環境

swiftVersion パラメータの値と、 .swift-version の内容の関連性については現在わかっていません。

注意事項

  • 使用する外部ライブラリは、Swift Package Manager に対応している必要があります。
  • また IBM Swift Package Catalog3 で紹介されているライブラリに限られるかもしれません。
  • ライブラリが対応しているSwiftのバージョンを確認すること。
    • サンドボックスは頻繁にバージョンアップされるので、ライブラリ側の対応バージョンを確認する必要があります。

まとめ

少しはヒントになったかと思いますが、いかがでしょうか?
現在不明な点については今後も調査を続けたいと思いますし、 IBM's Mobile Innovation Lab の方が、情報を提供してくれるそうですので、それらの内容を本記事に反映したいと思います。

IBM Swift Sandbox4で外部ライブラリが使用できるようになれば、今後記事を書こうと思っている OpenWhist5 のアクションの動作確認もできる可能性があるので、自分的にも不明な点を明らかにして、様々な外部ライブラリを使用できるようにしたいと考えています。

こちらでも頑張っていますので、応援いただけると嬉しいです。
https://github.com/naokits/my-programming-marathon

  1. https://github.com/naokits/examples-for-ibm-swift-sandbox

  2. https://swiftlang.ng.bluemix.net/#/repl?gitPackage=https:%2F%2Fgithub.com%2Fnaokits%2Fexamples-for-ibm-swift-sandbox.git&swiftVersion=swift-DEVELOPMENT-2016-05-09-a-ubuntu15.10

  3. https://swiftpkgs.ng.bluemix.net/

  4. https://swiftlang.ng.bluemix.net/#/repl

  5. http://www.ibm.com/cloud-computing/bluemix/openwhisk/

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?