SlideShare une entreprise Scribd logo
1  sur  34
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

Performance Testing Strategy Template by Egor B Eremeev
Performance Testing Strategy Template by Egor B EremeevPerformance Testing Strategy Template by Egor B Eremeev
Performance Testing Strategy Template by Egor B EremeevEgor Eremeev
 
Stub Testing and Driver Testing
Stub Testing and Driver TestingStub Testing and Driver Testing
Stub Testing and Driver TestingPopescu Petre
 
MySpace SQL Server Service Broker
MySpace SQL Server Service Broker MySpace SQL Server Service Broker
MySpace SQL Server Service Broker Mark Ginnebaugh
 
LWC初心者がアンケートフォームを作るまでの道のり
LWC初心者がアンケートフォームを作るまでの道のりLWC初心者がアンケートフォームを作るまでの道のり
LWC初心者がアンケートフォームを作るまでの道のりYoshinari KUWAYAMA
 
Self-supervised Learning from Video Sequences - Xavier Giro - UPC Barcelona 2019
Self-supervised Learning from Video Sequences - Xavier Giro - UPC Barcelona 2019Self-supervised Learning from Video Sequences - Xavier Giro - UPC Barcelona 2019
Self-supervised Learning from Video Sequences - Xavier Giro - UPC Barcelona 2019Universitat Politècnica de Catalunya
 
Explicit Density Models
Explicit Density ModelsExplicit Density Models
Explicit Density ModelsSangwoo Mo
 
Cross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeCross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeKorhan Bircan
 
UML Weekend Crash Course
UML Weekend Crash CourseUML Weekend Crash Course
UML Weekend Crash CourseRolf Pinto
 
Multi-Tenancy and Virtualization in Cloud Computing
Multi-Tenancy and Virtualization in Cloud ComputingMulti-Tenancy and Virtualization in Cloud Computing
Multi-Tenancy and Virtualization in Cloud ComputingAlexandru Iosup
 
[딥논읽] Meta-Transfer Learning for Zero-Shot Super-Resolution paper review
[딥논읽] Meta-Transfer Learning for Zero-Shot Super-Resolution paper review[딥논읽] Meta-Transfer Learning for Zero-Shot Super-Resolution paper review
[딥논읽] Meta-Transfer Learning for Zero-Shot Super-Resolution paper reviewtaeseon ryu
 
Waterfall model ppt final
Waterfall model ppt  finalWaterfall model ppt  final
Waterfall model ppt finalshiva krishna
 
Adaptive software development
Adaptive software developmentAdaptive software development
Adaptive software developmentJenita lamichhane
 
Fundamental software engineering activities
Fundamental software engineering activitiesFundamental software engineering activities
Fundamental software engineering activitiessommerville-videos
 
Software analysis and it's principles
Software analysis and it's principlesSoftware analysis and it's principles
Software analysis and it's principlesGhulam Abbas
 
Special value testing
Special value testingSpecial value testing
Special value testingBapi Das
 

Tendances (20)

Performance Testing Strategy Template by Egor B Eremeev
Performance Testing Strategy Template by Egor B EremeevPerformance Testing Strategy Template by Egor B Eremeev
Performance Testing Strategy Template by Egor B Eremeev
 
Stub Testing and Driver Testing
Stub Testing and Driver TestingStub Testing and Driver Testing
Stub Testing and Driver Testing
 
MySpace SQL Server Service Broker
MySpace SQL Server Service Broker MySpace SQL Server Service Broker
MySpace SQL Server Service Broker
 
LWC初心者がアンケートフォームを作るまでの道のり
LWC初心者がアンケートフォームを作るまでの道のりLWC初心者がアンケートフォームを作るまでの道のり
LWC初心者がアンケートフォームを作るまでの道のり
 
Self-supervised Learning from Video Sequences - Xavier Giro - UPC Barcelona 2019
Self-supervised Learning from Video Sequences - Xavier Giro - UPC Barcelona 2019Self-supervised Learning from Video Sequences - Xavier Giro - UPC Barcelona 2019
Self-supervised Learning from Video Sequences - Xavier Giro - UPC Barcelona 2019
 
