iOS Uygulamasının Yüklendiği Tarihi Öğrenebilir Miyiz?
Uygulama geliştirme sürecinde, kullanıcıya kaliteli bir deneyim sunmak amacıyla farklı özellikler eklenir. Bu özellikler içerisinde bazı koşullar uygulamanın cihaza yüklendiği tarih üzerine kurulur ve buna bağlı çalışır. Peki iOS uygulamalarının yüklendiği tarihi nasıl öğrenebiliriz? Beraber göz atalım.
Ne yazık ki, uygulamanın yüklendiği tarihe direk ulaşabileceğimiz bir yol bulunmamaktadır. Fakat farklı yaklaşımlar ile bu tarih elde edilebilir. Kolay bir yaklaşım olan uygulamaya ait Documents klasörünün oluşturulduğu tarih bilgisine erişim, bize uygun bir cevap olabilir.
Documents Klasörüne Erişim
Uygulamaya ait Documents klasörü, cihaza uygulamanın kurulumu anında oluşturulur. Bu klasöre erişebilmek için FileManager altında ki url(for:in:appropriateFor:create:) fonksiyonu bize yardımcı olacaktır.
let documentsUrl = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
Documents klasörünün URL’ine eriştikten sonra bu URL objesi altında ki path değişkeni ile klasörün özelliklerine ulaşıyoruz.
let attributes = try FileManager.default.attributesOfItem(atPath: documentsUrl.path)
Klasöre ait özellikleri barındıran attributes objesinde ki creationDate bilgisine ulaşıyoruz.
let installDate = attributes[.creationDate] as? Date
attributes Dictionary içerisinde ki creationDate bilgisini Date formatına cast ediyoruz. Bu değer bize Documents klasörünün oluşturulma tarihini yani uygulamanın cihaza yüklenme tarihini vermektedir.
Kullandığımız fonksiyonlar exception fırlatabilir özellikte olduğu için do-catch bloğu altında tanımlayalım.
do {
let documentsUrl = try FileManager.default.url(for: .applicationDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
let attributes = try FileManager.default.attributesOfItem(atPath: documentsUrl.path)
let installDate = attributes[.creationDate] as? Date
print(installDate)
} catch {
print(error)
}
iOS 16 Sonrası Değişim
iOS 16 ile beraber belirli konumlara erişim FileManager kullanılmadan URL altında static olarak tanımlı değişkenler ile bize sağlanmış durumdadır.
let doucmentsUrl = URL.documentsDirectory
URL altında ki documentsDirectory değişkeni ile direk erişim sağlayabilir ve oluşturduğumuz bloğu bu özellik ile düzenleyebiliriz.
do {
let documentsUrl: URL
if #available(iOS 16.0, *) {
documentsUrl = URL.documentsDirectory
} else {
documentsUrl = try FileManager.default.url(for: .applicationDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
}
let attributes = try FileManager.default.attributesOfItem(atPath: documentsUrl.path)
let installDate = attributes[.creationDate] as? Date
print(installDate)
} catch {
print(error)
}
Bu sayede güncel özellikleri de bloğumuza dahil etmiş olduk.
Sonuç olarak, bahsettiğim yöntem ile uygulamanın yüklenme tarihine erişmenin bir yolunu öğrenmiş oldunuz. Umarım sizler için de kullanışlı olur.