swift ile notification kullanımı


Merhaba
Bugün swift ile yazdığımız uygulamalarımızda kullanabilceğimiz zaman zaman ihtiyacımız olan ve bir konu veya içeriği bize hatırlatması için kullandığımız “Notification (Bildirim)” özelliğine bakacağız. Bu özelliği test etmek için de  basit olarak bir bildirim gönderen uygulama yapalım.

Uygulamamıza gönderecek olduğumuz bildirimin başlığını ve detayını girebileceğimiz iki adet textfiled ekleyelim ve sonrasında ise bu bildirimin ne zaman bize gelmesini istiyorsak onu ayarlamak için de bir adet datepicker ekleyelim. Tüm ayarlamalardan sonra bildirim gönder işlemi ile uygulama üzerinde yazdığımız bildirim başlık ve detayını belirtiğimiz tarihde bize gelmesi için bildirim gönder butonu ile işlemimizi tamamlayalım.

Şimdi uygulamamızı hazırlamaya başlayabiliriz.

Buradan yeni bir Xcode projesi oluşturalım.

Buradan single view app seçiminden sonra uygulamamızın adını verip işlemimize deva edelim.

Bu aşamdan sonra uygulamamız hazır ve biz kodlamamıza başlayalım. Öncelikle notification özelliğini aktif etmek için “AppDelegate.swift” içerisine “UserNotifications” bilgisini eklememiz gerekiyor bu işlem sonrasında da “didFinishLaunchingWithOptions” içerisinde notification özelliğini aktif etmemiz lazım ve bu özellik uygulama ilk çalıştığında kullanıcıya notification için izin verip vermediğini soracaktır. Daha sonra gelen bildirimleri sıfırlamak içinde uygulama aktif olduğunda yani “applicationDidBecomeActive” içersinde de düzenleme yapmalıyız. Bu işlemere ait kodlar aşağıdaki gibidir.

[AppDelegate.swift]

//
//  AppDelegate.swift
//  Notification
//
//  Created by Samet ÇELİKBIÇAK on 24.03.2018.
//  Copyright © 2018 Samet ÇELİKBIÇAK. All rights reserved.
//

import UIKit
import UserNotifications

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

        UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .badge, .sound]) { (success, error) in
            if error != nil {
                application.registerForRemoteNotifications()
            }
        }
        return true
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        if UIApplication.shared.applicationIconBadgeNumber > -1 {
            UIApplication.shared.applicationIconBadgeNumber = -1
            UserDefaults.standard.set(0, forKey: "bildirimSayisi")
        }
    }

}

AppDelegate.swift içindeki düzenlemeler bittikten sonra artık asıl kodlama yapacağımız yere ViewController.swift içerisine bakalım. Buraya yukarıda bahsettiğim kullanacak olduğumuz değişkenlerin tanımlamalarını yaptık ve bu değişkenleri değerleri ile notification gönderimi için gerekli olan kodlarımızı yazdık.

[ViewController.swift]

//
//  ViewController.swift
//  Notification
//
//  Created by Samet ÇELİKBIÇAK on 24.03.2018.
//  Copyright © 2018 Samet ÇELİKBIÇAK. All rights reserved.
//

import UIKit
import UserNotifications

class ViewController: UIViewController {
    
    
    @IBOutlet weak var bildirimBaslikTextField: UITextField!
    @IBOutlet weak var bildirimDetayTextField: UITextField!
    @IBOutlet weak var bildirimTarihDatePicker: UIDatePicker!
    
