Swift Open Source Library

useful library for swift
ရေးသားသူ : saturngod

Swift ဟာ အခုအချိန်မှာ အတော်လေးကို stable ဖြစ်နေပါပြီ။ Swift ကို သုံးပြီးရေးတဲ့ အခါမှာ အသုံးဝင်မယ့် library အချို့ ကို ဖော်ပြလိုက်ပါတယ်။

Alamofire

Objective-C သုံးခဲ့တုန်းက AFNetworking ကို သုံးဖူးမယ်ထင်ပါတယ်။ AFNetworking Developer Mattt Thompson က Swift အတွက် Alamofire ဆိုပြီး ဖန်တီးထားပါတယ်။

Feature တွေကတော့

အသုံးပြုပုံတွေကတော့

Request

import Alamofire

Alamofire.request(.GET, "http://httpbin.org/get")

Response

Alamofire.request(.GET, "http://httpbin.org/get", parameters: ["foo": "bar"])
         .response { (request, response, data, error) in
                     println(request)
                     println(response)
                     println(error)
            }

အသေးစိတ်ကတော့ Alamofire ရဲ့ Github စာမျက်နှာ ဖတ်နိုင်ပါတယ်။

SwiftyJSON

Swift မှာ JSON ကို အသုံးပြုတဲံအခါမှာ Objective-C မှာလို လွယ်လွယ်သုံးလို့ မရပါဘူး။ ဥပမာ code လေးကို ကြည့်ကြည့်ပါ။

let jsonObject : AnyObject! = NSJSONSerialization.JSONObjectWithData(dataFromTwitter, options: NSJSONReadingOptions.MutableContainers, error: nil)
if let statusesArray = jsonObject as? NSArray{
    if let aStatus = statusesArray[0] as? NSDictionary{
        if let user = aStatus["user"] as? NSDictionary{
            if let userName = user["name"] as? NSDictionary{
                //Finally We Got The Name

            }
        }
    }
}

ဒါမှမဟုတ် optional ကို အသုံးပြုပြီးတော့ ရေးနိုင်ပါတယ်။

let jsonObject : AnyObject! = NSJSONSerialization.JSONObjectWithData(dataFromTwitter, options: NSJSONReadingOptions.MutableContainers, error: nil)
if let userName = (((jsonObject as? NSArray)?[0] as? NSDictionary)?["user"] as? NSDictionary)?["name"]{
  //What A disaster above
}

တကယ်လို့ SwiftyJSON ကိုသာ အသုံးပြုမယ်ဆိုရင်

let json = JSON(data: dataFromNetworking)
if let userName = json[0]["user"]["name"].string{
  //Now you got your value
}

ဆိုပြီး ရှင်းရှင်းလင်းလင်း ရေးနိုင်ပါတယ်။

တကယ်လို့ optional အတွက် ဆိုရင် အောက်ကလို ရေးနိုင်ပါတယ်။

let json = JSON(data: dataFromNetworking)
if let userName = json[999999]["wrong_key"]["wrong_name"].string{
    //Calm down, take it easy, the ".string" property still produces the correct Optional String type with safety
} else {
    //Print the error
    println(json[999999]["wrong_key"]["wrong_name"])
}

github မှာ SwiftyJSON ကို download ချနိုင်ပါတယ်။

HanekeSwift

Swift မှာ cache ကို အသုံးပြုချင်ရင်တော့ HanekeSwift ကို အသုံးပြုနိုင်ပါတယ်။ light weight ဖြစ်ပြီးတော့ UIImage , NSData , JSON , String စတာတွေကို သိမ်းထားနိုင်ပါတယ်။

URL request လုပ်ပြီး cache ပါ သိမ်းထားချင်တယ်ဆိုရင် အောက်ကလို မျိုး အသုံးပြုနိုင်ပါတယ်။

let cache = Cache<JSON>(name: "github")
let URL = NSURL(string: "https://api.github.com/users/haneke")!

cache.fetch(URL: URL).onSuccess { JSON in
   println(JSON.dictionary?["bio"])
}

Key value storage အနေနဲ့ သိမ်းချင်ရင်တော့

let cache = Shared.dataCache

cache.set(value: data, key: "funny-games.mp4")

// Eventually...

cache.fetch(key: "funny-games.mp4").onSuccess { data in
    // Do something with data
}

ဆိုပြီး သိမ်းနိုင်ပါတယ်။

အသေးစိတ်ကိုတော့ github မှာ ဖတ်နိုင်ပါတယ်။