cvanaliz
BireyselKurumsal
Özellikler
Şablonlar
Fiyatlandırma
Blog
Mülakatlar
Maaşlar
Giriş Yap Ücretsiz Başla
BlogCV 101
CV 101

iOS Geliştirici Mülakat Soruları ve Cevapları: Teknik ve Teorik Hazırlık Rehberi

CVANALIZ14 Temmuz 2026 6 dk okuma

IOS Mülakat Süreçleri ve Teknik Beklentiler

Apple ekosisteminde uygulama geliştirmek, sadece kod yazmayı değil, aynı zamanda Apple'ın katı tasarım kılavuzlarına (Human Interface Guidelines) ve performans standartlarına hakim olmayı gerektirir. Bir iOS geliştirici mülakatı ekseriyetle üç ana aşamadan oluşur: Teorik bilgi sorgulama, canlı kodlama (live coding) ve sistem tasarımı.

İşe alım uzmanları ve teknik liderler, adayın sadece dili (Swift) bilip bilmediğine değil, aynı zamanda bellek yönetimini nasıl optimize ettiğine, hangi mimari desenleri neden tercih ettiğine ve hata ayıklama (debugging) yeteneklerine odaklanır. Mülakat öncesinde hazırladığınız Cv belgesinin, teknik yetkinliklerinizi ve tamamladığınız projeleri net bir şekilde yansıtması, teknik mülakata geçiş aşamasında kritik rol oynar.

İŞ ARAMAK ZOR, BİZ KOLAYLAŞTIRIYORUZ

Tanıdık geldi mi? Hepsini çözdük.

ESKİ YÖNTEM
  • İşe alım sistemleri CV'ni okuyamıyor
  • Hangi anahtar kelimelerin eksik olduğunu bilmiyorsun
  • Mülakatta ne sorulacağını tahmin edemiyorsun
  • Başvurularını takip edecek bir sistemin yok
CVANALİZ İLE
  • 1-100 canlı ATS skoru — işveren kriterlerine göre
  • JD eşleştirme ile eksik anahtar kelimeleri anında gör
  • CV'ne özel mülakat sorularıyla prova yap
  • Kanban panosu ile tüm başvurularını takip et

Swift Temelleri: Mülakatlarda En Çok Sorulan Sorular

Swift, modern ve güvenli bir dil olduğu için mülakatların ilk bölümü genellikle dilin temel yapı taşları üzerine kuruludur. İşte en sık karşılaşılan sorular ve detaylı yanıtları:

Swift'te 'Optional' Kavramı Nedir ve Nasıl Yönetilir?

Optional'lar, bir değişkenin bir değere sahip olabileceğini veya 'nil' (boş) olabileceğini belirten bir yapıdır. Swift'in tip güvenliğini artırmak için getirdiği bu özellik, çalışma zamanı çökmelerini (runtime crashes) önlemeyi amaçlar.

CV'ni saniyeler içinde ATS-uyumlu yap.

Özellikleri keşfet

Optional değerleri güvenli bir şekilde açmak (unwrap) için şu yöntemler kullanılır:

  • Optional Binding: If let veya Guard let yapıları ile değerin varlığı kontrol edilir.
  • Nil Coalescing: ?? operatörü ile değer nil ise varsayılan bir değer atanır.
  • Force Unwrapping: ! operatörü ile değerin kesinlikle var olduğu varsayılır (riskli bir yöntemdir).

Struct ve Class Arasındaki Farklar Nelerdir?

Bu soru, iOS mülakatlarının klasiklerinden biridir. Temel fark, bellek yönetimi ve veri aktarım yöntemidir:

  • Struct (Value Type): Değer tipidir. Bir struct'ı başka bir değişkene atadığınızda verinin bir kopyası oluşturulur. Stack bellekte tutulurlar ve daha performanslıdırlar.
  • Class (Reference Type): Referans tipidir. Bir class örneğini başka bir değişkene atadığınızda, her iki değişken de bellekteki aynı nesneye işaret eder. Heap bellekte tutulurlar ve kalıtımı (inheritance) desteklerler.

Closure Nedir ve 'escaping' Ne Anlama Gelir?

Closure'lar, fonksiyon benzeri bloklardır ve değişken olarak atanabilir veya başka fonksiyonlara parametre olarak gönderilebilirler. @escaping belirteci, bir closure'ın fonksiyonun gövdesi tamamlandıktan sonra da çalışmaya devam edeceği durumlarda kullanılır. Örneğin, bir API isteği yapıldığında, cevap geldiğinde çalışacak olan completion handler'lar çoğunlukla escaping'dir.