    var bildirimSayisi: Int = UserDefaults.standard.integer(forKey: "bildirimSayisi")
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
    }
    
    
    
    func BildirimGonder (title titleText: String, body bodyText:String, date notificationDate:Date) {
        let center = UNUserNotificationCenter.current()
        let content = UNMutableNotificationContent()
        content.title = titleText
        content.body = bodyText
        content.sound = UNNotificationSound.default()
        content.badge = (self.bildirimSayisi + 1) as NSNumber
        BildirimSayisiArttir(bildirimSayisi: self.bildirimSayisi + 1)
        let trigerDate = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute,], from: notificationDate)
        let trigger = UNCalendarNotificationTrigger(dateMatching: trigerDate, repeats: false)
        let identifier = UUID().uuidString
        let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
        
        center.add(request) { (error) in
            if error != nil {
                print("BildirimGonder Hata: \(String(describing: error))")
            }
        }
    }
    
    func BildirimSayisiArttir(bildirimSayisi: Int) {
        if bildirimSayisi > -1 {
            self.bildirimSayisi = bildirimSayisi
            UserDefaults.standard.set(self.bildirimSayisi, forKey: "bildirimSayisi")
        } else {
            UIApplication.shared.applicationIconBadgeNumber = -1
        }
    }
    
    
    @IBAction func bildirimGonder(_ sender: Any) {
        BildirimGonder(title: bildirimBaslikTextField.text!, body: bildirimDetayTextField.text!, date: bildirimTarihDatePicker.date)
    
        let alert = UIAlertController(title: "Bildirim", message: "Bildirim Ayarlandı", preferredStyle: .alert)
        let action = UIAlertAction(title: "Tamam", style: .default, handler: nil)
        alert.addAction(action)
        present(alert, animated: true, completion: nil)
    }
    
    
}

Yukarıdaki kodlarda da görüleceği gibi bildirim gönderme işlemi bu kadar basit. Öncelikle bildirimlerimiz için bir UNUserNotificationCenter.current() komutu ile bir center oluşturuyoruz, daha önce bildirim içeriği için UNMutableNotificationContent() komutu ile bir content oluşturuyoruz. Daha sonra bu bildirimin bize ne zaman geleceğini ayarlama adımında ise UNCalendarNotificationTrigger komutunu kullanıyoruz. Gerekli tüm ayarlamaları yaptıktan sonra bildirimimiz için UNNotificationRequest komutu ile bir kayıt oluşturuyoruz. Herşey bu kadar ve uygulamamızı çalıştırdığımızda ise ilk olarak aşağıdaki gibi bir ekran geliyor ve bizden izin istiyor.

Bu izini verdikten sonra şimdi sırada istediğimiz zamana bir kayıt oluşturmak.

Gerekli alanları doldurum zaman seçtikten sonra ise, uygulama bildirim zamanı geldiğinde bize bildirim gösteriyor. Bu aşamadan sonra bildirim gönder butonuna basınca uygulamamızdan çıkıp ana ekranda vaktin gelmesini bekleyelim ve bildirimi görelim.

Bildirim geçtikten sonra ise uygulamamız üzerinde bize gelen bildirimleri gösteren sayıyı görebiliriz.

Biz telefonla işlem yapıyorsa bu şekilde bir bildirim geliyor. Ama telefon ekran kapalı konumda bekliyorsa bildirim geldiğinde aşağıdaki gibi bir durum oluşuyor.

Bildirim merkezinden bildirimlere baktığımızda ise aşağıdaki gibi görebiliriz.

Bu durumda gelen bir bildirim için artık aşağıdaki gibi işlemleri yapabiliriz. Bildirimi sağ doğru çektiğimizde gelen bildirimi açma işlemini görebiliriz.

Gelen bildirimi sola doğru çektiğimizde ise görüntüleme ve silme işlemini görebiliriz.

Yukarıdaki işlemlerde olduğu gibi çok basit birkaç işlem ile uygulamamıza bildirim özelliği ekledik ve gelen bildirimler ile ne yapabilceğimizi gördük.

Projenin kaynak kodlarına üzerinden ulaşabilirsiniz.
Kolay gelsin.

Reklamlar

swift ile alamofire ve swiftyjson kullanımı

25 Şubat 2018 2 yorum

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:, , , , , , , ,

swift ile json veri okuma


Merhaba

Bugün JSON bir içeriği Swift ile nasıl okuyacağımıza bakalım. Bu işlemi yapabilmek için önce bize JSON formatında içerik sağlayan https://coinmarketcap.com/api/ adresindeki örnek API leri kullanalım. Bu adreste bize sanal para birimlerinin değerlerini gösteren bir içerik sağlanıyor. Bizde örnek olarak ilk üç sanal para biriminin değerlerini JSON olarak görelim ve sonrasında da Swif ile bu bilgileri nasıl okuyabiliriz ona bakalım. İlk üç sanal para birimi için kullanacağımız API adresi https://api.coinmarketcap.com/v1/ticker/?convert=TRY&limit=3 olacaktır. Bu adresi ziyaret ettiğimizde aşağıdaki gibi JSON içeriğe sahip olacağız.

