Swift Dependency Injection

Ata Anıl Turgay
blutv
Published in
2 min readDec 29, 2021

Herkese merhaba, bu yazıda yazılım dünyasında bolca kendinden söz ettiren bir programlama prensibi olan Dependency Injection nedir ve Swift programlama dilinde nasıl uygulanır sorularına cevaplar vereceğiz. Gelin başlayalım!

Dependency Injection bir class’ın veya nesnenin bağımlılıklarından kurtulmasını amaçlayan bir programlama prensibidir. Unit test yazmayı hem kolaylaştırır hem de doğruluk payını artırır. Dependency Injection yazılım içerisindeki componentlerin “loosely coupled” gevşek bağlı olmasını sağlayan önemli prensiplerden biridir. Böylece sınıflar birbirinden bağımsız olur ve tek başlarına test edilebilir. Haydi bunu örneklendirelim!

Bir film detay ekranımız olduğunu düşünelim ve bu ekran açılırken detay ekranına ait view model’ın initialize edileceğini göz önünde bulundurarak Initializer Injection’ı ele alalım. Bu örnekte yapacağımız şey bir protocol yazmak ve yazdığımız bu protocol’u ayrı classlara conform ederek view model’a inject etmek.

İlk olarak bir protocol yazıyoruz. Adını Content olarak belirledik ve iki adet property tanımladık. Bunlar title ve description.

Daha sonra bu protocolü MovieContent class’ına conform ediyoruz.

Daha sonra aynı Content protocolünü MockContent class’ına conform ediyoruz. Buradaki amaç unit test yazarken ViewModel’ın initialize methoduna Mock data verebilmek.

Son olarak da ViewModel class’ımızı oluşturuyoruz. Initiliaze methodu Content protocol bekliyor. İşte bu şekilde Dependency Injection’ın Initializer Injection prensibini uygulamış oluyoruz.

ContentDetailViewModel class’ından ihtiyaca göre ve bağımlılıkları minimuma indirerek bu şekilde nesne yaratılarak kullanılabilir.

Dependency Injection prensibini kullandığımızda projede yazdığımız sınıfları birbirinden ayırarak daha okunaklı, unit test yazmayı kolaylaştıran ve sonradan düzenlemesi kolay yapılar elde etmiş oluruz.

Herkese keyifli araştırmalar ve okumalar…

--

--