Software Development Process
Software Development ProcessSoftware Development Process
Software Development Process
 
Software metrics by Dr. B. J. Mohite
Software metrics by Dr. B. J. MohiteSoftware metrics by Dr. B. J. Mohite
Software metrics by Dr. B. J. Mohite
 
Explicit Density Models
Explicit Density ModelsExplicit Density Models
Explicit Density Models
 
Cross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React NativeCross-Platform App Development with Flutter, Xamarin, React Native
Cross-Platform App Development with Flutter, Xamarin, React Native
 
UML Weekend Crash Course
UML Weekend Crash CourseUML Weekend Crash Course
UML Weekend Crash Course
 
Multi-Tenancy and Virtualization in Cloud Computing
Multi-Tenancy and Virtualization in Cloud ComputingMulti-Tenancy and Virtualization in Cloud Computing
Multi-Tenancy and Virtualization in Cloud Computing
 
[딥논읽] Meta-Transfer Learning for Zero-Shot Super-Resolution paper review
[딥논읽] Meta-Transfer Learning for Zero-Shot Super-Resolution paper review[딥논읽] Meta-Transfer Learning for Zero-Shot Super-Resolution paper review
[딥논읽] Meta-Transfer Learning for Zero-Shot Super-Resolution paper review
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Waterfall model ppt final
Waterfall model ppt  finalWaterfall model ppt  final
Waterfall model ppt final
 
Adaptive software development
Adaptive software developmentAdaptive software development
Adaptive software development
 
Fundamental software engineering activities
Fundamental software engineering activitiesFundamental software engineering activities
Fundamental software engineering activities
 
Software analysis and it's principles
Software analysis and it's principlesSoftware analysis and it's principles
Software analysis and it's principles
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
Quality software models
Quality software modelsQuality software models
Quality software models
 
Special value testing
Special value testingSpecial value testing
Special value testing
 

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

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 iPadOge Marques
 
Understanding iOS from an Android perspective
Understanding iOS from an Android perspectiveUnderstanding iOS from an Android perspective
Understanding iOS from an Android perspectiveLauren Yew
 
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)Oursky
 
Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Mobile ECM with JavaScript - JSE 2011
Mobile ECM with JavaScript - JSE 2011Nuxeo
 
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 ?Chris Saez
 
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 CareerFerdous Mahmud Shaon
 
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 ShaonCefalo
 
Tulika Biswas CV (1)
Tulika Biswas CV (1)Tulika Biswas CV (1)
Tulika Biswas CV (1)Tulika Biswas
 
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-11Jorge Hidalgo
 
Prototyping like it is 2022
Prototyping like it is 2022 Prototyping like it is 2022
Prototyping like it is 2022 Michael Yagudaev
 
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 GuyNick Landry
 
JS - The Unknown Basics.pptx
JS - The Unknown Basics.pptxJS - The Unknown Basics.pptx
JS - The Unknown Basics.pptxParveenSoni21
 
iPhone OS: The Next Killer Platform
iPhone OS: The Next Killer PlatformiPhone OS: The Next Killer Platform
iPhone OS: The Next Killer PlatformChristopher Bartling
 
Putting together a web app
Putting together a web appPutting together a web app
Putting together a web appRyan Lou
 
SajidaRanaResume (3)
SajidaRanaResume (3)SajidaRanaResume (3)
SajidaRanaResume (3)sa7899
 
Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms BootcampMike Melusky
 
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...Jean Vanderdonckt
 

Similaire à 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...
 

Dernier

CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceanilsa9823
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
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 🔝✔️✔️Delhi Call girls
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 

Dernier (20)

CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female serviceCALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
CALL ON ➥8923113531 🔝Call Girls Badshah Nagar Lucknow best Female service
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
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 🔝✔️✔️
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 

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