├── 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 | --------------------------------------------------------------------------------