Yazılım Geliştirme

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

7 dakika • 19 Ekim 2023

En Sık Sorulan iOS Developer Mülakat Soruları ve Cevapları
Veri Analitiği
Bu içeriği yapay zeka ile özetle

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.

Önerilen bloglar

Tüm bloglar

Açık etkinlikler

Tüm etkinlikler
ING Hubs Türkiye Agentic AI Hackathon
Hackathon-Datathon
ING Hubs Türkiye Agentic AI Hackathon

Gerçek bankacılık problemlerine Agentic AI çözümleri geliştir, geleceği birlikte şekillendir.

Son Başvuru 4 Ekim
Başlangıç 9 Ekim
Detaylı bilgi
ING Hubs Türkiye Agentic AI Hiring Day
Hiring Challenge
ING Hubs Türkiye Agentic AI Hiring Day

4+ yıl deneyimliysen ING Hubs Türkiye Senior Data Scientist Hiring Day seni bekliyor!

Son Başvuru 14 Ekim
Detaylı bilgi
AI Business Series
Meet-up
AI Business Series

AI Business Series: Pazarlama, finans ve mühendislik dünyasında yapay zekânın dönüşüm gücünü keşfetmek; sektör liderlerinin başarı hikâyeleriyle geleceğin yetkinliklerini öğrenmek için bir araya geldiğimiz online etkinlik serisidir.

Son Başvuru 14 Ekim
Başlangıç 15 Ekim
Bitiş 15 Ekim
Detaylı bilgi

Codecast yazılımcı sohbetleri

Farklı alanlardan konuklarımızın katılımlarıyla gerçekleşen Codecast’te yazılım ve veri bilimi yöneticilerini Podcast serimizde konuk ediyoruz!

Codecast

Python ile Programlamaya Giriş Eğitimi! 🧑‍💻

Yazılıma sıfırdan başlamanın en uygulamalı yolu burada. 🖐️ Python ile Programlamaya Giriş eğitiminde gerçek projelerle ilerle, sertifikanı kazan!

Hemen İncele!

Teknoloji dünyasında neler oluyor?

Coderspace Bülteni ile en güncel yazılar, analizler ve gelişmeler 5 dakikada e-posta kutunda!