[
    {
        "id": "bitcoin", 
        "name": "Bitcoin", 
        "symbol": "BTC", 
        "rank": "1", 
        "price_usd": "12931.5", 
        "price_btc": "1.0", 
        "24h_volume_usd": "13119000000.0", 
        "market_cap_usd": "216905222100", 
        "available_supply": "16773400.0", 
        "total_supply": "16773400.0", 
        "max_supply": "21000000.0", 
        "percent_change_1h": "-1.33", 
        "percent_change_24h": "-5.97", 
        "percent_change_7d": "-6.18", 
        "last_updated": "1514712261", 
        "price_try": "49085.2971795", 
        "24h_volume_try": "49797008367.0", 
        "market_cap_try": "823327323711"
    }, 
    {
        "id": "ripple", 
        "name": "Ripple", 
        "symbol": "XRP", 
        "rank": "2", 
        "price_usd": "2.20932", 
        "price_btc": "0.00017298", 
        "24h_volume_usd": "6602400000.0", 
        "market_cap_usd": "85587167493.0", 
        "available_supply": "38739144847.0", 
        "total_supply": "99993093880.0", 
        "max_supply": "100000000000", 
        "percent_change_1h": "0.69", 
        "percent_change_24h": "-11.74", 
        "percent_change_7d": "110.26", 
        "last_updated": "1514712240", 
        "price_try": "8.3861213908", 
        "24h_volume_try": "25061343703.2", 
        "market_cap_try": "324871171261"
    }, 
    {
        "id": "ethereum", 
        "name": "Ethereum", 
        "symbol": "ETH", 
        "rank": "3", 
        "price_usd": "715.561", 
        "price_btc": "0.0560242", 
        "24h_volume_usd": "2839910000.0", 
        "market_cap_usd": "69180310557.0", 
        "available_supply": "96679823.0", 
        "total_supply": "96679823.0", 
        "max_supply": null, 
        "percent_change_1h": "-0.89", 
        "percent_change_24h": "-1.12", 
        "percent_change_7d": "6.02", 
        "last_updated": "1514712248", 
        "price_try": "2716.12143487", 
        "24h_volume_try": "10779710498.6", 
        "market_cap_try": "262594138549"
    }
]

Şimdi yapmamız gereken ise bir proje açıp bu içeriği Swift ile nasıl okuyabileceğimize bakalım. İlk olarak Xcode da bir proje açalım. Aşağıdaki ekran görüntüsündeki sıra ile projemizi oluşturalım ve kodlamaya geçelim.

Artık projemiz hazır. Şimdi projemiz içinde kullanmak ve JSON verimizi modellemek için projemizde bir tane “File > New > File” seçimi ile “Swift File” ekleyelim ve adına “CurrencyModel” diyelim. Bu yeni eklediğimiz dosya içine JSON verimizden kullanmak istediğimiz bilgileri tanımlayalım. Burada dikkat etmemiz gereken konu JSON içinde tanımlı olan isim ve tip bilgisine göre CurrenyModel dosyamızın içinde tanımlama yapmak. Kod içinde de göreceğimiz gibi CurrencyModel:Codable bilgisi bizim için çok önemli ve bu tanımdaki “Codable” bilgisi JSON veriyi kolayca okumamızı sağlıyor. İhtiyacımız olan bilgileri aşağıdaki gibi tanımlayalım.

import Foundation

struct CurrencyModel:Codable {
    var id:String
    var name:String
    var symbol:String
    var rank:String
    var price_usd:String
    var price_btc:String
    var percent_change_1h:String
    var percent_change_24h:String
    var percent_change_7d:String
    var last_updated:String
    var price_try:String
}

JSON verisini okumak için ihtiyacımız olan yapıda hazır olduğuna göre artık veri okumaya başlayalım. Yaptığımız uygulama içinde sadece veri okuması yapılacak ve console üzerinde bu değerleri göreceğiz. İsterseniz bu bilgileri kullanıp uygulama üzerinde görsel olarak da gösterebilirsiniz. Aşağıdaki kodumuz ile JSON dan veriyi okuduk ve console ekranımıza dump olarak yazdırdık.

import UIKit

