iOS Uygulamasının Yüklendiği Tarihi Öğrenebilir Miyiz?

Muhammed Ali
Appcent
Published in
2 min readJun 25, 2024
Image from https://www.logo.wine/

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.

--

--

Muhammed Ali
Appcent
Writer for

iOS Developer with passion. Iron Maiden fan 🤘