En Popüler iOS Developer Mülakat Soruları

Anasayfa Kurumsal Blog En Popüler iOS Developer Mülakat Soruları

İş görüşmelerinde en sık sorulan iOS Developer mülakat soruları ve cevapları neler?

iOS, Apple firmasının üretmiş olduğu donanımlar üzerinde çalışan mobil işletim sistemine verilen genel isimdir. Objective-C ve Swift ise Apple tarafından üretilmiş Apple TV, Apple Watch, Mac uygulamaları geliştirmek için kullanılan güçlü ve kullanıcı dostu programlama dilleridir.

iOS programlama dillerini öğrenirken güncel konu başlıklarını takip etmek, yeni bilgiler edinmek ve sektördeki başarılı kişilerin tecrübelerini dinlemek için “Başarılı iOS Uygulamaları Geliştirmek İsteyenlerin Mutlaka Takip Etmesi Gereken Yazılımcılar” blog yazımızı inceleyerek güncel haberlerden ilk siz haberdar olabilirsiniz.

iOS mülakatlarına girmeden önce sizin için hazırladığımız rehber niteliğindeki bu sorulara mutlaka göz atmalısınız! ????

En Popüler iOS Developer Mülakat Soruları
???? Swift ve Objective-C nedir?
Objective-C, OS X ve iOS için yazılım yazmak için kullandığınız birincil programlama dilidir. C programlama dilinin bir üst kümesidir ve nesne yönelimli yetenekler ve dinamik bir çalışma süresi sağlar. Objective-C, C’nin sözdizimini, ilkel türlerini ve akış kontrol ifadelerini miras alır ve sınıfları ve yöntemleri tanımlamak için sözdizimi ekler. Ayrıca, dinamik yazım ve bağlama sağlarken, birçok sorumluluğu çalışma zamanına kadar erteleyerek, nesne grafik yönetimi ve nesne değişmezleri için dil düzeyinde destekler.

Swift, iOS, OS X, watchOS ve tvOS uygulamaları için C uyumluluğunun kısıtlamaları olmadan en iyi C ve Objective-C’yi temel alan yeni bir programlama dilidir. Swift, güvenli programlama kalıplarını benimser ve programlamayı daha kolay, daha esnek ve daha eğlenceli hale getirmek için modern özellikler ekler. Swift, Objective-C geliştiricilerine aşina hissediyor ve yeni programcılara dostça davranıyor.

???? Swift ve Objective-C arasındaki fark nedir?
iOS developer mülakat soruları arasında en sık sorulan sorulardan biri de Swift ve Objective-C arasındaki fark sorusudur.

Swift, C üzerine inşa edilmiş bir dille birlikte gelen eski kuralları kaldırarak daha hızlı, daha güvenli, okunması ve bakımı daha kolaydır.
Objective-C, “String”, “Dictionary” ve “Array” gibi basit adlar yerine “NSString”, “NSDictionary” ve “NSArray” gibi isimler kullanır.

En iyi iOS geliştiricileri, Swift’in iOS geliştirmenin geleceği olduğunu anlayarak her ikisinde de oldukça bilgili olma eğilimindedir.


???? Cocoa ve Cocoa Touch nedir?
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.

Cocoa Cocoa Touch
1. OS X için uygulama geliştirme ortamı sağlar. 1. iOS için uygulama geliştirme ortamı sağlar.
2. Foundation ve AppKit frameworklerini içerir. 2. Foundation ve UIKit frameworklerini içerir.
3. Objective-C çalışma zamanını temel alan ve kök sınıftan miras alan herhangi bir sınıfı / nesneyi belirtmek için kullanılır. 3. Herhangi bir programatik arabirimi kullanarak uygulama geliştirmeye atıfta bulunmak için kullanılır.
???? Hangi JSON framework’ü iOS tarafından desteklenir?
iOS, SBJson framework’ünü destekler.
SBJson, Objective-C için bir JSON ayrıştırıcısı ve oluşturucusudur.
Esnek API’ler ve ek kontrol sağlayarak JSON işlemeyi kolaylaştırır.