Bellek Yönetimi ve ARC (Automatic Reference Counting)

IOS geliştirmede performansın anahtarı bellek yönetimidir. Mülakatçıların en çok üzerinde durduğu konu, bellek sızıntılarını (memory leaks) nasıl önlediğinizdir.

ARC Nasıl Çalışır?

ARC, Swift'in referans tipli nesnelerin ömrünü yönetmek için kullandığı mekanizmadır. Bir nesneye yapılan referans sayısı arttıkça referans sayacı yükselir; referanslar kaldırıldığında ise sayaç düşer. Sayaç sıfıra ulaştığında, nesne bellekten otomatik olarak silinir.

Strong, Weak ve Unowned Referanslar

Bellek döngülerini (retain cycles) önlemek için farklı referans türleri kullanılır:

  • Strong: Varsayılan referans tipidir. Nesnenin bellekten silinmesini engeller.
  • Weak: Nesneye referans verir ancak referans sayacını artırmaz. Nesne silindiğinde otomatik olarak nil olur. Genellikle delegasyon (delegation) deseninde kullanılır.
  • Unowned: Weak'e benzer ancak değerin asla nil olmayacağı garanti edildiğinde kullanılır. Eğer unowned bir referans nil olursa uygulama çöker.

Modern UI Frameworkleri: SwiftUI ve UIKit

Günümüzde birçok şirket hibrit bir yapı kullanmakta veya tamamen SwiftUI'a geçmektedir. Her iki framework'ün de çalışma prensiplerini bilmek sizi öne çıkarır.

SwiftUI ve UIKit Arasındaki Temel Farklar

