Anasayfa Bloglar En Sık Sorulan iOS Developer Mülakat Soruları ve Cevapları

En Sık Sorulan iOS Developer Mülakat Soruları ve Cevapları

Yazılım Geliştirme
7 Dakika Okuma Süresi · 19.10.2023
Blog Small Image

iOS developer’lar, Apple'ın mobil işletim sistemi için uygulama geliştirmekten sorumludur. Apple'a göre 30 milyondan fazla kayıtlı iOS Developer var. Bu da rekabetin yüksek olduğu anlamına gelir. 

iOS Developer olarak çalışacak bir iş arıyorsanız, mülakat sırasında teknik iOS Developer mülakat soruları ile karşılaşmanız olası. 

Sonuç olarak, işe alım uzmanının dikkatini çekebilmek için iOS Developer mülakat sorularını doğru cevaplamanız gerekir. Mülakatların herkes için stresli olabileceğini biliyoruz. Bu makalede, iOS developer mülakat sorularını ve cevaplarını ayrıntılı bir şekilde ele alacağız. 👇💡


 

1. iOS nedir?

iOS, Apple Inc. tarafından geliştirilen bir mobil işletim sistemidir. iPhone, iPad ve iPod Touch cihazları gibi Apple cihazlarında kullanılır.


 

2. Swift nedir?

Swift, iPadOS, macOS, tvOS, watchOS ve iOS geliştirme için kullanılan, genel amaçlı ve açık kaynaklı bir programlama dilidir. 2014 yılında Apple tarafından geliştirildi. 

Swift’in amacı iOS uygulamaları geliştirmektir. Swift.org'a göre, Swift güvenli ve hızlı bir programlama dilidir. Swift ayrıca büyüyen bir topluluğu da sahiptir. Swift kaynak kodu GitHub'da bulunabilir ve bu da herkesin koda erişmesini kolaylaştırır.


 

3. Android ve iOS arasındaki farklar nelerdir?

🆚 Android - Google tarafından sunulan, Android cihazlar için mobil işletim sistemidir. Akıllı telefonlar ve tabletlerde bulunur. Geliştirilmesinde C, Java ve C++ olmak üzere çeşitli programlama dilleri kullanılmıştır.

🆚 iOS - Apple şirketi tarafından sunulan Apple cihazlar için işletim sistemidir. Android'den sonra dünya çapında en popüler ikinci mobil işletim sistemidir. iPhone, iPod Touch, vb. gibi Apple mobil cihazlarında kullanılır. Geliştirilmesinde Objective-C, Swift ve C++ kullanılmıştır.  

 

4. Swift ve Objective-C arasındaki fark nedir?

🆚 Swift, Apple tarafından 2014 yılında piyasaya sürülen bir programlama dilidir. 

🆚 Objective-C, Apple tarafından geliştirilen eski bir programlama dilidir. 

🆚 Swift, Objective-C'ye kıyasla daha kolay, okunaklı ve hızlıdır.


 

5. Objective-C’de kategori nedir?

Objective-C'deki kategoriler, nesnenin kendisini değiştirmeyi veya alt sınıflamayı kullanmak zorunda kalmadan bir nesneye işlevsellik eklemeyi sağlayan araçtır. 


 

6. Bir uygulama geliştirirken hangi adımları izlersiniz?

  1. Gereksinimleri belirleme
  2. Tasarım oluşturma
  3. Kodlama
  4. Test etme
  5. Yayınlama


 

7. CocoaPods nedir?

CocoaPods, Swift ve Objective-C programlama dillerindeki bağımlılıkları yönetmek için kullanılan bir paket yöneticisidir. Developer’lar, basit ve kolay kod oluşturmak için CocoaPods’u kullanırlar. 

CocoaPods'un yardımıyla developer’lar, her şeyi sıfırdan kodlamak yerine, diğer developer’lar tarafından zaten oluşturulmuş ve hazırlanmış kodu kullanırlar. Cocoapod'lar ayrıca kodunuzu diğer insanlarla paylaşmak için bir kodlama merkezi görevi de görür. 


 

8. Cocoa ve Cocoa Touch nedir?

Cocoa Touch, iPhone, iPad ve iPod Touch gibi ürünler için yazılım uygulamaları oluşturmak üzere Apple tarafından sağlanan bir kullanıcı arayüzü framework’üdür. Swift, Cocoa ve Cocoa Touch frameworkleri ve Apple ürünleri için yazılan Objective  C kodlarıyla çalışmak için tasarlanmıştır.

 