???? Atomik ve atomik olmayan özellikler arasındaki fark nedir? Sentezlenmiş özellikler için varsayılan değer hangisidir?
Atomik olarak belirtilen özellikler her zaman tam olarak başlatılmış bir nesne döndürür. Bu aynı zamanda sentezlenmiş özellikler için varsayılan durum olur. Ancak, başlatılmamış bir değeri almanın bir risk olmadığını bildiğiniz bir mülkünüz varsa (örneğin, mülke tüm erişim başka yollarla zaten senkronize edilmişse), o zaman onu atomik olmayan olarak ayarlamak size atomikten daha iyi performans sağlayabilir.

???? ‘app ID’ ile ‘bundle ID’ farkını açıklayın.
app ID, tek bir geliştirme ekibinden bir veya daha fazla uygulamayı tanımlamak için kullanılan iki parçalı bir dizedir. Dize, iki parçayı ayıran bir nokta (.) İle bir Takım Kimliği ve bir paket kimliği arama dizesinden oluşur. Ekip Kimliği Apple tarafından sağlanır ve belirli bir geliştirme ekibine özeldir; paket kimliği arama dizesi ise geliştirici tarafından tek bir uygulamanın paket kimliğiyle veya bir uygulama grubu için bir dizi paket kimliğiyle eşleşecek şekilde sağlanır.

bundle ID, her uygulamayı tanımlar ve Xcode’da belirtilir. Tek bir Xcode projesinin birden çok hedefi olabilir ve bu nedenle birden çok uygulama çıktı alabilir. Yaygın bir kullanım örneği, hem lite / free hem de pro / tam sürümleri olan veya birden çok şekilde markalanmış bir uygulamadır.

???? iOS’ta eşzamanlılık elde etmenin yolları nelerdir?
iOS’ta eşzamanlılık elde etmenin üç yolu vardır:
Threads
Dispatch queues
Operation queues


???? Farklı iOS Application State durumlarını açıklayın.
iOS developer mülakat soruları arasında mutlaka sorulan sorulardan biri de uygulama durumlarıdır.
Not running state / Çalışmıyor durumu: Uygulama başlatılmadığında veya çalışıyorken ancak sistem tarafından sonlandırıldığında.

Inactive state / Devre dışı durum: uygulama ön planda çalışırken şu anda olay almadığında. Bir uygulama, farklı bir duruma geçerken kısa bir süre bu durumda kalır. Hareketsiz kaldığı tek zaman, kullanıcının ekranı kilitlediği veya sistemin kullanıcıdan telefon görüşmesi veya SMS mesajı gibi bazı olaylara yanıt vermesini istediği zamandır.

Active state / Etkin durum: uygulama ön planda çalışırken ve olayları alırken. Bu, ön plan uygulamaları için normal moddur.

Background state / Arka plan durumu: Uygulama arka planda olduğunda ve kod çalıştırıldığında. Çoğu uygulama, askıya alınma yolunda kısaca bu duruma girer. Ancak, fazladan yürütme süresi isteyen bir uygulama bir süre bu durumda kalabilir. Ayrıca, doğrudan arka planda başlatılan bir uygulama, etkin olmayan durum yerine bu duruma girer.

Suspended state / Askıya alınmış durum: Askıya alınmış bir uygulama bellekte kalır ancak herhangi bir kod yürütmez. Düşük bellek durumu oluştuğunda, sistem ön plan uygulaması için daha fazla alan açmak için askıya alınmış uygulamaları haber vermeden temizleyebilir.

???? iOS için bir uygulamanın kullanıcı arayüzünü oluşturmak için kullanılan çerçeve hangisidir?
UIKit çerçevesi, uygulamanın iOS için kullanıcı arayüzünü geliştirmek için kullanılır. Dokunmatik ekran arayüzü için özel olarak tasarlanmış olay işleme, çizim modeli, pencereler, görünümler ve kontroller sağlar.

???? Uygulamanın kullanıcı arayüzü öğelerini kullanmak üzere test komut dosyaları yazmak için hangi API’yi kullanıyorsunuz?
UI Automation API, test prosedürlerini otomatikleştirmek için kullanılır. UI Automation API’ye yazılan JavaScript test komut dosyaları, uygulamayla kullanıcı etkileşimini simüle eder ve günlük bilgilerini ana bilgisayara döndürür.

