Ø 熟练掌握Objective-C编程,了解swift编程 ,具有良好的编写代码习惯(代码书写规范以及代码的归档管理)。
Ø 熟练使用iOS SDK及相关开发工具,具备良好的面向对象编程思想。
Ø 熟练掌握MVC、KVO/KVC、单例、代理、通知等设计模式,了解掌握控制器的生命周期方法和事件处理机制。
Ø 熟练掌握进程线程间的调度使用,使用GCD、NSOperation进行多线程开发。
Ø 熟练使用CocoaPods管理项目内所应用到的主流框架:AFNetworking、SDWebImage、FMDB,YY系列等。
Ø 熟悉TCP/UDP、HTTP/HTTPS等网络传输协议,掌握GET/POST网络请求方式,JSON/XML 等数据解析。
Ø 熟练使用极光推送等第三方SDK,了解消息推送机制。
Ø 熟悉运行时机制(runtime)和内存管理机制,熟悉runloop循环机制。
Ø 熟悉常见的数据本地化存储技术的存储和读取。
Ø擅长使用masonry、snapkit实现屏幕适配问题,XIB和其他的约束方式也可以使用。
Ø有简书和github账号,分享一些自己认为写的比较好的代码。
1、SXi
SXi为亿海公司为⼴⼤电⼦烟⽤户提供的⼀款利⽤蓝⽛BLE对电⼦烟进⾏温度、功率、⼜感曲线等控制,以及提供公司 产品的资讯预览、社区活动等。
● 前期使⽤OC语⾔,MVC架构;后期因⽅便维护和Swift的⾯向协议编程和安全性等重写,使⽤Swift语⾔,MVVM架 构
● 使⽤ RxSwift 框架实现响应式编程,实现 MVVM 架构
● 使⽤ RxFlow 完成App页⾯实现和页⾯跳转管理
● 使⽤ CoreBluetooth 和 RxBluetoothKit 实现对电⼦烟设备的蓝⽛连接、读写等
● 使⽤ Moya 实现与服务端通讯,ObjectMapper 对编解码传输对象
● 使⽤ RxDataSources 实现 Model 在 UITableView 的显⽰和修改
● 使⽤ SnapKit 实现页⾯的⾃动布局
● 研究 Charts 开源库并实现电⼦烟⼜感曲线的显⽰,和通过拖拽、捏等⼿势实现⼜感曲线的修改
● 引⼊ SwiftScan 框架实现⼆维码识别操作
● 引⼊极光推送并导⼊极光SDK实现推送
● 引⼊ ImageSlideshow 和 Kingfisher 开源库实现图⽚异步加载
2、SXi_Mac
SXi_MAC为SXi的Mac版本,使⽤Mac的USB对电⼦烟进⾏温度、功率、⼜感曲线等控制。
● 使⽤ OC 语⾔,MVC 架构
● 使⽤开源库 RestKit 实现与服务器端通讯交互
● 研究 IOKit 系统库并利⽤ USB 实现与电⼦烟设备的交互、写⼊升级⽂件、升级操作等
● 运⽤ NSThread 和 Runloop 原理新增常驻线程对 USB 设备的插拔事件进⾏监控
● 创建 FIFO 线程对 USB 设备的命令队列传输进⾏严格管理,管理信号量 semaphore 实现线程锁,对传输命令、添加 命令到命令队列等实现安全操作,防⽌ USB 设备的缓冲区堵塞导致奔溃
● 研究 BEMSimpleLineGraph 开源库,完成⼆次开发,实现在 Mac 端对电⼦烟⼜感曲线的显⽰和修改