摘要:本文作者對iOS開發者及設計師在面試時可能會遇到的問題進行了篩選與匯總。一方面,能夠幫助HR在短時間內獲取更多反饋信息,以甄選合適人選,而開發者及設計師在尋找相關工作時,也可作為參考,為面試做好萬全準備。
無論是對于公司還是開發者或設計師個人而言,面試都是一項耗時耗錢的項目,本文作者Cameron Banga從編程、設計、App Store等各個方面對iOS開發者及設計師在面試時可能會遇到的問題進行了篩選與匯總。一方面,能夠幫助HR在短時間內獲取更多反饋信息,更好地甄選合適人選,而iOS開發者及設計師在尋找相關工作時,也可作為參考,為面試做好萬全準備。
常見問題
你昨天/這周學習了什么?
你為什么熱衷于軟件開發?
你對哪一種控制系統比較熟悉?
是否參與過GitHub項目?
是否參與過GitHub或其他同類型網站的iOS開源項目?
請描述一下你的iOS應用開發流程。
是否熟知CocoaPods?它是什么?如何運行的?
請概括一下你對軟件授權的理解,及其對軟件開發的影響。
請概括一下你在構建iOS應用時的測試過程。iOS應用如何實現對其他語言、日期格式以及貨幣單位的支持?
請描述一下Instruments及其作用。
關于iOS技術
請解釋一下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 5、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?
關于界面
iPhone5、6、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應用時,應分別考慮哪些因素?
請描述一下原型設計對于軟件開發的意義。其作用是什么?
關于App Store
應用內購買(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技術面試指南)
文章來源:GitHub
本站文章版權歸原作者及原出處所有 。內容為作者個人觀點, 并不代表本站贊同其觀點和對其真實性負責,本站只提供參考并不構成任何投資及應用建議。本站是一個個人學習交流的平臺,網站上部分文章為轉載,并不用于任何商業目的,我們已經盡可能的對作者和來源進行了通告,但是能力有限或疏忽,造成漏登,請及時聯系我們,我們將根據著作權人的要求,立即更正或者刪除有關內容。本站擁有對此聲明的最終解釋權。