let myApiUrl = "https://api.coinmarketcap.com/v1/ticker/?convert=TRY&limit=3"
let url = URL(string: myApiUrl)!
let myJSONData = try! Data(contentsOf: url)
var jsonDecoder = JSONDecoder()

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let currencies = try? jsonDecoder.decode([CurrencyModel].self, from: myJSONData)
        if let currency = currencies{
            
            for c in currency{
                dump(c)
            }
        }   
    }
}

Yukarıdaki kod ile çıkan veride bulunan last_updated bilgisi Unix Time Stamp bilgisidir ve bu bilginin normal bir tarih formatında görünmesi için kodda aşağıdaki gibi bir düzenleme yapmamız gerekiyor.

import UIKit

let myApiUrl = "https://api.coinmarketcap.com/v1/ticker/?convert=TRY&limit=3"
let url = URL(string: myApiUrl)!
let myJSONData = try! Data(contentsOf: url)
var jsonDecoder = JSONDecoder()

class ViewController: UIViewController {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let currencies = try? jsonDecoder.decode([CurrencyModel].self, from: myJSONData)
        if let currency = currencies{
            
            for c in currency{
                dump(c)
                let lastUpdateUTC = Date(timeIntervalSince1970: TimeInterval(Int(c.last_updated)!))
                let dateFormatter = DateFormatter()
                dateFormatter.dateFormat = "dd-MM-YYYY hh:mm:ss a"
                let lastUpdateLocal = dateFormatter.string(from: lastUpdateUTC)
                print("Son Güncelleme UTC:" + String(describing: lastUpdateUTC))
                print("Son Güncelleme Local:" + String(describing: lastUpdateLocal))
            }
        }
    }
}

Artık bu kod çalıştığında sadece sayısal bir bilgi olan last_update bilgisi gerekli çevrim işleminden sonra tarih formatında görebiliyoruz.

▿ Swif_JSON.CurrencyModel
  - id: "bitcoin"
  - name: "Bitcoin"
  - symbol: "BTC"
  - rank: "1"
  - price_usd: "12902.4"
  - price_btc: "1.0"
  - percent_change_1h: "-0.39"
  - percent_change_24h: "-5.59"
  - percent_change_7d: "-6.05"
  - last_updated: "1514715260"
  - price_try: "48974.8396032"
Son Güncelleme UTC:2017-12-31 10:14:20 +0000
Son Güncelleme Local:31-12-2017 01:14:20 PM
▿ Swif_JSON.CurrencyModel
  - id: "ripple"
  - name: "Ripple"
  - symbol: "XRP"
  - rank: "2"
  - price_usd: "2.21301"
  - price_btc: "0.00017297"
  - percent_change_1h: "-0.4"
  - percent_change_24h: "-9.59"
  - percent_change_7d: "112.55"
  - last_updated: "1514715241"
  - price_try: "8.4001278669"
Son Güncelleme UTC:2017-12-31 10:14:01 +0000
Son Güncelleme Local:31-12-2017 01:14:01 PM
▿ Swif_JSON.CurrencyModel
  - id: "ethereum"
  - name: "Ethereum"
  - symbol: "ETH"
  - rank: "3"
  - price_usd: "714.06"
  - price_btc: "0.0558108"
  - percent_change_1h: "-0.31"
  - percent_change_24h: "-1.29"
  - percent_change_7d: "6.17"
  - last_updated: "1514715249"
  - price_try: "2710.42394958"
Son Güncelleme UTC:2017-12-31 10:14:09 +0000
Son Güncelleme Local:31-12-2017 01:14:09 PM

Bu şekilde bir JSON bilgisini Swift ile okuma işlemini yaptık ve sonuçlarını gördük. Projenin kaynak kodlarına üzerinden ulaşabilirsiniz.
Kolay gelsin.

Kategoriler:iOS Etiketler:, , , , ,

ITMS-90717: “Invalid App Store Icon” hatası


Merhaba,

iOS için yapılan bir uygulamayı App Store’a yüklemek istediğimizde ekran görüntüsündeki gibi bir hata aldığımızda aşağıdaki işlemleri yaparak sorunumuzu çözebiliriz.

iTunes Store Operation Failed
Error ITMS-90717: “Invalid App Store Icon. The App Store Icon in the asset catalog in ‘YourApp.app’ can’t be transparent nor contain an alpha channel.”

