不管是对于公司仍是开发者或设计师我的而言,面试都是一项耗时耗钱的项目,本文做者Cameron Banga从编程、设计、App Store等各个方面对iOS开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。一方面,可以帮助HR在短期内获取更多反馈信息,更好地甄选合适人选,而iOS开发者及设计师在寻找相关工做时,也可做为参考,为面试作好万全准备。
面试
你昨天/这周学习了什么?编程
你为何热衷于软件开发?设计模式
你对哪种控制系统比较熟悉?数组
是否参与过GitHub项目?缓存
是否参与过GitHub或其余同类型网站的iOS开源项目?安全
请描述一下你的iOS应用开发流程。ide
是否熟知CocoaPods?它是什么?如何运行的?函数
请归纳一下你对软件受权的理解,及其对软件开发的影响。工具
请归纳一下你在构建iOS应用时的测试过程。iOS应用如何实现对其余语言、日期格式以及货币单位的支持?oop
请描述一下Instruments及其做用。
请解释一下Handoff是什么,并简述它是如何实现iOS、Mac/网页应用互通的。
iCloud包含了哪些技术与服务?
iOS扩展是指?可否列举一些热门或常见的范例?
HealthKit是什么?
HomeKit是什么?
Apple Pay是什么?可否描述一下如何在应用中使用Apple Pay?
请解释一下iOS应用沙盒机制。
VoiceOver是什么?请举例解释一下iOS中的辅助功能(Accessibility)。开发者如何使用这些功能?
iOS应用是如何实现后台多任务处理(Multitasking)的?
Game Center针对iOS游戏有哪些功能?
iBeacons是什么?
Cocoa/Cocoa Touch是什么?
请归纳一下Core Audio,Core Data以及Core Location各是什么。它们对iOS应用有何意义?
请描述SpriteKit和SceneKit的做用。
Metal是什么?
响应链(Responder Chain)是什么?它是如何发挥做用的?
按钮和其余控制方式对哪些操做作出回应?
AppDelegate扮演着什么样的角色?
请解释一下NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化?
你会如何储存用户的认证信息?
请问何为Keychain服务?
为何移动设备上的缓存和压缩是不可或缺的?
请解释一下~/Documents,~/Library和~/tmp。 iOS中的~属于什么目录?
AirPlay是如何运行的?换作是你,你会如何经过编程提升应用的实用性以及演示效果?
传感器,IO以及WiFi、拨号等链接方式如何在iOS平台上运做?它们有何利用价值?请扼要地谈谈你的观点。
iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 五、5S、6以及6+在硬件性能方面有何差别?这对注重性能的应用有何限制?
Cocoa Touch包含什么?不包含什么?
为何Cocoa Touch的类名称是以两个大写字母开头的?
Swift和Objective-C分别是什么?二者相比有何不一样之处,又有何联系?
为何Optional在Swift语言中很是重要?
请解释一下NSError。在Swift中,什么状况下能使用NSError ,什么状况下不能?
请说明如何使用Instancetype及其重要性。
在Swift中,何时该用let,何时该用var?
为何map函数必不可少?该在什么状况下使用它?
你会选择什么工具来追踪Bug?
若是在Cocoa中发现一个Bug,你会如何处理?
若是应用的新版本出现了Regression的状况,该如何补救?如何防止用户在使用过程当中遇到新的Bug?
Objective-C的类是怎么执行的?Objective-C Runtime是如何实现的?
iOS是如何提升安全性,保护用户隐私信息的?
应用能够下载并即刻显示数据。如何根据MVC来判断下载的最佳位置?
MVC对代码库(Codebase)的设计有何影响?
Controller Life-Cycle以及View Life-cycle分别有哪些调试方法?
iOS使用的是哪些设计模式(Design Patterns)?你的代码库使用的是哪些设计模式?
iOS提供哪些线程?如何充分利用这些线程?
请简要描述一下UIScrollView的执行过程。它是如何响应手势识别(Gesture Recognizer)、多点触控(Multi-Touch)和Run Loop的?
你认为iOS须要添加或改进哪些API?
iPhone五、六、6+以及iPad Air 2的屏幕分辨率分别是多少?
分辨率的计算单位是什么?
请解释一下Interface Builder的做用以及NIB文件的概念。
iOS UI的图像储存类型是什么?
请描述一下Storyboard和标准NIB文件的差异。
设备状态栏(Device Status Bar)是什么?高度如何?是否透明?在手机通话或者导航状态下,它是如何显示的?
导航栏(Navigation Bar)是什么?可否拿出你的iPhone,指出你下载的哪些应用运用了导航栏?
选项卡(Tab Bar)和工具栏(Toolbar)分别是什么?二者之间有何共同点和不一样点?
表视图(Table View)是什么?集合视图(Collection View)又是什么?
何时用“弹出(Popover)”属性最为合适?
Split-view Controller是什么?
选取器视图(Picker View)适合存放哪类内容?
应该在什么状况下使用标签、文本域和文本视图?
分段控件(Segmented Control)的做用是什么?
模态视图(Modal View)是什么?
iOS通知属于什么类型?
iOS应用图标是指什么?请尽量详细地描述一下。
最小尺寸和最大尺寸的应用图标分别是什么样子的?
应用图标可否包含透明的部分?
Newsstand的图标与常规应用有何不一样?
请解释一下启动画面(Launch Images)。
自动布局(Auto Layout)的做用是什么?请归纳一下它是如何运行的。
设计软件时为何要加上动画?
请描述一下软件设计中的交互和Feedback有什么做用。
设计iPhone和iPad应用时,应分别考虑哪些因素?
请描述一下原型设计对于软件开发的意义。其做用是什么?
应用内购买(In-App Purchases)是怎么回事?IAP可以为用户带来哪些新体验?
你是否在App Store上发布过应用?可否归纳一下过程?
iTunes Connect是什么?
Provisioning Profiles是指?
App ID是什么?
iOS的开发和发布签名证书有何异同?
如何使用TestFlight?经过Ad-hoc发布应用的话,该如何使用UUID?
应什么时候验证购买收据?
发布iAds(苹果平台广告)有哪些要求?
最近有没有开发什么好玩的东西?你最引觉得豪的做品是什么?
谈一谈你经常使用的开发工具都有哪些优点?
你最敬佩的独立Mac或者iOS应用开发者是谁?
最喜欢什么项目?哪一种类型的?
你以为Xcode有哪些须要改进的地方?
iOS上你最喜欢哪些API?
是否有最中意的错误报告?
你最爱以哪一种方式来检验一项新技术是否好用?
为何词典被称做Dictionaries,而不是HashTable或HashMap?
iOS Dev Weekly(iOS开发周刊)
Accidental Tech Podcast
Debug Podcast
The Talk Show
NSHipster
KZBootstrap(一个方便iOS工程初始化的项目)
WWDC Videos
ASCII WWDC(文字版本,可搜索)
Pttrns(iOS手机App界面分享平台)
Ray Wenderlich Tutorials(Ray Wenderlich教程)
iOS Version Stats(信息分享平台)
iOS Human Interface Guidelines(iOS人机界面指南)
Black Pixel blog post on hiring iOS and Mac engineers(Black Pixel博客)
Macoscope guide to a technical interview( Macoscope技术面试指南)