转载

100个iOS开发/设计面试题汇总,你将如何作答?

  英文原文:iOS-Developer-and-Designer-Interview-Questions

  无论是对于公司还是开发者或设计师个人而言,面试都是一项耗时耗钱的项目,本文作者 Cameron Banga 从编程、设计、App Store 等各个方面对 iOS 开发者及设计师在面试时可能会遇到的问题进行了筛选与汇总。一方面,能够帮助 HR 在短时间内获取更多反馈信息,更好地甄选合适人选,而 iOS 开发者及设计师在寻找相关工作时,也可作为参考,为面试做好万全准备。 

  常见问题 

  1. 你昨天/这周学习了什么?
  2. 你为什么热衷于软件开发?
  3. 你对哪一种控制系统比较熟悉?
  4. 是否参与过 GitHub 项目?
  5. 是否参与过 GitHub 或其他同类型网站的 iOS 开源项目?
  6. 请描述一下你的 iOS 应用开发流程。
  7. 是否熟知 CocoaPods?它是什么?如何运行的?
  8. 请概括一下你对软件授权的理解,及其对软件开发的影响。
  9. 请概括一下你在构建 iOS 应用时的测试过程。iOS 应用如何实现对其他语言、日期格式以及货币单位的支持?
  10. 请描述一下 Instruments 及其作用。

  关于 iOS 技术 

  1. 请解释一下 Handoff 是什么,并简述它是如何实现 iOS、Mac/网页应用互通的。
  2. iCloud 包含了哪些技术与服务?
  3. iOS 扩展是指?能否列举一些热门或常见的范例?
  4. HealthKit 是什么?
  5. HomeKit 是什么?
  6. Apple Pay 是什么?能否描述一下如何在应用中使用 Apple Pay?
  7. 请解释一下 iOS 应用沙盒机制。
  8. VoiceOver 是什么?请举例解释一下 iOS 中的辅助功能(Accessibility)。开发者如何使用这些功能?
  9. iOS 应用是如何实现后台多任务处理(Multitasking)的?
  10. Game Center 针对 iOS 游戏有哪些功能?
  11. iBeacons 是什么?
  12. Cocoa/Cocoa Touch 是什么?
  13. 请概括一下 Core Audio,Core Data 以及 Core Location 各是什么。它们对 iOS 应用有何意义?
  14. 请描述 SpriteKit 和 SceneKit 的作用。
  15. Metal 是什么?
  16. 响应链(Responder Chain)是什么?它是如何发挥作用的?
  17. 按钮和其他控制方式对哪些操作做出回应?
  18. AppDelegate 扮演着什么样的角色?
  19. 请解释一下 NSUserDefaults。就你而言,你会如何在磁盘中对数组对象进行序列化?
  20. 你会如何储存用户的认证信息?
  21. 请问何为 Keychain 服务?
  22. 为什么移动设备上的缓存和压缩是不可或缺的?
  23. 请解释一下~/Documents,~/Library 和~/tmp。 iOS 中的~属于什么目录?
  24. AirPlay 是如何运行的?换做是你,你会如何通过编程提高应用的实用性以及演示效果?
  25. 传感器,IO 以及 WiFi、拨号等连接方式如何在 iOS 平台上运作?它们有何利用价值?请扼要地谈谈你的观点。
  26. iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 5、5S、6 以及6+ 在硬件性能方面有何差异?这对注重性能的应用有何限制?

  关于编程 

  1. Cocoa Touch 包含什么?不包含什么?
  2. 为什么 Cocoa Touch 的类名称是以两个大写字母开头的?
  3. Swift 和 Objective-C 分别是什么?两者相比有何不同之处,又有何联系?
  4. 为什么 Optional 在 Swift 语言中非常重要?
  5. 请解释一下 NSError。在 Swift 中,什么情况下能使用 NSError ,什么情况下不能?
  6. 请说明如何使用 Instancetype 及其重要性。
  7. 在 Swift 中,什么时候该用 let,什么时候该用 var?
  8. 为什么 map 函数必不可少?该在什么情况下使用它?
  9. 你会选择什么工具来追踪 Bug?
  10. 如果在 Cocoa 中发现一个 Bug,你会如何处理?
  11. 如果应用的新版本出现了 Regression 的情况,该如何补救?如何防止用户在使用过程中遇到新的 Bug?
  12. Objective-C 的类是怎么执行的?Objective-C Runtime 是如何实现的?
  13. iOS 是如何提高安全性,保护用户隐私信息的?
  14. 应用可以下载并即刻显示数据。如何根据 MVC 来判断下载的最佳位置?
  15. MVC 对代码库(Codebase)的设计有何影响?
  16. Controller Life-Cycle 以及 View Life-cycle 分别有哪些调试方法?
  17. iOS 使用的是哪些设计模式(Design Patterns)?你的代码库使用的是哪些设计模式?
  18. iOS 提供哪些线程?如何充分利用这些线程?
  19. 请简要描述一下 UIScrollView 的执行过程。它是如何响应手势识别(Gesture Recognizer)、多点触控(Multi-Touch)和 Run Loop 的?
  20. 你认为 iOS 需要添加或改进哪些 API?

  关于界面 

  1. iPhone5、6、6+ 以及 iPad Air 2 的屏幕分辨率分别是多少?
  2. 分辨率的计算单位是什么?
  3. 请解释一下 Interface Builder 的作用以及 NIB 文件的概念。
  4. iOS UI 的图像储存类型是什么?
  5. 请描述一下 Storyboard 和标准 NIB 文件的差别。
  6. 设备状态栏(Device Status Bar)是什么?高度如何?是否透明?在手机通话或者导航状态下,它是如何显示的?
  7. 导航栏(Navigation Bar)是什么?能否拿出你的 iPhone,指出你下载的哪些应用运用了导航栏?
  8. 选项卡(Tab Bar)和工具栏(Toolbar)分别是什么?两者之间有何共同点和不同点?
  9. 表视图(Table View)是什么?集合视图(Collection View)又是什么?
  10. 什么时候用“弹出(Popover)”属性最为合适?
  11. Split-view Controller 是什么?
  12. 选取器视图(Picker View)适合存放哪类内容?
  13. 应该在什么情况下使用标签、文本域和文本视图?
  14. 分段控件(Segmented Control)的作用是什么?
  15. 模态视图(Modal View)是什么?
  16. iOS 通知属于什么类型?

  关于设计 

  1. iOS 应用图标是指什么?请尽可能详细地描述一下。
  2. 最小尺寸和最大尺寸的应用图标分别是什么样子的?
  3. 应用图标能否包含透明的部分?
  4. Newsstand 的图标与常规应用有何不同?
  5. 请解释一下启动画面(Launch Images)。
  6. 自动布局(Auto Layout)的作用是什么?请概括一下它是如何运行的。
  7. 设计软件时为什么要加上动画?
  8. 请描述一下软件设计中的交互和 Feedback 有什么作用。
  9. 设计 iPhone 和 iPad 应用时,应分别考虑哪些因素?
  10. 请描述一下原型设计对于软件开发的意义。其作用是什么?

  关于 App Store 

  1. 应用内购买(In-App Purchases)是怎么回事?IAP 能够为用户带来哪些新体验?
  2. 你是否在 App Store 上发布过应用?能否概括一下过程?
  3. iTunes Connect 是什么?
  4. Provisioning Profiles 是指?
  5. App ID 是什么?
  6. iOS 的开发和发布签名证书有何异同?
  7. 如何使用 TestFlight?通过 Ad-hoc 发布应用的话,该如何使用 UUID?
  8. 应何时验证购买收据?
  9. 发布 iAds(苹果平台广告)有哪些要求?

  趣味问答 

  1. 最近有没有开发什么好玩的东西?你最引以为豪的作品是什么?
  2. 谈一谈你常用的开发工具都有哪些优势?
  3. 你最敬佩的独立 Mac 或者 iOS 应用开发者是谁?
  4. 最喜欢什么项目?哪种类型的?
  5. 你觉得 Xcode 有哪些需要改进的地方?
  6. iOS 上你最喜欢哪些 API?
  7. 是否有最中意的错误报告?
  8. 你最爱以哪种方式来检验一项新技术是否好用?
  9. 为什么词典被称作 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 技术面试指南)
正文到此结束
Loading...