Başlangıç > iOS > swift ile alamofire ve swiftyjson kullanımı

swift ile alamofire ve swiftyjson kullanımı


Merhaba

Daha önceki swift ile json veri okuma yazımda swift ile json bir veriyi nasıl okuyabilceğimizi anlatmıştım ve o yazımda bu işlem için bir model oluşturmuş ve json verisini o model ile eşleştirmiştir. Bu yazımızda ise model oluşturmadan Alamofire ve SwiftyJSON kütüphanelerini kullanıp daha kolay ve basit olarak json veri okuması yapacağız. Bu işlem için yine bir proje oluşturalım ve projemize kütüphaneleri yani Pod dosyalarımı ekleyelim daha sonra da veri okuma işlemine başlayalım. Şimdi adım adım projemizi oluşturalım. Kolay olması için projesi Desktop üzerine oluşturalım.

Bu aşamada Create a new Xcode project deyip işleme devam edelim.

Burada olduğu için Single View App seçimi yapalım ve projemizin adını verelim.

Projemizin adını verdikten sonra Desktop(Masaüstü) ortamına projemizi kayıt edelim. Projemiz hazır olduğuna göre şimdi kütüphanelerimizi yükleyelim. Xcode kapatalım ve terminal ile projemizin olduğunu konuma geçelim.

$ cd Desktop
$ cd Alamofire\ SwiftyJSON/

Projemizin olduğu dizine geçtiğimize göre artık kütüphanemiz için gerekli olan ortamı hazırlayabiliriz. Bu işlem için pod dosyamızı oluşturmamız lazım. Aşağıdaki komut ile pod dosyamızı oluşturalım.

$ pod init

Bu komut sonrasında projemizin bulunduğu dosya içeriğinde pod için gerekli olan Podfile dosyasının oluştuğunu görebiliriz. Podfile dosyamızı aşağıdaki komut ile açalım ve artık içerisine ihtiyacımız olan kütüphane bilgilerini ekleyelim.

$ open Podfile

Podfile dosyamızın içeriğinin aşağıdaki gibi hazırlayıp kayıt edelim ve dosyayı kapatalım.

platform :ios, '9.0'

target 'Alamofire SwiftyJSON' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for Alamofire SwiftyJSON

pod 'Alamofire'
pod 'SwiftyJSON'

end

Burada kütüphanelerimizi pod ‘Alamofire’ ve pod ‘SwiftyJSON’ komutları ile eklemiş oluyoruz. Artık Podfile hazır olduğuna göre bu kütüphanelerimizi projemiz içine entegre edelim. Bu işlem içinde aşağıdaki komutu çalıştıralım.

$ pod install

Yükleme işlemi bittiğinde artık Xcode proje ortamını açan “Alamofire SwiftyJSON.xcodeproj” dosyasını değil Podfile içindeki kütüphanelerin entegre olduğu ortamı açan Alamofire SwiftyJSON.xcworkspace ile projemizi açalım. Projemizi açtığımızda aşağıda görüldüğü gibi artık pod altında kütüphanelerimiz eklenmiş bulunmaktadır.

Artık herşey hazır ve bu yeni eklediğimiz Alamofire ve SwiftyJSON kütüphanelerimizi kullanıp bir önceki makelede bize JSON içerik sağlayan https://coinmarketcap.com/api/ adresindeki API leri yeniden kullanalım. Bu işlem için projemizde bulunan ViewController.swift içerisini aşağıdaki gibi kodlayalım.

import UIKit
import Alamofire
import SwiftyJSON


class ViewController: UIViewController {
    
    let baseUrl = "https://api.coinmarketcap.com/v1/ticker/?convert=TRY&limit=3"
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        getJSONData(url: baseUrl)
    }
    
    func getJSONData(url: String) {
        
        Alamofire.request(url, method: .get).responseJSON { response in
            if response.result.isSuccess {
                let jsonData : JSON = JSON(response.result.value!)
                print(jsonData)
            } else {
                print("Error: \(String(describing: response.result.error))")
            }
        }
        
    }
    
}

