1、精通Objective-C、Swift语言,对runtime运行时机制原理有比较深入的了解。
2、熟悉相关热门框架的封装及原理:YYCache缓存机制、SDWebImage底层原理。
3、熟悉RxSwift函数响应式编程。
4、熟悉性能调优、内存管理、崩溃处理、卡顿检测。
5、熟练掌握常用设计模式、性能优化,Instruments,Analyze。
6、熟练FMDB数据库编程。
7、具备一定的设计与架构能力,并能结合项目定制化敏捷开发。
8、具备快速阅读源码、分析能力、平时有参与相关框架贡献。
9、具有一定的英语阅读能力,平时积极参与github以及一些热门框架论坛社区交流。
10、熟悉Flutter语言,有一定程度跨平台开发能力。
11、具备逆向开发能力。
业余项目:
一、【链头条】
1、信息流资讯产品,使用Swift语言开发,MVP架构。
2、使用WKWebView展示h5资讯,通过webView.evaluateJavaScript注入js代码,实现:改变字体颜色、显示百分比、改变图片大小,点击图片方法等功能。
3、短视频:通过UITableView+AVPlayerLayer配合实现;
每个UITableViewCell里都有一个AVPlayer,通过替换AVPlayerItem来替换视频源;
使用NSURLSession下载网络视频,同时实现:NSURLSessionTaskDelegate、 NSURLSessionDataDelegate方法,为视频播放器实时提供数据
AVPlayerLayer结合 AVAssetResourceLoaderDelegate 实现边下边播的效果;
播放过的短视频会缓存,增强用户体验。
4、视频:使用ZFPlayer框架,实现了类似微博的滑动播放功能。
通过继承ZFPlayer的ZFPlayerControlView,实现了播放界面的自定义
5、使用libwebp库提供的API处理webp格式图片(多媒体格式图片)
6、UITableView优化:
只加载正在显示的cell的图片;
在tableView中,利用了runloop的kCFRunLoopDefaultMode 和TrackingRunLoopMode,在tableview滑动结束的时候才加载图片,优化了流畅度。
7、使用SQLite数据库存储部分数据,加快展示速度以及保证无网状态下功能正常。
8、网络方面Alamofire + HandyJSON配合使用。
二、【必本搜索】
1、资讯产品(区块链方向),使用Swift语言开发,MVP架构。
2、通过Socket链接(Starscream框架),在回调方法websocketDidReceiveData中接收数据,实时更新列表数据。
3、Socket仅更新通过UITableView的 indexPathsForVisibleRows取得的正在显示的cell,减少界面刷新带来的性能损耗。
4、大量使用嵌套视图:UIScrollView嵌套UITableView等。
5、通过多代理的设计模式,灵活处理在嵌套界面中的Socket回调。
6、通过CHKLineChart绘制k线图,提供macd、kdj等多种k线,结合Socket实时绘制。
7、使用WKWebView展示h5页面,并通过其代理方法实现js与原生的互动。
8、集成腾讯QcloudTTS框架,实现朗读文章功能。
9、使用极光推送,多种推送类型,接收后跳转不同界面。
三、【着模】
1、短视频分享社区产品,使用Swift语言开发,MVP架构、RxSwift框架。
2、短视频拍摄使用七牛的PLShortVideoKit框架,实现了美颜、滤镜、水印、断点录制、分段回删、视频编辑、混音特效、视频剪辑、本地转码、视频上传功能。
3、使用kingfisher框架来处理图片加载,实现显示的谈出效果。
4、项目内各控件的初始化采用Then语法糖框架,简洁易读。
5、网络请求采用Moya+RxSwift+HandyJson组合
可兼职时间
可兼职地点
0条评论 雇主评价