???? Bir uygulamanın çalışır durumda olmadığını ne zaman söylersiniz?
Aşağıdaki durumlarda bir uygulamanın “çalışmıyor” durumunda olduğu söylenir:
– Başlatılmadığında.
– Çalışma sırasında sistem tarafından sonlandırıldığında.

???? SpriteKit nedir ve SceneKit nedir?
SpriteKit, animasyonlu 2D nesnelerin kolay geliştirilmesi için bir çerçevedir.

SceneKit, 3B grafik oluşturmaya yardımcı olan OS X’ten miras alınan bir çerçevedir.

SpriteKit, SceneKit ve Metal’in, iOS cihazlarının güçlü GPU’larının sunabileceklerini yeniden tanımlayan yeni nesil mobil oyunlara güç vermesi bekleniyor.


???? iBeacons nedir?
iBeacon.com, iBeacon’u, Mobil Uygulamaların fiziksel dünyadaki işaretçilerden gelen sinyalleri dinlemesine ve buna göre tepki vermesine olanak tanıyan Apple’ın teknoloji standardı olarak tanımlar. iBeacon teknolojisi, Mobil Uygulamaların konumlarını mikro yerel ölçekte anlamasına ve konuma göre kullanıcılara hiper bağlamsal içerik sunmasına olanak tanır. Temel iletişim teknolojisi Bluetooth Low Energy’dir.

???? “assign” ve “retain” arasındaki fark nedir?
Retain; tutmanın, atamanın ardından nesnede çağrılması gerektiğini belirtir. Bir nesnenin sahipliğini alır.
Assign; ayarlayıcının basit atama kullandığını belirtir. Float, int gibi skaler türdeki özniteliklerde kullanılır.

????NSObject’e kadar bir UIButton için sınıf hiyerarşisinin ana hatları nedir?
UIButton, UIControl’den miras alır, UIControl, UIView’den miras alır, UIView, UIResponder’dan miras alır, UIResponder, NSObject kök sınıfından miras alır.


???? iOS’ta bellek yönetimi nasıl işlenir?
Swift, Otomatik Referans Sayımı (ARC) kullanır. Bu, kavramsal olarak Objective-C’de olduğu gibi Swift’de de aynı şeydir. ARC, sınıf örneklerine yönelik güçlü referansları izler ve sınıfların örneklerini (referans türleri) sabitlere, özelliklere ve değişkenlere atadığınızda veya atamasını kaldırdığınızda referans sayısını buna göre artırır veya azaltır. Referans sayısı sıfıra düşen nesneler tarafından kullanılan belleği serbest bırakır. ARC, değer türlerinin referans sayısını artırmaz veya azaltmaz çünkü atandıklarında bunlar kopyalanır. Varsayılan olarak, aksini belirtmezseniz, tüm referanslar güçlü referanslar olacaktır.

???? iOS uygulamalarında yaygın olarak hangi tasarım modelleri kullanılıyor?
iOS uygulamaları oluştururken tipik olarak yaygın olarak kullanılan modeller, Apple’ın Cocoa, Cocoa Touch, Objective-C ve Swift belgelerinde savunduğu modellerdir. Bunlar, her iOS geliştiricisinin öğrendiği kalıplardır. Apple bunlardan “temel yetkinlikler” tasarım modelleridir.
MVC, Singleton, Delegate ve Observer’ı içerir.

???? Objective-C’deki yönetilen nesne bağlamının (NSManagedObjectContext) amacı nedir ve nasıl çalışır?
Yönetilen nesne bağlamı üç neden sebebiyle kullanılır: yaşam döngüsü yönetimi, bildirimler ve eşzamanlılık. Geliştiricinin kalıcı bir mağazadan bir nesneyi almasına ve bu değişiklikleri kalıcı mağazaya atıp atmayacağına karar vermeden önce gerekli değişiklikleri yapmasına olanak tanır. Yönetilen nesne bağlamı, bu değişiklikleri izler ve geliştiricinin değişiklikleri geri almasına ve yeniden yapmasına olanak tanır.

WhatsApp