Author Archives: admin

iOS Developer job interview technical questions

Recently, I was involved in a couple of recruitment processes. During each of them there was of course a technical part, involving a technical interview and/or an online task to complete (eg. DevSkiller).

Below you can find most of the questions I was asked, grouped by topic.

Language / Foundation

  • Q: What is ARC and how it works (compared to manual memory management)?
    A: Transitioning to ARC (Obj-C) and Swift ARC
    • Q: (ObjC) Is release/autorelease still used in ARC?
      A: Not explicitly, it is used under the hood.
    • Q: What is Auto Release Pool? Is it still used in Swift?
      A: Rock Bruno’s blog post
  • Q: Describe strong vs weak (vs unowned) reference. What are reference cycles?
    A: TL;DR: Strong references increment reference counter (by 1), and weak (also unowned) references not. More in already linked Swift ARC.
  • Q: Obj-C Category vs Swift extension – are they related? how? what are the differences?
    A: Brief comparison of categories and extensions
  • Q: What is the difference between static and class methods?
    A: Subclasses can override class methods (and static not).
  • Q: Describe enum type – its capabilities and example use cases
    A: Enumerations on Swift.org
    • Q: Associated values / raw values ?
    • Q: What is a recursive enum? (indirect keyword?)
  • Q: What are reference and value types? describe, which types are what, memory?
    A: Classes and structures or Reference vs value types. Also functions, closures and actors are reference types (Closures).
  • Q: What is a race condition? And data race?
    A: Race condition vs data race
    • Q: How to detect and debug them?
      A: Using Xcode’s Thread and Address sanitizers
  • Q: Generics, protocol with generics (where can be used?)
    A: Generics
    • Q: Associated type in protocol

Foundation

UI Kit

Core Bluetooth

I was asked if I am familiar with below topics:

  • GATT
  • MTU
  • CTKD, encryption
  • pairing and bonding
  • L2CAP

Design/Architecture

Describe and compare: MVC vs MVVM vs MVP.