UIKit, "Imperative" (Emredici) bir yaklaşıma sahiptir. Yani, UI elemanlarını nasıl değiştireceğinizi adım adım söylersiniz (Örn: Butona tıklandığında label'ın rengini kırmızı yap).

SwiftUI ise "Declarative" (Bildirimsel) bir yaklaşımdır. UI'ın nasıl görünmesi gerektiğini tanımlarsınız ve durum (state) değiştiğinde SwiftUI arayüzü otomatik olarak günceller.

State Management (Durum Yönetimi) Teknikleri

SwiftUI'da veri akışını yönetmek için kullanılan temel property wrapper'lar şunlardır:

  • @State: Basit, yerel durum yönetimi için kullanılır.
  • @Binding: Bir üst görünümden gelen veriyi değiştirmek için kullanılır.
  • @ObservedObject: Class tabanlı modelleri izlemek için kullanılır.
  • @StateObject: Nesnenin yaşam döngüsünü görünümle eşitlemek için kullanılır.
  • @EnvironmentObject: Uygulama genelinde paylaşılan verilere erişmek için kullanılır.

IOS Mimari Desenleri (Architecture Patterns)

Sadece kod yazmak yetmez; kodun sürdürülebilir, test edilebilir ve modüler olması gerekir. Mülakatlarda hangi mimariyi kullandığınız ve nedenini açıklamanız beklenir.

MVC (Model-View-Controller)

Apple'ın geleneksel mimarisidir. Ancak projeler büyüdükçe Controller sınıfı çok şiştiği için "Massive View Controller" problemi ortaya çıkar. Bu durum, iş mantığının (business logic) View katmanına kaymasına neden olur.

MVVM (Model-View-ViewModel)

Modern iOS geliştirmenin standartlarından biridir. ViewModel, View ile Model arasındaki köprüdür. İş mantığını Controller'dan ayırarak View'ın sadece görselleştirme ile ilgilenmesini sağlar. SwiftUI ile mükemmel bir uyum içerisindedir.

Clean Architecture ve VIPER

Çok büyük ölçekli projelerde kullanılan, sorumlulukların tamamen ayrıldığı mimarilerdir. VIPER (View, Interactor, Presenter, Entity, Router), her parçanın tek bir görevi olduğu, test edilebilirliğin en üst düzeye çıktığı bir yapıdır.

İleri Seviye Teknik Konular ve Optimizasyon

Kıdemli pozisyonlar için mülakatlar daha derin teknik detaylara iner. Concurrency (eşzamanlılık) ve network yönetimi burada kritik rol oynar.

GCD (Grand Central Dispatch) vs Swift Concurrency (Async/Await)

IOS'ta aynı anda birden fazla işi yapmak (örneğin arka planda veri indirip ana ekranda göstermek) için iki ana yol vardır:

  • GCD: Kuyruklar (DispatchQueue) üzerinden çalışır. DispatchQueue.main.async gibi yapılarla ana thread yönetilir.
  • Async/Await: Swift 5.5 ile gelen modern yapıdır. Callback hell (iç içe closure'lar) sorununu çözer ve kodu senkronmuş gibi okunabilir kılar.

URLSession ve API Yönetimi

Veri çekme işlemleri için URLSession standarttır. Mülakatlarda Generic yapılar kullanarak nasıl esnek bir Network Layer oluşturduğunuz sorulabilir. JSON verilerini modele dönüştürmek için Codable protokolünün kullanımı temel bir gerekliliktir.

Algoritma ve Problem Çözme Yaklaşımı

Birçok şirket, teknik mülakatın bir kısmında LeetCode tarzı algoritma soruları sorar. Burada önemli olan doğru cevaba ulaşmaktan ziyade, düşünme sürecinizi yüksek sesle paylaşmanızdır.

Bir problemle karşılaştığınızda şu adımları izleyin:

  1. Soruyu Netleştirin: Eksik parametreler var mı? Giriş ve çıkış değerleri neler olmalı?
  2. Kaba Taslak Çözüm: Hemen kod yazmaya başlamayın. Önce mantığı (pseudocode) kurun.
  3. Karmaşıklık Analizi: Çözümünüzün Time Complexity (Zaman Karmaşıklığı) ve Space Complexity (Alan Karmaşıklığı) değerlerini (Big O notation) belirtin.
  4. Optimizasyon: İlk çözümünüz çalıştıktan sonra, "Bunu daha performanslı nasıl yapabilirim?" sorusuna odaklanın.

Mülakat Hazırlık Süreci ve Portfolyo

Teknik bilgi kadar, bu bilgiyi nasıl sunduğunuz da önemlidir. İK uzmanlarının dikkatini çekmek için stratejik bir hazırlık yapmalısınız.

Etkili Bir Yazılım CV'si Nasıl Olmalı?

Bir iOS geliştiricinin Cv belgesi, sadece deneyimlerini değil, teknik yetkinliklerini de kanıtlamalıdır. Projeleriniz için GitHub linkleri eklemek, kullandığınız kütüphaneleri (Alamofire, Combine, RxSwift vb.) belirtmek ve başarılarınızı (örneğin: "Uygulama açılış hızını %20 artırdım") rakamlarla ifade etmek sizi öne çıkarır.

Eğer profesyonel bir görünüm arıyorsanız, modern ve sade bir Cv şablon seçimi yaparak okunabilirliği artırabilirsiniz. Karmaşık tasarımlar yerine, teknik yeteneklerin ve projelerin ön planda olduğu şablonlar tercih edilmelidir.

GitHub ve Portfolyo Yönetimi

Kod kaliteniz, mülakatçının sizin hakkınızdaki en net fikrini edinmesini sağlar. GitHub profilinizde şunlara dikkat edin:

  • README Dosyaları: Projenin ne işe yaradığını, hangi teknolojilerin kullanıldığını ve nasıl çalıştırılacağını açıklayan detaylı README dosyaları oluşturun.
  • Kod Standartları: İsimlendirme kurallarına (camelCase) uyun ve gereksiz yorum satırlarından kaçının.
  • Modülerlik: Kodunuzu parçalara ayırın; tek bir dosyada yüzlerce satır kod yazmak kötü bir izlenim bırakır.

Sıkça Sorulan Davranışsal Sorular

Teknik yetkinlik kadar "soft skill" dediğimiz sosyal beceriler de değerlendirilir. Bu sorulara STAR (Situation, Task, Action, Result) yöntemiyle cevap vermeniz önerilir.

"Bir teknik anlaşmazlık yaşadığınızda nasıl çözersiniz?"

Burada mülakatçı, egonuzu nasıl yönettiğinizi ve ortak paydada nasıl buluştuğunuzu anlamaya çalışır. "Veriye dayalı karar verme" ve "açık iletişim" anahtar kelimelerini kullanın. Örnek: "Bir mimari seçiminde farklı fikirdeydik, her iki yöntemin artılarını ve eksilerini listeleyip küçük bir PoC (Proof of Concept) yaparak performans testleri sonucunda ortak karara vardık."

"En zorlandığınız teknik problem neydi ve nasıl çözdünüz?"

Bu soru, problem çözme yeteneğinizi ve öğrenme azminizi ölçer. Sorunu tanımlayın, denediğiniz başarısız yöntemleri anlatın ve sonunda nasıl bir çözüm bulduğunuzu açıklayın. Bu süreçte kullandığınız debug araçlarından (Instruments, LLDB) bahsetmek teknik derinliğinizi gösterir.

Özet ve Son Tavsiyeler

IOS geliştirici mülakatları, hem derinlemesine dil bilgisi hem de geniş bir ekosistem hakimiyeti gerektirir. Swift'in temellerinden başlayarak, bellek yönetimi, modern UI frameworkleri ve mimari desenler üzerinde uzmanlaşmak sizi rekabette öne taşır.

Hazırlık sürecinizde sadece teorik okumalar yapmayın; küçük projeler geliştirin, mevcut projelerinizi refactor edin ve kod inceleme (code review) süreçlerine dahil olun. En iyi öğrenme yolu, karşılaşılan hataları çözmektir. Teknik hazırlığınızı tamamladıktan sonra, yetkinliklerinizi en iyi şekilde yansıtan bir Cv oluştur aşamasına geçerek hayalinizdeki işe bir adım daha yaklaşabilirsiniz.

Başarılar dileriz!

#iOS Geliştirici#Swift Mülakat Soruları#SwiftUI#iOS Kariyer#Mobil Yazılım

ATS uyumlu CV'ni dakikalar içinde hazırla.

Ücretsiz Başla
  • IOS Mülakat Süreçleri ve Teknik Beklentiler
  • Swift Temelleri: Mülakatlarda En Çok Sorulan Sorular
  • Swift'te 'Optional' Kavramı Nedir ve Nasıl Yönetilir?
  • Struct ve Class Arasındaki Farklar Nelerdir?
  • Closure Nedir ve 'escaping' Ne Anlama Gelir?
  • Bellek Yönetimi ve ARC (Automatic Reference Counting)
  • ARC Nasıl Çalışır?
  • Strong, Weak ve Unowned Referanslar
  • Modern UI Frameworkleri: SwiftUI ve UIKit
  • SwiftUI ve UIKit Arasındaki Temel Farklar
  • State Management (Durum Yönetimi) Teknikleri
  • IOS Mimari Desenleri (Architecture Patterns)
  • MVC (Model-View-Controller)
  • MVVM (Model-View-ViewModel)
  • Clean Architecture ve VIPER
  • İleri Seviye Teknik Konular ve Optimizasyon
  • GCD (Grand Central Dispatch) vs Swift Concurrency (Async/Await)
  • URLSession ve API Yönetimi
  • Algoritma ve Problem Çözme Yaklaşımı
  • Mülakat Hazırlık Süreci ve Portfolyo
  • Etkili Bir Yazılım CV'si Nasıl Olmalı?
  • GitHub ve Portfolyo Yönetimi
  • Sıkça Sorulan Davranışsal Sorular
  • "Bir teknik anlaşmazlık yaşadığınızda nasıl çözersiniz?"
  • "En zorlandığınız teknik problem neydi ve nasıl çözdünüz?"
  • Özet ve Son Tavsiyeler

İlgili yazılar

CV 101

Prompt Mühendisi Nasıl Olunur? Adım Adım Kariyer Rehberi ve Pratik İpuçları

7 dk okuma

CV 101

Siber Güvenlik Uzmanı Nasıl Olunur? Kapsamlı Kariyer Haritası

3 dk okuma

CV 101

SOC Analisti Nasıl Olunur?

4 dk okuma

C
cvanaliz

Türkiye'nin akıllı kariyer platformu. CV analizi, ATS uyumu ve mülakat hazırlığı — hepsi bir arada.

Ürün

ÖzelliklerFiyatlandırmaŞablonlarCV Analizi Rehberi

Şirket

KurumsalBlogMülakat DeğerlendirMaaşlar

Yasal

GizlilikKullanım KoşullarıKVKK
© 2026cvanaliz.com — Türkiye'de ❤️ ile yapıldı.
IOS Mülakat Süreçleri ve Teknik Beklentiler
İçindekiler