Bu kodu simülatörde çalıştırdığımızda print(jsonData) komutu ile API den gelen JSON içeriğini görebiliriz.

[
{
"total_supply" : "16885400.0",
"price_btc" : "1.0",
"24h_volume_try" : "22690623240.7",
"name" : "Bitcoin",
"market_cap_try" : "624859196268",
"percent_change_7d" : "-8.74",
"price_try" : "37005.8865214",
"market_cap_usd" : "164849796244",
"24h_volume_usd" : "5986220000.0",
"percent_change_1h" : "0.79",
"id" : "bitcoin",
"price_usd" : "9762.86",
"available_supply" : "16885400.0",
"percent_change_24h" : "-2.08",
"max_supply" : "21000000.0",
"rank" : "1",
"symbol" : "BTC",
"last_updated" : "1519555768"
},
{
"total_supply" : "97832741.0",
"price_btc" : "0.0873545",
"24h_volume_try" : "6376679870.04",
"name" : "Ethereum",
"market_cap_try" : "313030600927",
"percent_change_7d" : "-10.12",
"price_try" : "3199.6507154",
"market_cap_usd" : "82583454143.0",
"24h_volume_usd" : "1682290000.0",
"percent_change_1h" : "0.54",
"id" : "ethereum",
"price_usd" : "844.129",
"available_supply" : "97832741.0",
"percent_change_24h" : "0.75",
"max_supply" : null,
"rank" : "2",
"symbol" : "ETH",
"last_updated" : "1519555752"
},
{
"total_supply" : "99992622540.0",
"price_btc" : "0.00009848",
"24h_volume_try" : "1308472315.2",
"name" : "Ripple",
"market_cap_try" : "141025543207",
"percent_change_7d" : "-16.55",
"price_try" : "3.6072709235",
"market_cap_usd" : "37205233118.0",
"24h_volume_usd" : "345200000.0",
"percent_change_1h" : "0.69",
"id" : "ripple",
"price_usd" : "0.951667",
"available_supply" : "39094802192.0",
"percent_change_24h" : "0.08",
"max_supply" : "100000000000",
"rank" : "3",
"symbol" : "XRP",
"last_updated" : "1519555741"
}
]

Artık elimizde işlem yapabileceğimiz bir data mevcut ve bu data içinden istediğimiz alanın değerini rahatça alabiliriz. Bu işlem için kod içinde aşağıdaki gibi değişiklik yapıp gelen json datası içinde gezip hangi değeri almak istiyorsak onu print ile yazdıralım. Bu işlem için gelen değerlerin Adını, Türk Lirası ve Dolar karşılıklarını gösterelim.

import UIKit
import Alamofire
import SwiftyJSON


class ViewController: UIViewController {
    
    let baseUrl = "https://api.coinmarketcap.com/v1/ticker/?convert=TRY&limit=3"
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        getJSONData(url: baseUrl)
    }
    
    func getJSONData(url: String) {
        
        Alamofire.request(url, method: .get).responseJSON { response in
            if response.result.isSuccess {
                let jsonData : JSON = JSON(response.result.value!)
                
                for json in jsonData.arrayValue {
                    print("\(json["name"]) : \(json["price_try"]) ₺ , \(json["price_usd"]) $")
                }
                
            } else {
                print("Error: \(String(describing: response.result.error))")
            }
        }
        
    }
    
}

Bu kod çalıştığında da aşağıdaki gibi değerleri görebiliriz.

Bitcoin : 37066.4204231 ₺ , 9778.83 $
Ethereum : 3206.45461982 ₺ , 845.924 $
Ripple : 3.612554847 ₺ , 0.953061 $

İşte bu kadar basit birkaç satır kod ile json verimizi okuduk ve bu işlem için bir önceki makaledeki gibi bir model classı oluşturmamıza gerek kalmadı. Projenin kaynak kodlarına üzerinen ulaşabilirsiniz.
Kolay gelsin.

Kategoriler:iOS Etiketler:, , , , , , , ,
  1. 26 Şubat 2018, 08:28

    Güzel bir yazı olmuş.

    Liked by 1 kişi

  1. No trackbacks yet.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google fotoğrafı

Google hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: