SlideShare una empresa de Scribd logo
1 de 34
Descargar para leer sin conexión
The iOS technical
interview: get your dream
job as an iOS developer
Juan Catalan
jcatalan007@gmail.com
About me
• Senior iOS developer working at Actsoft, Inc, in
sunny Tampa, FL, USA
• Started iOS development in 2009
• 20+ apps in the App Store
• Objective C veteran, Swift enthusiast
Agenda
• Industry requirements for a professional iOS
developer
• Applying for an iOS developer job
• The iOS technical interview
• Sample questions, advice
• Reference material
Industry requirements for a
professional iOS developer
Junior
• Have at least one app in the App Store (sample
projects count) or a Github repository with sample code
• No experience in the job needed
• Know the basics of iOS development
• Swift knowledge, maybe willing to learn Objective C
Industry requirements for a
professional iOS developer
Mid level
• Have at least one app in the App Store which is not a
sample project
• 2+ years of experience
• Know how to build an app from scratch and publish to the
App Store
• Objective C and Swift knowledge
Industry requirements for a
professional iOS developer
Senior
• Have several apps in the App Store (5+)
• 5+ years of experience as an iOS developer / 10+ in Software
Development
• Deep knowledge of Objective C and Swift and how to interface
between them
• Knowledge of complex subjects like memory management,
concurrency, git, unit tests, automated builds, continuous integration
Applying for an iOS
developer job
• Have an updated LinkedIn profile with links to
your apps or have a portfolio website
• Have an updated resume in word and pdf format
• Have apps or code written by yourself available in
Github/Bitbucket/Gitlab
• Apply and prepare yourself for the interviews
Applying for an iOS
developer job
Recruiter / HR person
(Technical) screening interview
Technical interview / On-site interview
Team interview / On-site
Recruiter / HR person
Applying for an iOS
developer job
Recruiter / HR person
(Technical) screening interview
Technical interview / On-site interview
Team interview / On-site
Recruiter / HR person
• LinkedIn profile / resume
• Match resume with the required
experience
• Behavior, behavior, behavior!
Applying for an iOS
developer job
Recruiter / HR person
(Technical) screening interview
Technical interview / On-site interview
Team interview / On-site
Recruiter / HR person
• Match resume with the required
experience
• Technical questions tailored to the
required experience and company
needs
• Could include real coding exercise to
be submitted after the interview
Applying for an iOS
developer job
Recruiter / HR person
(Technical) screening interview
Technical interview / On-site interview
Team interview / On-site
Recruiter / HR person
• Techical questions
• General software development questions
• Specific iOS development questions
• Whiteboard/paper coding exercises
• Real coding exercise / app
Applying for an iOS
developer job
Recruiter / HR person
(Technical) screening interview
Technical interview / On-site interview
Team interview / On-site
Recruiter / HR person
• Resume questions
• Techical questions
• Behavioral questions
Applying for an iOS
developer job
Recruiter / HR person
(Technical) screening interview
Technical interview / On-site interview
Team interview / On-site
Recruiter / HR person
• Company decision
• Offer negotiation
• Offer letter
The iOS technical interview
Algorithms and data structures
Design patterns
Tools (Xcode, Instruments, git, …)
Frameworks (iOS SDK, 3rd party libraries)
Programming Languages (Objective C, Swift)
Objective C
• Classes, instance variables, properties, methods, method signatures
• Memory management: ARC/MRC, retain cycles, strong, weak,
assign, initializers (designated, convenience), dealloc
• Protocols, Categories, Blocks
• Control flow: loops (for, for-in, while, do-while), fast enumeration,
switch, if-else, continue, break, return
• NSString, NSArray, NSDictionary, NSSet (and mutable counterparts),
NSNumber, NSDate, NSNull vs nil, NSURLSession,
NSJSONSerialization, NSError
• Interfacing with Swift and C/C++
Swift
• Structs, classes, (value types vs reference types), methods, method
signatures, properties, enums (with associated values), tuples,
extensions, protocols, closures, generics, map-filter-reduce
• Memory management: ARC, retain cycles, strong, weak, unowned,
initializers (designated, convenience), deinit
• Optional types (regular, implicit, unwrapping, optional chaining, default
values), variables and constants, if-let, guard
• Dictionary, Array, Set, String, Int, Double, Date, URLSession, URL
• Control Flow: loops (for-in, while, repeat-while), switch, error handling (do
- catch, throw, throws), continue, break, return
• Bridging headers, interfacing Swift-Objective C, API Design Guidelines
iOS SDK
• Support multiple versions of iOS
• Foundation, Swift Standard Library
• UIKit, Core Location, Core Animation, Core Graphics, MapKit
• Core Data, UserDefaults, Property Lists, FileManager, SQLite
• URL, URLSession, JSONSerialization
• Grand Central Dispatch, Operation, OperationQueue
• XCTest
iOS SDK: UIKit
• Storyboards, nib files, segues, auto-layout vs UI in code
• UIViewController, UINavigationController (and stack of VC)
• UITableView, UITableViewController, UITableViewCell
(custom cells), asynchronous data loading (background
thread)
• UIView subclass, gesture recognizers, core graphics, core
animation, UICollectionView, UIStackView
• UIButton, UILabel, UIImageView, UITextField, UITextView,
UIScrollView, UISwitch, Segmented Control
3rd Party Libraries
• Knowing how to discover and install 3rd party
libraries: Cocoapods/Github
• Networking: AFNetworking, AlamoFire
• JSON: Mantle, SwiftyJSON
• Alternatives to Core Data: SQLite, Realm
Development Tools
• Xcode: project, targets, info.plist, source control, editor (refactoring,
code folding, re-indent), archive, devices, organizer, debugger
(breakpoints, inspect variables, single-step)
• Instruments: allocations, zombies, leaks, network, time profiler,
activity monitor
• Apple Developer Account, iTunes Connect, Beta app distribution
and crash reports (TestFlight, Fabric, HockeyApp)
• Git, GitHub/Bitbucket/GitLab: commit, merge, rebase, reset, stage,
pull, push, fetch, fork, clone, pull requests, GitFlow branching model
• Cocoapods, Carthage, Swift Package Manager
Design Patterns
• Object Oriented Design: inheritance, polimorfism,
composition
• MVC, Delegation, KVO, Factory, KVC, Singleton,
target-action (IBOutlet/IBAction), Notifications
• Protocol Oriented Design (Swift)
• MVVM, Inversion of Control, Dependency Injection
• General patterns: Decorator, Façade, Adapter, etc.
Algorithms & Data Structures
• Big-O Notation
• Array, string, linked list, stack, queue, binary tree,
graph, hash tables
• Recursion, bread first search, depth first search,
binary search, merge sort, quick sort, data
structure operations (insert, delete, find,
traversing graphs, etc.)
• Multitasking: thread, process, lock, critical section
Coding exercise:
sample app
NASA Images
NASA Images
NASA Images
• Downloads pictures from the Astronomy Picture of
the Day website (https://apod.nasa.gov) and
shows the pictures in a scrolling table view.
• Uses NASA Open API web services
• Uses best practices: parallel downloads, smooth
UI scrolling while downloads are in progress,
provides a mechanism to refresh the UI, etc.
Networking
JSON
Image Downloader
NASA Images
UITableView
UILabel
UIImageViewUIRefreshControl
UITextView
Progress Indicator
Sample interview
questions
Sample interview questions
1. What was the latest version of iOS you worked with? what
do you like about it and why?
2. Have you worked with Swift? What do you like about it?
What you don’t like?
3. How memory management is handled on iOS?
4. What do you know about singletons? Where would you
use one and where you wouldn’t?
5. Could you explain what is the difference between
Delegate and KVO?
https://www.linkedin.com/pulse/ios-interview-questions-senior-developers-alex-bush
Sample interview questions
6. How do you usually persist data on iOS?
7. How do you typically do networking?
8. How do you serialize data on iOS (JSON from the
web or local app data to Core Data and other
storages) ?
9. What design patterns do you know and use on iOS?
10.What is Auto-layout?
https://www.linkedin.com/pulse/ios-interview-questions-senior-developers-alex-bush
Sample interview questions
11.How do you handle async tasks?
12.How do you manage dependencies?
13.How do you debug and profile things on iOS?
14.Do you code review?
15.Do you test your code? What do you do to make
your code testable?
https://www.linkedin.com/pulse/ios-interview-questions-senior-developers-alex-bush
Advice
• Don’t waste your bullets
• Be honest
• Be precise
• Be respectful, be friendly, not arrogant
• Never give up with though questions
Reference material
• https://www.glassdoor.com/Interview/ios-
developer-interview-questions-SRCH_KO0,13.htm
• https://www.linkedin.com/pulse/ios-interview-
questions-senior-developers-alex-bush
• Cracking the Coding Interview: 189 Programming
Questions and Solutions, Gayle Laakmann
McDowell
• https://careercup.com
Thanks!
• Slides
https://www.slideshare.net/jcatalan007/the-ios-
technical-interview-get-your-dream-job-as-an-
ios-developer

Más contenido relacionado

La actualidad más candente

Android application structure
Android application structureAndroid application structure
Android application structure
Alexey Ustenko
 
cellphone virus and security
cellphone virus and securitycellphone virus and security
cellphone virus and security
Akhil Kumar
 

La actualidad más candente (20)

Flutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | EdurekaFlutter Tutorial For Beginners | Edureka
Flutter Tutorial For Beginners | Edureka
 
An Introduction to the Android Framework -- a core architecture view from app...
An Introduction to the Android Framework -- a core architecture view from app...An Introduction to the Android Framework -- a core architecture view from app...
An Introduction to the Android Framework -- a core architecture view from app...
 
iOS Development - A Beginner Guide
iOS Development - A Beginner GuideiOS Development - A Beginner Guide
iOS Development - A Beginner Guide
 
Android ppt
Android pptAndroid ppt
Android ppt
 
Introduction to Ionic framework
Introduction to Ionic frameworkIntroduction to Ionic framework
Introduction to Ionic framework
 
Appium basics
Appium basicsAppium basics
Appium basics
 
Whatsapp seminar-report
Whatsapp seminar-reportWhatsapp seminar-report
Whatsapp seminar-report
 
Appium solution
Appium solutionAppium solution
Appium solution
 
CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT CROSS PLATFORM APPLICATIONS DEVELOPMENT
CROSS PLATFORM APPLICATIONS DEVELOPMENT
 
Flutter & Firebase BootCamp.pdf
Flutter & Firebase BootCamp.pdfFlutter & Firebase BootCamp.pdf
Flutter & Firebase BootCamp.pdf
 
Electron
ElectronElectron
Electron
 
Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce Apps
 
Uber mobility - Build & Release
Uber mobility - Build & ReleaseUber mobility - Build & Release
Uber mobility - Build & Release
 
Automation testing on ios platform using appium
Automation testing on ios platform using appiumAutomation testing on ios platform using appium
Automation testing on ios platform using appium
 
Introduction of android treble
Introduction of android trebleIntroduction of android treble
Introduction of android treble
 
Web assembly: a brief overview
Web assembly: a brief overviewWeb assembly: a brief overview
Web assembly: a brief overview
 
Automation With Appium
Automation With AppiumAutomation With Appium
Automation With Appium
 
Android application structure
Android application structureAndroid application structure
Android application structure
 
Top 20 best automation testing tools
Top 20 best automation testing toolsTop 20 best automation testing tools
Top 20 best automation testing tools
 
cellphone virus and security
cellphone virus and securitycellphone virus and security
cellphone virus and security
 

Similar a The iOS technical interview: get your dream job as an iOS developer

Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
Nuxeo
 
Tulika Biswas CV (1)
Tulika Biswas CV (1)Tulika Biswas CV (1)
Tulika Biswas CV (1)
Tulika Biswas
 
SajidaRanaResume (3)
SajidaRanaResume (3)SajidaRanaResume (3)
SajidaRanaResume (3)
sa7899
 

Similar a The iOS technical interview: get your dream job as an iOS developer (20)

Image Processing and Computer Vision in iPhone and iPad
Image Processing and Computer Vision in iPhone and iPadImage Processing and Computer Vision in iPhone and iPad
Image Processing and Computer Vision in iPhone and iPad
 
Understanding iOS from an Android perspective
Understanding iOS from an Android perspectiveUnderstanding iOS from an Android perspective
Understanding iOS from an Android perspective
 
A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)A guide to hiring a great developer to build your first app (redacted version)
A guide to hiring a great developer to build your first app (redacted version)
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011
 
Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?Is it possible to write cross-native apps in 2020 ?
Is it possible to write cross-native apps in 2020 ?
 
Tips to Kick-start your Software Engineering Career
Tips to Kick-start your Software Engineering CareerTips to Kick-start your Software Engineering Career
Tips to Kick-start your Software Engineering Career
 
Tips to kick-start your Software Engineering Career - Ferdous Mahmud Shaon
Tips to kick-start your Software Engineering Career - Ferdous Mahmud ShaonTips to kick-start your Software Engineering Career - Ferdous Mahmud Shaon
Tips to kick-start your Software Engineering Career - Ferdous Mahmud Shaon
 
Tulika Biswas CV (1)
Tulika Biswas CV (1)Tulika Biswas CV (1)
Tulika Biswas CV (1)
 
Next-gen IDE v2 - OpenSlava 2013-10-11
Next-gen IDE v2 - OpenSlava 2013-10-11Next-gen IDE v2 - OpenSlava 2013-10-11
Next-gen IDE v2 - OpenSlava 2013-10-11
 
Anshul Mahajan_iOS
Anshul Mahajan_iOSAnshul Mahajan_iOS
Anshul Mahajan_iOS
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022
 
The Developers World
The Developers WorldThe Developers World
The Developers World
 
iOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET GuyiOS Development Survival Guide for the .NET Guy
iOS Development Survival Guide for the .NET Guy
 
JS - The Unknown Basics.pptx
JS - The Unknown Basics.pptxJS - The Unknown Basics.pptx
JS - The Unknown Basics.pptx
 
iPhone OS: The Next Killer Platform
iPhone OS: The Next Killer PlatformiPhone OS: The Next Killer Platform
iPhone OS: The Next Killer Platform
 
Putting together a web app
Putting together a web appPutting together a web app
Putting together a web app
 
SajidaRanaResume (3)
SajidaRanaResume (3)SajidaRanaResume (3)
SajidaRanaResume (3)
 
Case study
Case studyCase study
Case study
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
 
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
An Open Source Workbench for Prototyping Multimodal Interactions Based on Off...
 

Último

%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Último (20)

%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 

The iOS technical interview: get your dream job as an iOS developer

  • 1. The iOS technical interview: get your dream job as an iOS developer Juan Catalan jcatalan007@gmail.com
  • 2. About me • Senior iOS developer working at Actsoft, Inc, in sunny Tampa, FL, USA • Started iOS development in 2009 • 20+ apps in the App Store • Objective C veteran, Swift enthusiast
  • 3. Agenda • Industry requirements for a professional iOS developer • Applying for an iOS developer job • The iOS technical interview • Sample questions, advice • Reference material
  • 4. Industry requirements for a professional iOS developer Junior • Have at least one app in the App Store (sample projects count) or a Github repository with sample code • No experience in the job needed • Know the basics of iOS development • Swift knowledge, maybe willing to learn Objective C
  • 5. Industry requirements for a professional iOS developer Mid level • Have at least one app in the App Store which is not a sample project • 2+ years of experience • Know how to build an app from scratch and publish to the App Store • Objective C and Swift knowledge
  • 6. Industry requirements for a professional iOS developer Senior • Have several apps in the App Store (5+) • 5+ years of experience as an iOS developer / 10+ in Software Development • Deep knowledge of Objective C and Swift and how to interface between them • Knowledge of complex subjects like memory management, concurrency, git, unit tests, automated builds, continuous integration
  • 7. Applying for an iOS developer job • Have an updated LinkedIn profile with links to your apps or have a portfolio website • Have an updated resume in word and pdf format • Have apps or code written by yourself available in Github/Bitbucket/Gitlab • Apply and prepare yourself for the interviews
  • 8. Applying for an iOS developer job Recruiter / HR person (Technical) screening interview Technical interview / On-site interview Team interview / On-site Recruiter / HR person
  • 9. Applying for an iOS developer job Recruiter / HR person (Technical) screening interview Technical interview / On-site interview Team interview / On-site Recruiter / HR person • LinkedIn profile / resume • Match resume with the required experience • Behavior, behavior, behavior!
  • 10. Applying for an iOS developer job Recruiter / HR person (Technical) screening interview Technical interview / On-site interview Team interview / On-site Recruiter / HR person • Match resume with the required experience • Technical questions tailored to the required experience and company needs • Could include real coding exercise to be submitted after the interview
  • 11. Applying for an iOS developer job Recruiter / HR person (Technical) screening interview Technical interview / On-site interview Team interview / On-site Recruiter / HR person • Techical questions • General software development questions • Specific iOS development questions • Whiteboard/paper coding exercises • Real coding exercise / app
  • 12. Applying for an iOS developer job Recruiter / HR person (Technical) screening interview Technical interview / On-site interview Team interview / On-site Recruiter / HR person • Resume questions • Techical questions • Behavioral questions
  • 13. Applying for an iOS developer job Recruiter / HR person (Technical) screening interview Technical interview / On-site interview Team interview / On-site Recruiter / HR person • Company decision • Offer negotiation • Offer letter
  • 14. The iOS technical interview Algorithms and data structures Design patterns Tools (Xcode, Instruments, git, …) Frameworks (iOS SDK, 3rd party libraries) Programming Languages (Objective C, Swift)
  • 15. Objective C • Classes, instance variables, properties, methods, method signatures • Memory management: ARC/MRC, retain cycles, strong, weak, assign, initializers (designated, convenience), dealloc • Protocols, Categories, Blocks • Control flow: loops (for, for-in, while, do-while), fast enumeration, switch, if-else, continue, break, return • NSString, NSArray, NSDictionary, NSSet (and mutable counterparts), NSNumber, NSDate, NSNull vs nil, NSURLSession, NSJSONSerialization, NSError • Interfacing with Swift and C/C++
  • 16. Swift • Structs, classes, (value types vs reference types), methods, method signatures, properties, enums (with associated values), tuples, extensions, protocols, closures, generics, map-filter-reduce • Memory management: ARC, retain cycles, strong, weak, unowned, initializers (designated, convenience), deinit • Optional types (regular, implicit, unwrapping, optional chaining, default values), variables and constants, if-let, guard • Dictionary, Array, Set, String, Int, Double, Date, URLSession, URL • Control Flow: loops (for-in, while, repeat-while), switch, error handling (do - catch, throw, throws), continue, break, return • Bridging headers, interfacing Swift-Objective C, API Design Guidelines
  • 17. iOS SDK • Support multiple versions of iOS • Foundation, Swift Standard Library • UIKit, Core Location, Core Animation, Core Graphics, MapKit • Core Data, UserDefaults, Property Lists, FileManager, SQLite • URL, URLSession, JSONSerialization • Grand Central Dispatch, Operation, OperationQueue • XCTest
  • 18. iOS SDK: UIKit • Storyboards, nib files, segues, auto-layout vs UI in code • UIViewController, UINavigationController (and stack of VC) • UITableView, UITableViewController, UITableViewCell (custom cells), asynchronous data loading (background thread) • UIView subclass, gesture recognizers, core graphics, core animation, UICollectionView, UIStackView • UIButton, UILabel, UIImageView, UITextField, UITextView, UIScrollView, UISwitch, Segmented Control
  • 19. 3rd Party Libraries • Knowing how to discover and install 3rd party libraries: Cocoapods/Github • Networking: AFNetworking, AlamoFire • JSON: Mantle, SwiftyJSON • Alternatives to Core Data: SQLite, Realm
  • 20. Development Tools • Xcode: project, targets, info.plist, source control, editor (refactoring, code folding, re-indent), archive, devices, organizer, debugger (breakpoints, inspect variables, single-step) • Instruments: allocations, zombies, leaks, network, time profiler, activity monitor • Apple Developer Account, iTunes Connect, Beta app distribution and crash reports (TestFlight, Fabric, HockeyApp) • Git, GitHub/Bitbucket/GitLab: commit, merge, rebase, reset, stage, pull, push, fetch, fork, clone, pull requests, GitFlow branching model • Cocoapods, Carthage, Swift Package Manager
  • 21. Design Patterns • Object Oriented Design: inheritance, polimorfism, composition • MVC, Delegation, KVO, Factory, KVC, Singleton, target-action (IBOutlet/IBAction), Notifications • Protocol Oriented Design (Swift) • MVVM, Inversion of Control, Dependency Injection • General patterns: Decorator, Façade, Adapter, etc.
  • 22. Algorithms & Data Structures • Big-O Notation • Array, string, linked list, stack, queue, binary tree, graph, hash tables • Recursion, bread first search, depth first search, binary search, merge sort, quick sort, data structure operations (insert, delete, find, traversing graphs, etc.) • Multitasking: thread, process, lock, critical section
  • 26. NASA Images • Downloads pictures from the Astronomy Picture of the Day website (https://apod.nasa.gov) and shows the pictures in a scrolling table view. • Uses NASA Open API web services • Uses best practices: parallel downloads, smooth UI scrolling while downloads are in progress, provides a mechanism to refresh the UI, etc. Networking JSON Image Downloader
  • 29. Sample interview questions 1. What was the latest version of iOS you worked with? what do you like about it and why? 2. Have you worked with Swift? What do you like about it? What you don’t like? 3. How memory management is handled on iOS? 4. What do you know about singletons? Where would you use one and where you wouldn’t? 5. Could you explain what is the difference between Delegate and KVO? https://www.linkedin.com/pulse/ios-interview-questions-senior-developers-alex-bush
  • 30. Sample interview questions 6. How do you usually persist data on iOS? 7. How do you typically do networking? 8. How do you serialize data on iOS (JSON from the web or local app data to Core Data and other storages) ? 9. What design patterns do you know and use on iOS? 10.What is Auto-layout? https://www.linkedin.com/pulse/ios-interview-questions-senior-developers-alex-bush
  • 31. Sample interview questions 11.How do you handle async tasks? 12.How do you manage dependencies? 13.How do you debug and profile things on iOS? 14.Do you code review? 15.Do you test your code? What do you do to make your code testable? https://www.linkedin.com/pulse/ios-interview-questions-senior-developers-alex-bush
  • 32. Advice • Don’t waste your bullets • Be honest • Be precise • Be respectful, be friendly, not arrogant • Never give up with though questions
  • 33. Reference material • https://www.glassdoor.com/Interview/ios- developer-interview-questions-SRCH_KO0,13.htm • https://www.linkedin.com/pulse/ios-interview- questions-senior-developers-alex-bush • Cracking the Coding Interview: 189 Programming Questions and Solutions, Gayle Laakmann McDowell • https://careercup.com