乐于分享
好东西不私藏

小米客户端开发(iOS)面试内容分享

小米客户端开发(iOS)面试内容分享

候选人分享了在小米iOS客户端开发岗位的面试内容,全程四轮,侧重iOS基础、OC/Swift语法和APP性能优化,最终成功拿到offer

第一轮面试问题:

1.自我介绍+简历提问(重点询问iOS项目中的UI开发、适配方案)。

2.OC中的ARCMRC的区别?ARC的底层实现原理是什么?

3.OC中的协议和分类的作用?分类能添加属性吗?如何实现?

4.iOS中的视图控制器生命周期?viewDidLoadviewWillAppear的区别?

5.iOS中的网络请求框架有哪些?AFNetworking的底层实现原理?

6.智力题:有3个苹果,分给2个人,每人至少分1个,有多少种分法?

7.问面试官问题(团队业务模块、Swift使用比例)。

第二轮面试问题:

1.自我介绍(重点突出iOS项目经验、性能优化相关经历)。

2.iOS内存优化的方法有哪些?如何检测内存泄漏?Instruments的使用方法?

3.iOS UI优化的思路?如何减少TableView的卡顿?

4.代码题:用Swift手写一个TableView的自定义单元格,实现数据渲染。

5.iOS中的多线程方案有哪些?GCDNSOperation的区别?

6.小米APP中,如何实现跨APP跳转?结合iOS系统特性说明。

第三轮面试问题(HR):

1.详细介绍一个核心iOS项目,深挖项目中遇到的适配问题、解决方案及个人贡献。

2.智力题:一杯水A先喝1/2B喝剩下的1/2A继续再喝剩下的1/2,以此类推,最后A喝了多少,B喝了多少?

3.为什么选择小米iOS客户端开发岗位?对小米的生态产品有什么了解?

4.介绍你熟悉的一个iOS框架,追问其核心原理和应用场景。

第四轮面试问题(业务负责人):

1.自我介绍和相关实习/项目经验,重点说明项目如何贴合小米生态业务需求。

2.结合小米手机系统场景,如何设计一个高可用的系统设置页面?需要考虑哪些适配场景?

3.聊聊你对SwiftUI的理解,SwiftUI相比UIKit有哪些优势和不足?

4.常规沟通:了解过往的团队协作能力、问题解决能力,告知offer发放流程。