本文主要内容
一.内容总结
二.重要知识点总结
三.高级问题扩展与思维延伸
一.内容总结
二.重要知识点总结
- 1、系统的UI事件传递传递是怎样的?
- 2、KVO的实现原理是怎样的?
- 3、消息传递机制和消息转发流程?
- 4、当一个obj废弃的时候,指向它的weak指针为何会自动置为nil?
- 5、Block的实质是怎样的?使用Block为何容易产生循环引用?
- 6、怎样利用GCD实现高效的多读单写逻辑?
- 7、Runloop为何能做到有事做事,没事休息?
- 8、怎么解决DNS劫持?
- 9、什么是桥接模式、责任链模式?
- 10、怎样设计一个图片缓存框架?
- 11、编写查找一个字符串中,第一个只出现一次的字符的算法。
- 12、AFNetworking大致是怎样实现的?
三.高级问题扩展与思维延伸
3.1、如何设计一款APP的架构?
描述
移动互联网时代,各大公司都有或多或少的APP,甚至存在APP矩阵,意思就是有多个具有协同作用的APP,典型的如阿里系的:淘宝、天猫、支付宝、优酷、高德、虾米等,如果让我们来设计一个APP的架构,都需要考虑哪些因素?
思路点拨
重点要考虑并结合业务的发展阶段及演进式的架构设计;如何进行架构分层、业务隔离、跨库通信、如何进行页面框架设计、如何运用设计原则、设计模式更好的设计各个功能模块;
3.2、如何建设端上的UI千人千面?
描述
随着精细化运营的需要,各大厂纷纷建设千人千面能力;从最初的数据、供给千人千面,再到现今较为流行的UI千人千面;众所周知UI样式对于用户决策的影响,典型的对于点击率的影响还是很大的;阿里系的淘宝特别注重人货场的概念,如何在线上通过UI建设分别营造出高端shoppingmall、购物商场、街边/胡同品牌店、夜市地摊等货场的感受精细化运营目标用户是值得深入思考的问题;作为终端技术同学,如何利用你的技术实现UI千人千面的能力建设呢?
思路点拨
一个页面可以抽象多个容器、每个容器包含多个卡片、一个卡片可以拆分多个组件、每个组件又是由最基本的系统UI控件构成;如何实现一套协议可以通过云端下发的方式实现动态配置;在动态配置的基础上,如何建立用户人群画像、用户行为特征与某个原子粒度的UI组件风格样式上的映射关系;
3.2、如何在端上建立端AI能力?
描述
随着手机硬件的成熟,主流手机都内置了NLP等AI相关模块;在流量红利不是特别凸显的互联网阶段,如何结合端AI能力做个性化、精准化的事情是我们当下比较热门的话题,比如阿里的MNN框架想必大家有所关注,那么在端上建立端AI能力有诸多好处,比如通过端AI运行,实现分布式计算,节省云端算力成本;端有丰富的用户行为数据以及面临国家政策监管对个人隐私数据越来越看重,在端上闭环消费数据也许是可行的;
思路点拨
端AI能力建设的演进步骤,如规则引擎、计算脚本、端运行AI模型;如何实现模型端云联合训练,如何在端上做AI模型的部署运行;如何建立端AI能力配套的埋点数据采集、模型训练、部署热更新、运行容器、配套的监控体系等等。
3.3、如何做动态化建设?
描述
大前端发展趋势愈加明显,作为客户端研发同学,如何通过动态化技术的体系化建设提升研发效率,提升业务交付效率是我们持续研讨的课题;市面上动态化技术层出不穷,如何结合你的业务需要做合适的动态化技术建设
思路点拨
结合业务特点从稳定性、性能、动态化能力强弱等方向选型;甚至创造性的创造一些除RN、Flutter、Weex等动态化建设;包括对于客户端与前端的结合;我们每天编写的代码可以大致抽象为视图、数据、逻辑;动态化的范畴也可以从模块级到页面级再到Bundle级;你的业务需要怎么样的动态化能力呢?
3.4、如何体系化做性能体验优化?
描述
性能体验优化是老生常谈的话题,关于性能体验优化不仅包含页面渲染性能优化,也包括程序启动优化、页面加载时长优化、网络体验优化、内存优化甚至安装包大小优化等等;体系化解决性能问题应该如何做呢?
思路点拨
不同方向的优化手段、方案是什么,比如程序启动优化,如何识别活动关键路径,区分哪些可以并发,哪些需要串行以及对应的时序;main函数前、main函数后,你可能需要了解下mach.o相关知识与原理;再比如渲染性能优化,除了常见的布局计算优化方式,是否还有其他方面,比如光栅化、离屏渲染、图片编解码、甚至绘制;如何结合业务做有侧重的优化;如何衡量优化建设成果,打算如何做性能的监控等等。
有任何问题,欢迎👏各位评论指出!觉得博主写的还不错的麻烦点个赞喽👍