10. Core Data nedir?

Core Data, Apple tarafından geliştirilen ve sürdürülen bir framework’dür. Core Data, uygulamaların model katmanı olan MVC'deki M'dir. 


 

11. Uygulamanızda Core Data kullanmak için ne yapmanız gerekir?

Core Data, iOS uygulamalarında verileri saklamak için kullanılan bir framework'tür. Bir uygulamada Core Data kullanmak için şu adımlar izlenir:

1️⃣ Core Data modelini oluşturulur.

2️⃣ Verileri modeline uygun şekilde kaydedilir.

3️⃣Verileri görüntülemek için fetch işlemi kullanılır.


 

12. ARC nedir ve nasıl çalışır?

Otomatik Referans Sayımı (ARC), Objective-C derleyicisi özelliği ve Swift'in hafıza izleme sistemidir. Bellek yönetimini kolaylaştırmak ve bellek sızıntılarını önlemek için Apple tarafından geliştirilmiştir. 

ARC, geliştiricilerin manuel bellek yönetimi yapmak zorunluluğunu ortadan kaldırır. Nesnelerin bellekten kalması veya bellekten silinmesi konusunda kendi kararının verir. Böylece, hatalı bellek kullanımı en aza indirir.

ARC, programda kullanılan nesnelerin bellek yönetimini otomatik olarak yönetir. Programda bir nesne oluşturulduğunda, ARC bu nesne için bir referans sayısı oluşturur. Bu sayı, nesnenin kaç referansa sahip olduğunu belirler. Eğer bir nesneye yeni bir referans oluşturulursa, bu sayı artar. Eğer bir referans silinirse, sayı azalır. Eğer bir nesnenin referans sayısı sıfıra düşerse, ARC nesneyi bellekten otomatik olarak siler.


 

13. Delegate nedir ve ne işe yarar?

Bir nesne gerçekleştirmek istediği görevi devreder (delegator), bir diğer nesne de o görevi devralarak gerçekleştirir (delegate). Nesneler arasındaki bu görev devri “delegate” olarak adlandırılır.

iOS SDK'daki birçok sınıf, bir veya daha fazla delegasyon noktası sağlar. Bu, bir nesnenin bir olay oluştuğunda başka bir nesneye haber vermesini sağlar. Delegasyon, kodun daha modüler hale gelmesini sağlar ve kod tekrarını azaltır.


 

14. Swift'te bir delege belirlemek için hangi adımlar uygulanır?

1️⃣ Protokol tanımlanır.

2️⃣Delege örneği oluşturulur.

3️⃣Delege çağrılır.

4️⃣Delegeyi uygulanır.

5️⃣Delege atanır.


 

15. Swift required init nedir?
İnit, bir sınıf, yapı veya numaralandırma örneği hazırlama işlemidir. Swift'de “required init” anahtar kelimesi, bir sınıfın türetilen sınıflar tarafından belirli bir şekilde başlatılmasını zorunlu kılmak için kullanılır.

Required anahtar kelimesi, alt sınıfların, üst sınıfın tanımlanmış bir yöntemini geçersiz kılmadan önce bu yöntemi uygulamak zorunda olduklarını belirtir.


 

16. Swift init() syntax’ı nasıldır?

“init” anahtar kelimesinin yanına parantezler konularak sınıfın yapıcı metodu tanımlanır. 


 

17. Swift mutating nedir?

"Mutating", bir değerin içeriğini değiştiren yöntemin tanımlandığını göstermeye yarayan örnektir. Swift’te, bir fonksiyonun yapısını değiştirebileceğimiz özellik olan "mutating" anahtar kelimesi kullanılır. 


 

18. iOS uygulamaları için önerilen yaygın tasarım modelleri nelerdir?

Apple tarafından, iOS uygulamaları için önerilen tasarım modelleri arasında Delegate, MVC, Observer ve Singleton yer alır.


 

19. UIKit çerçevesi nedir?

UIKit çerçevesi, iOS ve tvOS için uygulamalar oluştururken ihtiyaç duyulan temel nesneleri sağlar. İçeriği ekranda görüntülemek, bu içerikle etkileşimde bulunmak ve sistemle etkileşimleri yönetmek için bu nesneler kullanılır. 


 

