Swift: Mülakat Soruları-3

Mehdican Büyükplevne
2 min readJun 19, 2023

Tekrar merhaba, swift ile ilgili mülakat sorularının üçüncü kısmıyla serimize devam ediyoruz. Geçen hafta içinde SwiftUI ile ilgili bir mülakat deneyimim oldu, mülakat esnasında UIKit’ide ilgilendiren 1–2 soru soruldu, onları da ekleyerek üçüncü serimize başlayalım!

*Asenkron işlem nedir?

Swift’de asenkron işlemler, programın paralel ve ardışık olarak çalışabilmesini sağlayan yöntemlerdir. Belirli bir işlemin tamamlanması beklenirken diğer işlemlerin yürütülmesini sağlar. Bu durum ise programın daha hızlı ve verimli çalışmasını sağlar. Beklenen sonuçlar elde edilene kadar işlem yapılması gerekmeyen kısımlarda diğer işlemler gerçekleştirilebilir.

*Codable protokolü ne işe yarar?

Codable protokolü, veri modellerini veri formatına dönüştürmeye ve veri formatındaki verileri veri modellerine dönüştürmeye yardımcı olur. Yani bir nesneyi JSON, XML veya diğer veri formatlarına dönüştürebilir ve aynı şekilde bu veri formatındaki verileri nesneye dönüştürebilir. Bu durum, veri işleme ve ağ iletişimi gibi senaryolarda veri dönüşümlerini kolaylaştırır. Codable protokolü, “Encodable” ve “Decodable” protokollerini birleştirir, böylece bir tür hem kodlama hem de kod çözme yeteneklerine sahip olur.

*Swift dilinde Grand Central Dispatch (GCD) nedir ve nasıl kullanılır?

Grand Central Dispatch(GCD), Swift dilinde çoklu iş parçacığı programlaması için kullanılan bir teknolojidir. GCD, threads oluşturmayı, yönetmeyi ve senkronize etmeyi kolaylaştıran bir araçtır. GCD’nin temel amacı, paralel ve asenkron işlem yaparak uygulamanın performansını artırmaktır.

GCD’nin temel bileşeni “dispatch queue” olarak adlandırılan iş kuyruklarıdır. Bunlar belirli bir işi yürütmek için kullanılan iş parçacıklarını yönetir. İki tür iş kuyruğu vardır;

Biri, “Main Dispatch Queue” diğeri ise “Global Dispatch Queue” dur.

“Main Dispatch Queue”; Ana iş kuyruğu da diyebiliriz. UI güncellemeleri gibi kullanıcı arayüzüyle ilgili işlemleri gerçekleştirmek için kullanılır. Ana iş kuyruğu otomatik olarak ana iş parçacığında çalışır.

“Global Dispatch Queue”; Genel iş kuyrukları, arka planda çalışacak işleri işlemek için kullanılır. Global iş kuyrukları önceden tanımlanmış bir öncelik düzeyine sahiptir ve farklı öncelik düzeyleriyle birden fazla sıralanmış iş kuyruğu bulunur.

İşleri işlemek için “DispatchQueue” sınıfının yöntemlerini kullanabiliriz. İşleri birincil iş kuyruğuna eklemek için “main” yöntemini aşağıdaki gibi bir örnekle kullanabiliriz.👇🏼

DispatchQueue.main.async {
// Ana iş kuyruğunda çalıştırılacak işler buraya gelecek
}

Global iş kuyruklarında ise “global” yöntemini kullanabiliriz.

DispatchQueue.global(qos: .background).async {
// Arka planda çalıştırılacak işler buraya gelecek
}

Ayrıca GCD, işleri sıralı veya eş zamanlı olarak çalıştırmamızı sağlar. Sıralı iş kuyruğu oluşturmak için “serial” yöntemini, eş zamanlı iş kuyruğu oluşturmak için ise “concurrent” yöntemini kullanabiliriz.

“Bu arada GCD ile ilgili detaylı bilgiye, yol arkadaşım Anıl AVCI’nın GCD yazısını okuyarak daha fazla bilgiye erişebilirsiniz.”

*MVVM mimarisi nedir, Kısaca açıklar mısınız?

MVVM mimarisi Model-View-ViewModel yapısından oluşur.

Model: Uygulamanın veri ve iş mantığını temsil eder. Model genellikle veri kaynaklarına erişim sağlar ve gerekli işlemleri gerçekleştirir.

View: Kullanıcı arayüzünü temsil eder. Kullanıcıya veri gösterme ve kullanıcıdan giriş işlemleri alma burada gerçekleşir.

ViewModel: View ve Model arasında bağlantı noktasıdır. View’a sunulacak verileri sağlar ve kullanıcı etkileşimini işler. View, ViewModel üzerinden gerekli verilere erişir ve ViewModel, View ile iletişime geçer.

Keyifli Kodlamalar. 👋🏼

--

--