無論是對于公司還是開發(fā)者或設(shè)計師個人而言,面試都是一項耗時耗錢的項目,本文作者Cameron Banga從編程、設(shè)計、App Store等各個方面對iOS開發(fā)者及設(shè)計師在面試時可能會遇到的問題進行了篩選與匯總。一方面,能夠幫助HR在短時間內(nèi)獲取更多反饋信息,更好地甄選合適人選,而iOS開發(fā)者及設(shè)計師在尋找相關(guān)工作時,也可作為參考,為面試做好萬全準(zhǔn)備。
常見問題
你昨天/這周學(xué)習(xí)了什么?
你為什么熱衷于軟件開發(fā)?
你對哪一種控制系統(tǒng)比較熟悉?
是否參與過GitHub項目?
是否參與過GitHub或其他同類型網(wǎng)站的iOS開源項目?
請描述一下你的iOS應(yīng)用開發(fā)流程。
是否熟知CocoaPods?它是什么?如何運行的?
請概括一下你對軟件授權(quán)的理解,及其對軟件開發(fā)的影響。
請概括一下你在構(gòu)建iOS應(yīng)用時的測試過程。iOS應(yīng)用如何實現(xiàn)對其他語言、日期格式以及貨幣單位的支持?
請描述一下Instruments及其作用。
關(guān)于iOS技術(shù)
請解釋一下Handoff是什么,并簡述它是如何實現(xiàn)iOS、Mac/網(wǎng)頁應(yīng)用互通的。
iCloud包含了哪些技術(shù)與服務(wù)?
iOS擴展是指?能否列舉一些熱門或常見的范例?
HealthKit是什么?
HomeKit是什么?
Apple Pay是什么?能否描述一下如何在應(yīng)用中使用Apple Pay?
請解釋一下iOS應(yīng)用沙盒機制。
VoiceOver是什么?請舉例解釋一下iOS中的輔助功能(Accessibility)。開發(fā)者如何使用這些功能?
iOS應(yīng)用是如何實現(xiàn)后臺多任務(wù)處理(Multitasking)的?
Game Center針對iOS游戲有哪些功能?
iBeacons是什么?
Cocoa/Cocoa Touch是什么?
請概括一下Core Audio,Core Data以及Core Location各是什么。它們對iOS應(yīng)用有何意義?
請描述SpriteKit和SceneKit的作用。(面試網(wǎng) www.mian4.net)
Metal是什么?
響應(yīng)鏈(Responder Chain)是什么?它是如何發(fā)揮作用的?
按鈕和其他控制方式對哪些操作做出回應(yīng)?
AppDelegate扮演著什么樣的角色?
請解釋一下NSUserDefaults。就你而言,你會如何在磁盤中對數(shù)組對象進行序列化?
你會如何儲存用戶的認(rèn)證信息?
請問何為Keychain服務(wù)?
為什么移動設(shè)備上的緩存和壓縮是不可或缺的?
請解釋一下~/Documents,~/Library和~/tmp。 iOS中的~屬于什么目錄?
AirPlay是如何運行的?換做是你,你會如何通過編程提高應(yīng)用的實用性以及演示效果?
傳感器,IO以及WiFi、撥號等連接方式如何在iOS平臺上運作?它們有何利用價值?請扼要地談?wù)勀愕挠^點。
iPad 2,iPad mini 1-3,iPad Retina,iPad Air 2,iPhone 5、5S、6以及6+在硬件性能方面有何差異?這對注重性能的應(yīng)用有何限制?
關(guān)于編程
Cocoa Touch包含什么?不包含什么?
為什么Cocoa Touch的類名稱是以兩個大寫字母開頭的?
Swift和Objective-C分別是什么?兩者相比有何不同之處,又有何聯(lián)系?
為什么Optional在Swift語言中非常重要?
請解釋一下NSError。在Swift中,什么情況下能使用NSError ,什么情況下不能?
請說明如何使用Instancetype及其重要性。
在Swift中,什么時候該用let,什么時候該用var?
為什么map函數(shù)必不可少?該在什么情況下使用它?
你會選擇什么工具來追蹤Bug?
如果在Cocoa中發(fā)現(xiàn)一個Bug,你會如何處理?
如果應(yīng)用的新版本出現(xiàn)了Regression的情況,該如何補救?如何防止用戶在使用過程中遇到新的Bug?
Objective-C的類是怎么執(zhí)行的?Objective-C Runtime是如何實現(xiàn)的?
iOS是如何提高安全性,保護用戶隱私信息的?
應(yīng)用可以下載并即刻顯示數(shù)據(jù)。如何根據(jù)MVC來判斷下載的最佳位置?
MVC對代碼庫(Codebase)的設(shè)計有何影響?
Controller Life-Cycle以及View Life-cycle分別有哪些調(diào)試方法?
iOS使用的是哪些設(shè)計模式(Design Patterns)?你的代碼庫使用的是哪些設(shè)計模式?
iOS提供哪些線程?如何充分利用這些線程?
請簡要描述一下UIScrollView的執(zhí)行過程。它是如何響應(yīng)手勢識別(Gesture Recognizer)、多點觸控(Multi-Touch)和Run Loop的?
你認(rèn)為iOS需要添加或改進哪些API?
關(guān)于界面
iPhone5、6、6+以及iPad Air 2的屏幕分辨率分別是多少?
分辨率的計算單位是什么?
請解釋一下Interface Builder的作用以及NIB文件的概念。
iOS UI的圖像儲存類型是什么?
請描述一下Storyboard和標(biāo)準(zhǔn)NIB文件的差別。
設(shè)備狀態(tài)欄(Device Status Bar)是什么?高度如何?是否透明?在手機通話或者導(dǎo)航狀態(tài)下,它是如何顯示的?
導(dǎo)航欄(Navigation Bar)是什么?能否拿出你的iPhone,指出你下載的哪些應(yīng)用運用了導(dǎo)航欄?
選項卡(Tab Bar)和工具欄(Toolbar)分別是什么?兩者之間有何共同點和不同點?
表視圖(Table View)是什么?集合視圖(Collection View)又是什么?
什么時候用“彈出(Popover)”屬性最為合適?
Split-view Controller是什么?
選取器視圖(Picker View)適合存放哪類內(nèi)容?
應(yīng)該在什么情況下使用標(biāo)簽、文本域和文本視圖?
分段控件(Segmented Control)的作用是什么?
模態(tài)視圖(Modal View)是什么?
iOS通知屬于什么類型?
關(guān)于設(shè)計
iOS應(yīng)用圖標(biāo)是指什么?請盡可能詳細(xì)地描述一下。
最小尺寸和最大尺寸的應(yīng)用圖標(biāo)分別是什么樣子的?
應(yīng)用圖標(biāo)能否包含透明的部分?
Newsstand的圖標(biāo)與常規(guī)應(yīng)用有何不同?
請解釋一下啟動畫面(Launch Images)。
自動布局(Auto Layout)的作用是什么?請概括一下它是如何運行的。
設(shè)計軟件時為什么要加上動畫?
請描述一下軟件設(shè)計中的交互和Feedback有什么作用。
設(shè)計iPhone和iPad應(yīng)用時,應(yīng)分別考慮哪些因素?
請描述一下原型設(shè)計對于軟件開發(fā)的意義。其作用是什么?
關(guān)于App Store
應(yīng)用內(nèi)購買(In-App Purchases)是怎么回事?IAP能夠為用戶帶來哪些新體驗?
你是否在App Store上發(fā)布過應(yīng)用?能否概括一下過程?
iTunes Connect是什么?
Provisioning Profiles是指?
App ID是什么?
iOS的開發(fā)和發(fā)布簽名證書有何異同?
如何使用TestFlight?通過Ad-hoc發(fā)布應(yīng)用的話,該如何使用UUID?
應(yīng)何時驗證購買收據(jù)?
發(fā)布iAds(蘋果平臺廣告)有哪些要求?
趣味問答
最近有沒有開發(fā)什么好玩的東西?你最引以為豪的作品是什么?
談一談你常用的開發(fā)工具都有哪些優(yōu)勢?
你最敬佩的獨立Mac或者iOS應(yīng)用開發(fā)者是誰?
最喜歡什么項目?哪種類型的?
你覺得Xcode有哪些需要改進的地方?
iOS上你最喜歡哪些API?
是否有最中意的錯誤報告?
你最愛以哪種方式來檢驗一項新技術(shù)是否好用?
為什么詞典被稱作Dictionaries,而不是HashTable或HashMap?
[iOS開發(fā)/設(shè)計程序員面試題匯總]