20. UIKit View Controller yaşam döngüsü nedir?

UIKit View Controller yaşam döngüsü, bir View Controller'ın yaratıldığı andan itibaren işlevselliğini kaybedene kadar geçirdiği aşamalardır. 

UIKit View Controller yaşam döngüsü genellikle iki ana aşamaya ayrılır: yükleme görüntüleme ve yaşam döngüsünü görüntüleme. Bu yaşam döngüsü, View Controller'ın ekran üzerinde görüntülendiği süre boyunca sürekli olarak gerçekleşir.


 

21. Statik yazma ile dinamik yazma arasındaki fark nedir?

Statik yazma ve dinamik yazma, önemli kavramlardır. 

👉 Statik yazma, program çalıştırılmadan önce tüm kodların kontrol edilmesi anlamına gelir. Swift, statik yazmayı kullanır. 

👉 Dinamik yazma, program çalışırken kodun çalıştırılması ve sonucunun görüntülenmesi anlamına gelir. Objective-C, dinamik yazmayı kullanır. 


 

22. Tip çıkarımı nedir?

Derleyicinin bir değişkenin veri tipini otomatik olarak ayarlamasına izin veren bir işleve denir. Böylece tip çıkarımı, kodun daha okunaklı ve kısa olmasına yardımcı olur. Ayrıca kodun daha hızlı yazılmasına da olanak tanır. 


 

23. Objective-c ve Swift'de nesneler sıfır olabilir mi?

Objective-C ve Swift, nesnelerin sıfır olabilmesine izin verir.


 

24. Protokol nedir?

Protokol, soyut yöntemler, sabitler ve değişkenler içeren bir arayüzdür. Protokoller, sınıflar arasında işlevsellik sağlar. Birden çok protokol uygulanabilir. 


 

25. iOS tarafından hangi JSON çerçevesi desteklenir?

SBJson çerçevesi, iOS tarafından desteklenir. Objective-C için bir JSON ayrıştırıcı ve oluşturucudur. SBJson, JSON kullanımını kolaylaştıran esnek API'ler ve ek kontrol sağlar.


 

26. iOS'ta GCD (Grand Central Dispatch) ne anlama gelir?

Grand Central Dispatch (GCD), kullanıcıların arka planda iş parçacıklarını yöneterek eşzamanlı görevleri çalıştırmalarını sağlayan bir API'dir. Grand Central Dispatch, birden çok arka plan görevini, ana iş parçacığını etkilemeden arka planda ve aynı anda çalıştırmayı sağlar. 


 

27. iOS’ta eşzamanlılık elde etmenin yolları nelerdir?

  1. Threads
  2. Dispatch queues
  3. Operation queues


 

28. iOS uygulamalarının çalışır durumda olmadığını ne zaman söylersiniz?

Başlatılmadığında veya çalışma sırasında sistem tarafından sonlandırıldığında bir uygulamanın çalışır durumda olmadığı söylenebilir. 


 

29. iBeacon nedir?

🗺 iBeacon, Bluetooth Low Energy (BLE) kullanan ve akıllı telefonları algılamak ve izlemek için verici görevi gören küçük ölçekli bir ağ cihazıdır. Apple iBeacon protokolü, BLE'nin kablosuz cihazların insan müdahalesi olmadan bağlanmasına izin vererek konum tabanlı bildirimler/hizmetler vermek için kullanılır.


 

30. Operator Overloading?

Operatör fonksiyonları (Operator Overloading), mevcut operatörlerin davranışlarını değiştirme ve yeni operatörler ekleme işlemini sağlar.

+, * ve / sembolleri operatör olarak bilinir.


 

31. TVMLKit nedir?

TVMLKit, TVML, JavaScript ve tvOS yazılımları arasında köprü görevi görür. TVMLKit framework, tvOS uygulamasının içinden TVMLKit JS ve TVML dosyalarını değerlendirmeyi sağlar.


 

32. Swift'de NSError nedir?

Swift'de NSError, temelde hata ve istisnai durumları tanımlamak için kullanılan bir sınıftır. Genellikle Objective-C döneminden miras alınmıştır ve Objective-C kodları ile etkileşime geçerken kullanılabilir. NSError nesnesi, bir işlev veya metod çağrısının başarısız olduğu durumları temsil etmek için kullanılır.

İÇERİKLER
Konu içeriği

Önerilen İçerikler

Tüm İçerikler