熟练使用如下 iOS 技术和工具:
- Objective-C / Swift
- UIKit / 代理、单例、观察者、MVC 等设计模式
- Xcode / Instruments
- objc-runtime
- GCD
- 跨平台开发技术 React Native
- iOS 与 JavaScript 通讯
- CocoaPods 使用与私有 pods 制作
其他技术信息:
- 能使用 JavaScript / TypeScript
- 个人链接:个人信息-github / leetcode / blog
- 做过基于 React / Vue 的前端项目
项目经历
名丝学院
名丝学院是一款电商类 App。该项目包含了商品浏览、商品规格选择、生成订单、进行支付、用户订单管理等一系列逻辑
我当初开始做该项目时,因考虑到任务量,我司客户端开发人员人数比例十分不均衡,以及大家学习一门新技术的兴趣,向 CTO 推荐使用 React Native 进行开发,获得批准
经过系统学习和大量实践、踩坑后,成功将 App 上架,将原先工时缩减约 40%。CTO 也对我们接下来更多的使用 RN 表示支持。经过这一过程,我和我的团队学习到了诸多前端知识,体验到了 React 技术栈相比与传统 iOS 开发的优势和不足
轻课堂
轻课堂是一款主要服务于义务教育阶段人民教师的教辅类 App。该 App 设计之初是一个直观的功能:用户可通过手机屏幕进行“圈划”操作,该操作会实时的通过服务器,同步至教室电脑的 Web 页面上。该功能实际上是实现“客户端-服务端-网页端”的三端即时通讯
我通过和前端以及后台开发人员协商,定义了一套基于 WebSocket,通过发送 JSON 字符串来进行三端通讯规则。并在 iOS 平台上通过 SRWebSocket 实现了一套简洁的 API,完全实现了相关需求和附加逻辑,并方便了该项目后续的开发和维护
和聊
和聊是一款商务社交类 App,该项目以商务社交为主要业务。该项目主功能类似于各个社区的动态页面,附带有好友列表、聊天、求助、电商等附加业务
我入职时,该项目已经上架,我在这个项目中负责长期维护和部分需求开发。在这个功能庞杂,代码陈旧工程中,我主要面临了几个问题,经努力研究,大幅改善了不良情况:
- 代码执行效率低下:以 Xcode.Instruments 为指导,或优化,或重构,提升了列表页面流畅度
- 代码臃肿,编译缓慢耗时:1.优化 project 配置 2. 通过脚本遍历未使用的类,严查 NSClassFromString 等调用,移除了大量未使用,但是会被编译的文件,经此,将原来每次编译的 400s 优化至 80s(clean 后连接真机或模拟器再次编译)
- 打包测试频繁:研究了 Jenkins + fastlane + TestFlight 这一系列工具,成功利用公司 iMac 作为自动打包器,节约了工作时间
- 代码质量较低,崩溃频出:集成 Fabric.io,深入分析崩溃堆栈。将原先新版本动辄 1% 的崩溃率降低至 0.02% 以下
可兼职时间
可兼职地点
0条评论 雇主评价