LocoPartners 開発ブログ

LocoPartners 開発者達によるブログです

Swift Library & Xcode Plugin

なんか最近あれですね。暑いですね。

こんばんは。LocoPartersエンジニアインターンの竜口です。 普段はサーバーサイドを担当していますが、 最近Swiftを触っているので 今回のブログでは、実際に使ってみて良かった SwiftのLibrary と XcodeのPlugin を紹介します。

目次

  • Swift
    • Alamofire
    • AlamofireImage
    • SwiftyJSON
    • Quick
    • Nimble
  • XCode
    • VVDocumenter-Xcode
    • Alcatraz

Swift

Alamofire

github.com

機能
  • HTTPネットワークライブラリ
  • HTTPリクエストを書きやすくする
  • 非同期通信
使い方
Alamofire.request(
    .POST, //HTTPメソッド
    "https://hoge.com",  //リクエストURL
    parameters: ["test": "hoge"], //パラメーター
    headers: ["Content-Type" : "application/json"] //ヘッダー
    ).response { (request, response, data, error) -> Void in
        //レスポンス
    }

AlamofireImage

github.com

機能
  • 非同期通信で画像取得
  • 画像のキャッシュ管理もしてくれる
  • 画像取得中のplaceHolderも設定可能
使い方
customCell.placeImg.af_setImageWithURL(
    NSURL(string: "https://hoge/image")!, // URL
    placeholderImage: nil, //プレースホルダーの画像を設定
    filter: nil //取得した画像の加工(角丸等)
)

SwiftyJSON

github.com

機能
  • JSONを扱いやすくする
  • Alamofireと連携して使える  → responseをJSON型で取得できる
使い方
{
    "count" : 2,
    "Hotels" : [
        {
            "Hotel" : {
                "name": "hogeHotel",
                "Price": 300000
            },
            "Hotel" : {
                "name": "hogeRyokan",
                "Price": 500000
            }
        }
    ],
}
let data = JSON(jsonData)
let hotels = data["Hotels"]

hotels.forEach{(id, hotel) in
    print(hotel["name"].string) // return "hogeHotel"
    print(hotel["price"].int)   // return 300000
}

Quick / Nimble

github.com

機能
使い方
let val = 3 + 2
it("is equal"){
    expect(val).to(equal(4)) //失敗 エラー文言:expected to equal <4>, got <5>
}
it("is equal"){
    expect(val).notTo(equal(4)) //成功
}

XCode

Alcatraz

alcatraz.io

機能
使い方

1.インストール

curl -fsSL https://raw.github.com/supermarin/Alcatraz/master/Scripts/install.sh | sh

2.Xcodeを再起動
3.Window > PackeageManager (cmd+shift+9) で表示

VVDocumenter-Xcode

github.com

機能
  • コメントを保管
  • 引数、返り値も自動で保管
使い方

/// と入力するだけで完了

https://camo.githubusercontent.com/58e452b57245cd79c2e59ac7926609be4dffbfd8/68747470733a2f2f7261772e6769746875622e636f6d2f6f6e65766361742f5656446f63756d656e7465722d58636f64652f6d61737465722f7676646f63756d656e7465722d73776966742e676966