项目一 乐认证
独立开发 2016.04-06
项目描述: 本项目是联想内部使用的乐认证App, 使用企业开发者账号上线.
主要职责: 负责项目开发及维护.
技术要点:
1. 使用AVFoundation框架实现二维码扫描
2. 左侧点击按钮弹出菜单页, 在任何界面点击右侧灰色区域收回菜单
3. 手机短信验证, 二维码扫描两种方式注册
4. 注册成功后可以使用根据算法得到的验证码
5. 需要获取旧版本的数据
6. 支持英语和汉语两种语言
7. 自定义textField
8. 键盘适应
技术难点:
问题一:
在iOS9.0之后,系统语言标识在后面加上了`-地区`,导致9.0以后系统判断系统语言出错
解决方案:在代码中判断系统语言使用`hasPrefix:`
问题二:
在国际化方面, 应用默认语言为英文, 但是在从汉语直接切换到除英语外的其他语种时, 仍然不能直接切换为英文
解决方案:先切换为英文, 在切换为其他语言
问题三:
旧版加密方式中有直接把数组转成字符串的方法, 在不同的版本下, 数组直接转字符串的到的结果有所不同
解决方案:进行差异处理
项目二 MONOV3
独立开发 2016.03-05
项目描述: 本项目是模仿 MONO App 第二版做得iOS版
主要职责: 负责项目全部内容的开发
技术要点:
1. 使用cell工厂
2. 推送
3. 页面滑动使用容器视图控制器, 方便管理与数据存储
4. 使用git作为版本控制工具
技术难点 :
问题一 :
在一个页面里有数量很多的gif图加载, 如果不做优化, 内存有可能会暴涨超过1000M, 真机测试次次收到内存警告, 甚至闪退.
解决方案 : 设计缓存机制与图片显示机制, 把不在屏幕上显示的cell中的图片从缓存中移除, 下次出现的时候在从缓存目录中加载.
问题二 :
如果使用上面的方案, 对UITableView 的滑动流畅度有很大影响.
解决方案 : 在移除图片的同时设置统一的占位图, 在占用内存低于200M的时候, 这些操作需要耦合UITableView的滑动状态, 意思是不可以在RunLoop的UITableView滑动UITrackingRunLoopMode下进行.