(1)熟练 Objective-C 编程,熟悉 Swift 编程,良好的代码编写风格和设计思想。
(2)熟练使用各种设计模式(MVC/MVVM、单例、代理、通知)。
(3)熟练移动端网络编程,熟悉HTTP/TCP/UDP协议。
(4)熟练掌握 Foundation、UIKit框架,熟练掌握UI系统界面和自定义控件。
(5)熟练多种布局方式,理解其适用场景与差异。
(6)熟练掌握多线程技术(NSThread、NSOperation、GCD)。
(7)熟悉内存调试工具的使用,对 Objective-C 内存管理机制有较好的理解。
(8)熟练掌握数据持久化技术(数据库/NSUserDefaults/Plist/归档)。
(9)了解KVC、KVO底层实现原理,Runtime运行时和RunLoop运行循环。
(10)熟练使用Git,熟悉iOS第三方框架并研究过其内部源码实现。
(11)熟练推送、友盟等开发平台的集成流程和注意事项。
(12)熟悉iOS应用开发、发布、上线流程。
(13)仿照 Masonry 框架仿写链式编程的计算器实现。
(14)搭建 Jinkens 打包机, 支持 CI/CD建设,提升工作效率。
SolveX.ai(40W用户)
一款基于AI大模型的教育软件, 不只是帮你完成任务,更是让你真正的掌握知识,按照:理解、提问、提升自我 的流程打造与众不同的赛道特色。拍照解题、备考、大作业等特色功能,短短半年就冲击到了 AI 教育赛道的商店排名第四。好评一直保持在 4.9分+。
1、搭建项目基本结构,使用混合技术栈(VUE+原生)。
2、探索新的制作 framework 方式(cocoapods),解决了历史遗留的制作插件的编译以及找不到文件和文件重复的问题,降低了后续制作自定义插件的门槛。
3、旧插件的改造和新插件的制作(10+)。
项目基础能力:Firebase 能力接入,分享裂变
项目启动优化:部分 SDK 初始化启动耗时,定位问题并解决
项目包体积优化:3 次优化包体积,累计达到 35MB
使用新插件: 解决官方图片选择功能的崩溃问题
鲜榨口语(2 年时间累计用户 30W+)
一:项目职责:
(1)搭建软件框架的基本结构,三方框架的二次封装对项目解耦,方便后期更换。
(2)使用 FMDB 进行数据存储;记录用户行为,为后台推荐算法提供数据支持。
(3)设计视频流功能模块,UI界面的分层处理,为后期需求更改降低难度。
二:技术难点:
(1)用户操作生成的埋点数据存储方案?
(2)用户进行操作(评论、点赞、收藏、关注、分享)后的数据同步问题?
(3)视频流界面的视频观看与练习操作分层?
(4)视频流界面的播放播放进度预缓存?
(5) 社区模块卡顿优化?
三:解决方案:
(1)考虑到用户大量的埋点数据和上报方式,使用内存缓存+数据库缓存的方案。
(2)通知设计模式,通知中心统一处理数据,观察者刷新对应 UI 界面。
(3)将视频流界面分为:
1、视频加载:视频的封面图,视频播放器,视频加载动画。
2、视频操作:作者头像,点赞,收藏,评论,转发,功能开关等。
3、字幕词典:视频对应的字幕的点击交互层。
(4)通过局部刷新、子线程根据数据和 UI 样式提前计算行高并进行缓存、Cell文本异步绘制等方案优化性能。
(5)查看当前视频时,进行下一个的视频预缓存处理,与数据相关的请求。
(6)视频字母的加载,通过 YYText 框架实现异步绘制以及多手势处理。
(7)运用 Runtime 实现数据异常的拦截,减少项目因为异常数据原因导致的崩溃。