Sorunumuzu çözmek için Xcode içinde Assets.xcassets altına yüklediğimiz ve iTunes Store’a eklediğimiz uygulamamıza ait resimler ve logolardaki Alfa seçimini iptal etmemiz gerekiyor. Bunun için uygulamamıza ait kullandığımız logo ve resimlerimizi MacOS ortamında Önizleme uygulaması ile resim ve logolarımızı açtığımızda uygulamanın Dosya > Dışa Aktar adımlarından resim üzerinde seçili olan Alfa seçimini kaldırıp resimimizi o şekilde kayıt etmemiz gerekiyor.

Ekran görüntüsündeki gibi Alfa seçimini kaldırıp resmi kayıt ettikten sonra artık bu yeni resmimizi hem Xcode içinde hemde iTunes Store da kullanabiliriz.

Kolay gelsin.

mac os visual studio kurulumu


Merhaba

Bugün Mac Os işletim sistemine Microsoft tarafından yayınlanan Visual Studio For Mac kurulumunu yapacağız. Öncelikle Visual Studio For Mac adresinden uygulamamızı indirelim sonrasında kurulumumuzu yapalım. İndirme işleminden sonra dosyayı çalıştırdığımızda sırası ile aşağıdaki ekranlardaki adımları izleyip kurulumu tamamlayabiliriz.

Bu ekranda çift tıklama ile kurulumu başlatıyoruz.

Bu ekranda ise lisans sözleşmesini kabul edip Accept butonu ile kuruluma devam ediyoruz.

Bu aşamada ise kurulum yapacağımız içerikleri seçiyoruz ve Continue ile kuruluma devam ediyoruz.

Şimdiki ekranda ise kurulumun yapılacağı dizin bilgileri geliyor, istersek bu dizin bilgisini değiştirebiliriz. Kurulumun yapılacağı dizin seçiminden sonra Continue ile kuruluma devam ediyoruz.

Bu ekranda ise son olarak kurulum yapılacak içerik gösteriliyor ve Install ile kuruluma başlıyoruz.

Kurulumun bu aşamasında ise yüklenecek olan SDK lar için lisans bilgilerini kabul ediyoruz, daha sonra da Continue ile kuruluma devam ediyoruz.

Artık tüm işlemleri tamaladık ve kurulum için gerekli dosyalar indirilip kurulum gerçekleşiyor.

Artık kurulum bitti ve Visual Studio for Mac kullanıma hazır. Bu ekranda Start butonuna basıtığımızda ise Visual Studio çalışacaktır.

Visual Studio for Mac artık çalıştı ve ilk programımız için bir proje açıp kodlamaya devam edebiliriz. Bir sonraki yazımızda ise Visual Studio for Mac ile “Hello World” uygulamamızı yapacağız.

Kolay gelsin.

vb xml ve json web servis veri alma


xml_jsonMerhaba

Bugün daha önce yazdığım vb xml ve json web servis konusu ile hazırladığımız servisi kullanarak veri alama işlemini yapacağız. Bu işlem için öncelikle bir Console uygulaması hazırlayalım ve daha önce oluşturuduğumuz servisi bu proje içine referans olarak ekleyelim. Visual Studio içinde “File > New > Project > Visual Basic > Windows > Console Application” seçimi ile uygulamamızı hazırlayalım. Daha sonra ise proje üzerinde References üzerinde sağ tık ile açılan menüden Add Service Reference ile bir önceki makalede hazırladığımız servisimizi ekleyelim.Daha önce hazırladığımız servisimizi localhsot üzerinde çalıştırıp adresini aldıktan sonra servis referansa ” http://localhost:58079/JSONandXML.asmx?wsdl ” olarak ekliyoruz ve servis referans adı olarak da JSONandXMLVb değerini veriyoruz. Daha sonra yine references alanında yine sağ tık ile add reference diyoruz ve JSON web servisi parse edebilmek için gerekli olan System.Web.Extensions dll ini ekliyoruz. Artık programımızda servislerden veri alacak kodlarımızı yazalım. İlk olarak JSON parse işelminde ihtiyacımız olan Member.vb class ımızı oluşturalım.

[Member.vb]

