├── LICENSE
└── README.md
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Cameron Banga
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # iOS-Developer-and-Designer-Interview-Questions
2 |
3 | A small guide to help those looking to hire a developer or designer for iOS work. While tailored for iOS, many questions could be used for Android developers or designers as well. A great self-test if you're looking to keep current or practice for your own interview.
4 |
5 | Inspired by the wonderful [Front-end Job Interview Questions](https://github.com/h5bp/Front-end-Developer-Interview-Questions), I've done my best to match their format and have pulled some of their best questions for inclusion here. Pull requests and suggestions to this repository are highly encouraged.
6 |
7 | Contributors: Original work by [Cameron Banga](https://twitter.com/cameronbanga). Big thanks to [Joe Pasqualetti](https://joepasq.com) for his significant additions here so far!
8 |
9 | ## Table of Contents
10 |
11 | 1. [General Questions](#general)
12 | 1. [iOS Technologies Questions](#tech)
13 | 1. [Coding Questions](#code)
14 | 1. [Interface Questions](#ui)
15 | 1. [Design Questions](#design)
16 | 1. [App Store Questions](#appstore)
17 | 1. [Fun Questions](#fun)
18 | 1. [Other References](#references)
19 | 1. [License](#license)
20 |
21 | ####[[⬆]](#contents) General Questions:
22 |
23 | * What did you learn yesterday/this week?
24 | * What excites or interests you about making software?
25 | * Which version control systems are you familiar with?
26 | * Do you have experience working with projects on GitHub?
27 | * Do you contribute to any iOS open source projects on GitHub or a similar site?
28 | * Can you describe your workflow when you work on creating an iOS app?
29 | * Are you familiar with CocoaPods? Can you explain what they are and how they work?
30 | * In general, explain software licensing and how this applies to work we do.
31 | * Describe your general testing practices when building an iOS app.
32 | * How can apps support other languages, date formats and currencies?
33 | * What is Instruments and how is it useful?
34 |
35 | ####[[⬆]](#contents) iOS Technologies Questions:
36 |
37 | * Explain Handoff, and in general, how it it allows iOS and Mac/web apps to communicate?
38 | * What technologies/services are contained inside of iCloud?
39 | * What is an iOS extension? Can you list a few examples of popular/common extensions?
40 | * What is HealthKit?
41 | * What is HomeKit?
42 | * What is Apple Pay? Could you describe a way we could use it in our applications?
43 | * Explain application sandboxing.
44 | * What is VoiceOver? Explain some of the accessibility features included in iOS and how developers can utilize them.
45 | * How does application multitasking work on iOS?
46 | * What features does Game Center offer for iOS games?
47 | * What are iBeacons?
48 | * What is Cocoa/Cocoa Touch?
49 | * Explain in general, what Core Audio, Core Data, and Core Location are, and how they help iOS apps.
50 | * Describe the role of SpriteKit and SceneKit.
51 | * What is Metal?
52 | * What is the responder chain? How does it work?
53 | * What are the different actions that buttons and other controls can respond to?
54 | * What is the role of the application delegate?
55 | * Explain NSUserDefaults. How would you serialize an array to disk?
56 | * How would you store user's credentials?
57 | * Explain Keychain Services.
58 | * Why are caching and compression important on mobile devices?
59 | * Explain ~/Documents, ~/Library, ~/tmp. What directory is ~ on iOS?
60 | * How does AirPlay work? How would you use it (programmatically) to enhance the utility and presentation of an app?
61 | * Give a brief overview of what sensors, IO and communication methods (Wifi, telephony, etc) are available on iOS. How can you make use of these?
62 | * What are the hardware performance differences among the iPad 2 / iPad mini 1-3, iPad Retina, iPad Air 2, iPhone 5, 5s, 6, and 6+. What do these constraints mean for performance intensive apps?
63 |
64 | ####[[⬆]](#contents) Coding Questions:
65 |
66 | * What does Cocoa Touch include and not include?
67 | * Why do Cocoa Touch classes start with two capital letters?
68 | * What is Swift, what is Objective-C and how do they relate and compare?
69 | * Explain why optionals are useful in Swift.
70 | * Explain `NSError` and how it works (or doesn't) in Swift.
71 | * How does `instancetype` work and how is it useful?
72 | * When is `let` appropriate in Swift? `var`?
73 | * Why and where is the `map` function useful.
74 | * How do you track down bugs? What are your tools of choice?
75 | * You found a bug in Cocoa. What do you do?
76 | * There is a regression in a new distributed version of our app causing crashes. How do you mitigate it? How will you prevent new bugs from reaching customers?
77 | * How are Objective-C classes implemented? Describe how the Objective-C runtime is implemented.
78 | * What security does iOS offer to protect customers and privileged information?
79 | * Our app downloads data and displays it immediately. In accordance with MVC where is the best place to perform the download?
80 | * How does MVC influence the design of a codebase?
81 | * What methods are part of the controller life-cycle? The view life-cycle?
82 | * What design patterns does iOS make use of? What design patterns do you use in your codebase?
83 | * What threads does iOS provide and how can you best utilize them?
84 | * Give a brief description of how `UIScrollView` is implemented. How does it operate with gesture recognizers, multiple touches and the run loops?
85 | * What API would you add or improve on iOS?
86 |
87 | ####[[⬆]](#contents) Interface Questions:
88 |
89 | * What is the screen resolution of the iPhone 5, 6, 6+. and iPad Air 2?
90 | * What units is the resolution measured in?
91 | * Explain the purpose of Interface Builder, what is a NIB file?
92 | * What image filetype should iOS UI assets be saved in?
93 | * Describe some differences between a Storyboard and a standard NIB file.
94 | * What is the device status bar? How tall is it in points? Is it opaque or transparent? What does it do during a phone call or navigation?
95 | * What is a navigation bar? Can you show me an Apple app on your phone that uses a navigation bar?
96 | * What is a tab bar? What is a toolbar? Compare and contrast them.
97 | * What is a table view? What is a collection view?
98 | * Describe when a popover is most appropriate.
99 | * What is a split-view controller?
100 | * What sort of content would be appropriate to place in a picker view?
101 | * When are a label, text field and text view appropriate?
102 | * What does a segmented control do?
103 | * What is a modal view?
104 | * What kind of notifications does iOS offer?
105 |
106 | ####[[⬆]](#contents) Design Questions:
107 |
108 | * What is an iOS app icon? Describe it as best as you can.
109 | * What is the smallest size an app icon could be? What's the largest size it could be?
110 | * Can an app icon contain any transparency?
111 | * How does a Newsstand icon differ from a regular app icon?
112 | * Explain a launch image.
113 | * Describe the purpose of Auto Layout, and in general, how it works.
114 | * Describe the role of animation in design of software.
115 | * Describe the role of interactivity and feedback when designing software.
116 | * What are some differences to take into account when building an iPhone app vs an iPad app?
117 | * Describe the importance and role of prototyping when working on an app design.
118 |
119 | ####[[⬆]](#contents) App Store Questions:
120 |
121 | * How do In-App Purchases work? What can be purchased with IAP?
122 | * Have you ever submitted an app to the App Store? Can you explain the general process?
123 | * What is iTunes Connect?
124 | * What is a provisioning profile?
125 | * What is an App ID?
126 | * What are the differences between Development and Production iOS signing certificates?
127 | * How is TestFlight used? How were UUIDs used in ad-hoc app distribution?
128 | * When do purchase receipts need to be verified?
129 | * What is required to display iAds?
130 |
131 | ####[[⬆]](#contents) Fun Questions:
132 |
133 | * What's a cool thing you've coded recently? What's something you've built that you're proud of?
134 | * What are some things you like about the developer tools you use?
135 | * Who are some of your favorite independent Mac or iOS developers?
136 | * Do you have any pet projects? What kind?
137 | * What would you change about Xcode?
138 | * What is your favorite iOS API?
139 | * Do you have a pet or favorite bug report?
140 | * What are your favorite ways to investigate an new technology?
141 | * Why are dictionaries called dictionaries? Why not hash tables or hash maps?
142 |
143 | ####[[⬆]](#contents) Other References:
144 |
145 | * [iOS Dev Weekly](https://iosdevweekly.com)
146 | * [Accidental Tech Podcast](http://atp.fm)
147 | * [Debug Podcast](http://www.imore.com/debug)
148 | * [The Talk Show](https://daringfireball.net/thetalkshow/)
149 | * [NSHipster](http://nshipster.com)
150 | * [KZBootstrap](https://github.com/krzysztofzablocki/KZBootstrap)
151 | * [WWDC Videos](https://developer.apple.com/videos/wwdc/2014/)
152 | * [ASCII WWDC](http://asciiwwdc.com)
153 | * [Pttrns](http://www.pttrns.com)
154 | * [Ray Wenderlich Tutorials](http://www.raywenderlich.com)
155 | * [iOS Version Stats](http://david-smith.org/iosversionstats/)
156 | * [iOS Human Interface Guidelines](https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/MobileHIG/)
157 | * [Black Pixel blog post on hiring iOS and Mac engineers](http://blackpixel.com/blog/2013/04/interview-questions-for-ios-and-mac-developers-1.html)
158 | * [Macoscope guide to a technical interview](http://macoscope.com/blog/so-you-have-a-technical-interview-at-macoscope/)
159 |
160 | ####[[⬆]](#contents) License:
161 |
162 | Released under the [MIT License](http://opensource.org/licenses/MIT). See LICENSE file for details.
163 |
--------------------------------------------------------------------------------