2024年6月杭州最新Flutter面试集锦-小公司

1,375 阅读4分钟

简历背景

自我简介

深耕iOS开发领域四年, 熟悉iOS开发底层原理、性能优化、架构设计。
深入了解Flutter,熟悉Flutter与客户端的通信机制、状态管理、路由设计。
参与千万级用户量应用的迭代维护,曾在一个月内完成主业务线的梳理和新业务的开发,承担PM去统筹规划需求,并最终正式上线。
主导百万级日活应用的Flutter重构,着重负责原生端插件开发,Flutter性能优化,日志工具类。
基于Flutter实现Socket通信、BLE蓝牙连接。
基于中科蓝讯的OTA和AB Mate协议文档对硬件设备的固件进行升级和通信。
带领一个团队完成 NearHub rooms 设备管理平台。

专业技能

熟悉Objective-C语言。熟悉常用的数据结构和算法。
熟练掌握KVC、KVO使用机制底层原理。
熟悉多线程开发和线程安全机制,熟练掌握GCD和NSOpearation。
熟悉AFNetworking、SDWebImage、Masonry等主流三方库。
熟悉内存管理、崩溃处理、卡顿检测和性能优化等。
熟悉组件化的开发模式,能够通过路由设计对cocoapods创建的组件进行解耦通讯。
熟悉MVC和MVVM架构设计。
熟悉Flutter框架和Dart语言。
熟悉provider、flutter_boost、dio等主流三方库。
熟练掌握GetX。
熟悉flutter_hooks(钩子)+freezed(模型)+hooks_riverpod(状态管理)整套开发业务流程。
熟悉Flutter原生iOS插件开发,iOS插件三方依赖等。
熟悉Flutter中的Canvas绘制,进行画笔绘制,元素自定义渲染。
熟悉Socket、BLE蓝牙通信机制,实现硬件端固件升级和通信。

项目经验

都是些小项目。有蓝牙项目,白板项目,二次元社区项目,医疗项目。

面试准备

准备不足。很多细节自己没充分准备好。主要是自己目前心态问题。目前在培养面试感觉和积累面试题。

杭州线下Flutter面试

A-MT宇宙公司-Flutter面试

  1. Flutter版本更新导致出现的问题有哪些,除了API更改之外还有那些。你用的plugin包不可兼容。找替换,找不到替换怎么处理。
  2. Flutter正在使用的版本是那个?
  3. 混合开发做过吗?原生插件是如何通信的?通信有几种?
  4. 混合开发中的Flutter路由和原生路由是如何管理的。路由是怎么跳转的。Getx是如何管理路由的。Getx的路由和Flutter原生的路由有什么本质的区别。
  5. 聊一聊Getx的状态管理。Widget是怎么绑定Controller的,又是怎么找到的。
  6. Flutter_boost了解嘛?使用过程中遇到过什么问题,怎么解决的。popscoge返回不触发怎么解决。它是多引擎还是单引擎。
  7. 白板项目-canvas的save方法用过嘛?
  8. Flutter的通知有几种。Future和Stream。Future可以等待多个异步嘛?不可以。Future和await关系。
  9. Flutter常用的库有那些。Flutter调用相机功能用那些库。
  10. Getx全平台适配是如何做的。
  11. Widget的key是什么?
  12. 三颗树。对应关系是如何的。
  13. Flutter手势冲突有了解吗?Gesture包裹container,container包裹包含文字的text,container给的区域大于text,点击哪里会响应事件。回答:container假如有背景颜色就是container响应。假如没有,就是text。为什么? 
  14. Flutter调试你用的什么工具?
  15. 印象中比较深的问题是什么及最后是如何解决的?

A-MT宇宙公司-iOS面试

  1. KVO原理。派生子类和原来的类是如何关联起来的?
  2. 什么是消息转发。
  3. 线程和自动释放池有什么关系?
  4. 线程和runloop有什么关系?runloop什么时候被释放?什么时候调用drop方法
  5. block修饰用strong还是copy?面试官说:无论如何都不会用strong。copy是从栈到堆还是从堆到栈。
  6. block那些场景需要copy。
  7. weak和assign有啥区别?weak啥时候释放,怎么回收的。

A-MT宇宙公司-面试感受

提问还是可以的。只不过iOS的提问感觉很公式而且基本问不出什么。都是需要背的面试题。

B-QW网络公司(独立大楼)-Flutter面试

算法:

1、1+100用递归函数实现。不用全局变量,不用静态全局变量。

2、随便选择一个排序算法实现。冒泡,快排,选择等都可以。

面试题:

1、聊一下你了解的泛型。泛型使用场景。用泛型解决什么问题。使用泛型有什么好处。

2、首页列表页面滚动不够流畅如何解决,感觉没有达到原生的帧率。

3、后台改了服务器字段,前端崩溃怎么解决的。(简历中写了,所以被问。后台服务器更改字段导致线上app闪退)。

C-WJ之城公司-Flutter面试

1、原生项目作为主体,Flutter模块作为module集成到项目中的混合开发。你们是如何解决多引擎的问题?

2、新项目的技术选型是什么,淘汰了什么,优点是什么。(之前的项目为何选用Getx,以及后续为何放弃GetX)。

3、Flutter的性能优化都做了那些事情。

4、针对苹果手机上的高刷屏,Flutter本身在滑动列表上就不如原生,怎么优化?什么导致滑动不够流畅,怎么解决这些问题。

5、Flutter和原生的通信机制。EventChannel和MethodChannel有什么区别。

6、GetX有哪几种方式可以更新状态?用法和原理上有什么区别。状态是如何变更的?(我回复通知。)。GetxBuilder和Obx有什么优缺点?

场景:无限跳转同一个商品详情页面(widget),仅仅区别是id。页面路由还在。A跳转到B,B跳转到C,同一个页面如何显示不同的数据源。

7、context是什么?context的源码介绍是怎样的?

8、Flutter的三颗树。

9、Flutter的页面生命周期是如何做的?类似iOS和安卓的页面将要出现等等。

10、iOS中GCD和NSOperation的区别和谁使用比较多?功能有啥区别。

11、iOS的消息发送机制。实际场景中是否用过。

12、有没有在实际项目中用过Swift?

13、Flutter中动画用的多吗?