Public Class Member

    Private m_Id As Integer
    Public Property Id() As Integer
        Get
            Return m_Id
        End Get
        Set
            m_Id = Value
        End Set
    End Property

    Private m_Name As String
    Public Property Name() As String
        Get
            Return m_Name
        End Get
        Set
            m_Name = Value
        End Set
    End Property

    Private m_Salary As Integer
    Public Property Salary() As Integer
        Get
            Return m_Salary
        End Get
        Set
            m_Salary = Value
        End Set
    End Property

    Private m_Position As String
    Public Property Position() As String
        Get
            Return m_Position
        End Get
        Set
            m_Position = Value
        End Set
    End Property

End Class

Member class ımız hazır olduğuna göre artık kodlarımız tamamlayalım.

[Program.vb]

Imports System.Web.Script.Serialization

Module Program

    Sub Main()

        Dim xmlClient As JSONandXMLVb.JSONandXMLSoapClient = New JSONandXMLVb.JSONandXMLSoapClient
        Dim teamFromXML = xmlClient.GetTeamFromXML
        Console.WriteLine("XML'den gelen sonuçlar:")
        For Each item In teamFromXML
            Console.WriteLine(item.Id & " " & item.Name & " " & item.Position & " " & item.Salary)
        Next
        Console.WriteLine()

        Dim jsonClient As JSONandXMLVb.JSONandXMLSoapClient = New JSONandXMLVb.JSONandXMLSoapClient
        Dim teamFromJSON = jsonClient.GetTeamFromJSON
        Dim jss As JavaScriptSerializer = New JavaScriptSerializer
        Dim members As List(Of Member) = New List(Of Member)
        members = jss.Deserialize(Of List(Of Member))(teamFromJSON)
        Console.WriteLine("JSON'dan gelen sonuçlar:")
        For Each item In members
            Console.WriteLine(item.Id & " " & item.Name & " " & item.Position & " " & item.Salary)
        Next
        Console.ReadKey()

    End Sub

End Module

Yukarıdaki kodlarda da görüldüğü gibi hem XML’den hemde JSON’dan gelen sonuçları çıktı olarak console üzerine yazdırık. Kodlarda özellikle farklı client oluşturdum xmlClient ve jsonClient şekilinde , bu sebeple iki servis için yazılan kodları ayrı ayrı okumak kolay ve anlaşılır olabilir. Yukarıdaki kodlar çalıştığında çıktı aşağıdaki gibi olacaktır.

XML'den gelen sonuçlar:
1 Samet Software Specialist 10000
2 Kubilay Software Specialist 10000
3 Erkan Software Specialist 10000

JSON'dan gelen sonuçlar:
1 Samet Software Specialist 10000
2 Kubilay Software Specialist 10000
3 Erkan Software Specialist 10000

Projenin kaynak kodlarına üzerinden ulaşabilirsiniz.
Kolay gelsin.

Kategoriler:Vb Etiketler:, , , ,

mac os sierra hey siri aktif etme


heysiri

Merhaba

Bugün Mac OS Sierra ile gelen Siri’yi aynı iPhone larda olduğu gibi “Hey Siri” ifadesi ile nasıl başlatabileceğimize bakacağız. Bu işlem için öncelikle “Sistem Tercihleri” üzerinden “Siri” uygulama ayarlarını açıp Siri’yi etkinleştirdikten sonra “Klavye Kestirmesi” alanına özelleştir seçimi ile istediğimiz bir kısayolu tanımlayacağız. Bu tanımlama işlemi bitince ise yine “Sistem Tercihleri” üzerinde “Erişilebilirlik” ayarlarından “Dikte” değerini seçip bu menüdeki ayarlardan ise “Dikte anahtar sözcük ifadesini etkinleştir” seçimi ile buradaki alana “Hey” bilgisini yazacağız. Daha sonra da “Dikte Komutları” seçimi ile açılan ekrandan “İleri düzey komutları etkinleştir” seçimini aktif edip karşımıza çılan “+” ve “-“ seçeneklerinden “+” ile yeni bir komut ekleyeceğiz. Ekleyeceğimiz komut için “Şunu söylediğimde” alanına ise “Siri” bilgisini girip “Kullanırken” alanında ise “Herhangi Bir Uygulama” seçimini bırakıp “Şunu gerçekleştir” bölümünde ise Siri için verdiğimiz kısayol tanımını yapacağız. Bu ayarlar bitince ekranında sağ alt tarafından ise “Bitti” seçimini yapıp artık “Hey Siri” ile bilgisayarımızda Siri’yi aktif edebiliriz.

Kolay gelsin.

%d blogcu bunu beğendi: