王儒林简历 iOS
简历
联系方式
- 手机:17600636882,13920145004
- Email:515045622@qq.com
个人信息
技能
- 掌握 Objective-C、Swift 等 iOS 开发相关语言。
- 熟悉 Cocoa Touch 框架, IAP、视频播放、动画效果等。
- 熟练掌握编程通信方法, 代理、通知、KVO、block、多线程、GCD 等。
- 熟悉数据库、归档、文件、偏好等数据持久化方法。
- 熟练掌握 Runtime,RunLoop,事件分发、消息转发等技能。
- 熟悉常用的设计模式。
- 熟悉 MVC、MVP、MVVM 等常用软件架构。
- 熟悉 SVN、Git 源码管理、Fastlane、Jenkins 持续集成等工具。
- 熟悉 HTTP 协议, RESTFul 规范,JavaScript,node,React等。
- 熟悉单元测试。
- 熟练掌握 XCode、Illustrator、CocoaPods、Charles、Atom、Shell、JetBrains 全家桶等工具。
- 熟悉 JAVA、Android 相关。
- 熟悉各种三方类库: AFNetworking、Alarmofire、SDWebImage、Realm、FMDB、YYKit 等。
工作经历
北京蚂蚁云金融信息服务有限公司 ( 2018年5月 ~ 至今 )
我的工作是支付宝钱包的开发迭代。
社交相关工作 (2018年11月 ~ 至今)
负责社交产品相关的迭代开发,主要负责社交会话以及上下游相关能力维护及改版+朋友相关关系的维护及改版
详细工作如下
1. 社交聊天能力,建设商家和顾客的独立会话,承接端内的业务需求
2. 朋友 tab 改版及消息 tab 替代方案设计和编码
3. 社交关系链路维护
4. 20 年中开始,负责部分安卓相关的迭代开发
5. 20 新春红包相关工作
小程序相关研发迭代工作 (2018年5月 ~ 2018年11月)
负责小程序端上框架的开发维护,主要工作有三
- 建设小程序输出能力,接入友方 app
- native 版本小程序功能维护,支撑端内业务
- 小程序基础功能jsapi迭代扩展
杏树林信息技术(北京)有限公司 ( 2015年6月 ~ 2018年5月 )
我的工作是iOS客户端产品的开发迭代。
病历夹 (2016年9月 ~ 2018年5月)
这款App是帮助医生工作的工具,我在其中参与了部分 4.0 改版以及 5.0 全新病历夹的开发工作,4.0 改版使用 Swift + MVVM 重写了主要页面,而 5.0 全新版的开发上采用了轻客户端的思路,沿用 Swift + MVVM 开发医患模块,我负责【记录】相关的架构设计、数据存储、数据同步逻辑的设计开发,轻便易扩展。协作业务借助 React Native 实现,我也负责其中群组和患者记录相关的业务部分架构设计和开发。
病历夹 4.x 版本主要工作包括
- 网络请求的统一
客户端使用了多个网络请求框架维护成本过大,其中 ASIHTTPRequest 相关部分较重,为了适应服务端淘汰老服务的需求,我将 ASIHTTPRequest 相关的重构为封装的 AFNetworking 网络请求。
- 新表单服务的方案制定和集成
病历表单原本有自己的服务,需要集成第三方提供的新服务,我与相关的同事制定方案,兼容老表单的同时,集成了新的表单类型,减轻了公司内对老表单的维护成本。
- 支持使用模拟器调试
此前 App 由于引用了不支持模拟器的三方库,导致无法使用模拟器编译,我对此进行了优化,解耦了相关模块,解决了此问题,减轻了开发成本。
病历夹 5.x 版本主要工作包括
- 医患相关的需求分析和数据设计
此前的 4.x 客户端数据较重,本地数据与云端数据的同步比较复杂,针对此问题,新版病历夹减轻了客户端维护的业务,把本地数据定义为缓存,但比一般的缓存复杂,为此我与服务端的同事们协商制定了数据交互实体和交互方案。App 端采用 Realm 实现数据缓存,达成了轻量级的目的,数据的升级也比传统的 SQLite 更有优势。
- 缓存同步逻辑
新版病历夹把本地数据定义为缓存,同时又要实现离线支持,这对缓存的同步逻辑的要求比较高,我制定了 iOS 端的缓存同步方案,保证数据不丢失,同步及时。
- 协作群组
协作群组相关业务使用 React Native 实现,最开始其他业务线完成,后续功能由我开始,我负责协作群组与 Native 对接工作,React Native的开发,以及部分 Native 组件的开发,功能实现包括群组记录,群组病历模板的接入,和后续群组患者记录相关功能模块的开发。
- 协作群组的性能优化
由于 React Native 的缺陷,在同一个 React Native 页面栈中,页面越多,栈顶的 ui 性能越差,我对此进行了针对优化,利用 Inmmutable 和 reselect 等工具,调优了页面性能,在页面栈过多(4级以上)的情况下,降低了卡顿几率。
医口袋 (2015年6月 ~ 2016年9月)
医口袋是一个医生工具应用,我负责iOS开发,主要是迭代开发工作,开发和维护包括图书、指南、文献、药典、计量工具等模块,在16年开始大部分工作使用Swift开发。
其中 E-Pub 阅读器,以及药典计量工具上产品调整较多。
这款 App 历时较久,技术债比较多,我在其中进行了大量的重构创新工作,包括
- 网络请求的统一
客户端使用了包括 ASIHTTPRequest、AFNetworking、NSURLConnection 在内的多个网络框架,维护成本过大,我将它们统一为内部包装过的 AFNetworking 框架,可以统一维护服务端需要的相关字段。
- 图书下载框架的重构
由于图书下载的产品变化,原有图书下载+解压解密的框架不能满足需求,我重写了图书下载框架,解耦了图书解压解密模块,同时集成了断点续传的支持。
- 数据库性能优化
应用的药典数据库支持离线搜索,由于数据量较大,在性能一般的设备上搜索某些字段耗时相当长(10s 数量级),我对此进行了调研,使用 sqlite FTS 支持优化了数据表,使搜索速度有 9/10 的提升(8s -> 0.8s),参见:
https://www.zybuluo.com/wrlqwe/note/447795
- 数据库升级方案
为药典增加更新功能,量身制定了升级方案,达到无需更新 App,即可以搜索最新数据的功能。
- 持续集成自动打包发版的优化
之前持续集成只到开发中自动打包,而发布 AppStore 由于流程比较繁琐,需要开发人员值守,对此我优化了打包流程,集成了发布功能,节省了开发人员的成本。
- 此外还有一些其他的重构和优化。
天津陆盟科技有限公司 ( 2014年10月 ~ 2015年6月 )
折扣联盟和扣联盟商家版
这是一套 O2O 的折扣 App,用户去与公司有业务关系的商家消费,可以享受专属优惠,为用户提供折扣,为商家提供客流。
- 根据业务需求和页面设计,设计接口,制定工作计划。
- 与服务端开发协商制定接口文档,以及后续对接联调。
- 设计 App 整体结构、包括MVC分层、用户体系UserManager、网络请求 model 封装等等。
- 实现大部分模块包括:个人版的商品展示、购物车管理、订单支付等,商家版的角色管理、报表查看等。
- 使用了一些第三方SDK,实现分享、支付、图表展示等功能。
不见不散App
不见不散是一款约会App,用户可以寻找附近的人约会聊天,可以线上下单到指定的商家消费。这款App有3个人开发客户端,其中我全职其他两人兼职,App里我作为主程,负责
- 与产品经理筛选合理化需求,制定需求文档。
- 与服务端开发协商制定接口文档,以及后续对接联调。
- 设计 App 整体结构、包括MVC分层、用户体系UserManager、网络请求 model 封装等等。
- 实现大部分模块包括:聊天模块、约会模块、支付、推送管理模块等。
- 使用了一些第三方SDK,包括环信SDK实现单聊和群聊功能、UMeng推送、错误统计、用户反馈和分享模块、支付宝SDK支付等。
天津浩洋环宇科技有限公司 ( 2013年3月 ~ 2014年10月 )
掌上天津
掌上天津Android版版本迭代,我与另一名同事一起进行,开发从3.4版到4.0版的新模块和改版需求。在这个项目里,我
- 使用长连接实现了客户端的实时聊天功能;
- 设计了路由跳转模块,并制定了相关规范;
- 抽取了分享模块,减轻了分享功能的耦合性;
- 优化图片缓存、用户系统、收藏、商业等业务模块。
从2014年初开始,还参与一些iOS模块的开发。
开源项目
致谢
感谢您抽出时间阅览我的简历,希望有更多的机会交流,一起分享,提升技术,拓宽视野。