1.大学本科,计算机相关专业
2.四年iOS平台开发经验,熟练使用Objective-C,具备良好的编程思维
3.熟悉使用第三方框架,如AFNetworking、MJRefresh、Masonry、SDWebImage、ReactiveObjC、SVProgressHud,新开源的如WCDB等。
4.熟悉JSON、XML的解析与服务端的交互。
5.掌握iOS下的数据持久化,熟练属性列表,、WCDB做数据持久化。
6.了解iOS下的事件传递机制,事件响应者链条等概念。
7.熟悉使用Storyboard、xib、代码多种方式创建UI界面,了解自定义UI控件的设计。
8.掌握正则表达式、谓词、文件管理等操作。
9.掌握常见的设计模式,如代理、单例、观察者;熟练使用MVC、MVVM模式进行开发工作。
10.熟悉使用Targets管理多个不同项目,使用SVN工具进行团队开发,熟练使用CocoaPods。
11.熟悉文案的国际化管理(随手机系统语言),也可以应用内替换(如微信)。
12.熟练对系统通讯录进行加密操作(使用iOS9推出的ContactsUI.framework)。
13.熟练使用CallKit结合后台给的Pjsip库实现网络通话的功能,解决各种各样的通话问题。
14.熟练即时聊天的各种功能实现与逻辑处理(如好友关系管理、消息分类管理、各类消息文件发送接收管理、群功能实现等)。
深圳奥联密通信息科技有限公司
密九通
密九通是一款使用IBC标识密码(国密SM9算法)加解密的即时聊天和网络通话App。
这款App主要分为两部分,第一部分是VOIP网络通话,VOIP底层使用的是服务器提供的Pjsip库,通过CallKit模块将底层与上层连接起来,实现VOIP通话功能;第二部分即时聊天模块是基于XMPP实现的,也就是说消息是以XML的格式来传输;开发架构用的是MVVM模式,达到瘦化VC,降低代码耦合度的目的。
我在此项目中主要负责工作:
在刚入职的第一版中,从购买过来的外包项目代码中抽取可用的代码,并把项目从MRC转变为ARC,实现代码的删减,达到可以实现聊天和网络电话的目的,供业务方推广销售;第二版在第一版的基础上,以MVVM的架构模式重构,并将使用问题很多的ASI网络库替换成AFN网络库,实现代码的健壮性与应用内功能的稳定使用,并且逐步增加功能,如通讯录加密、阅后即焚和组织架构等客户的新需求。
1.加密短信加解密的实现。按照协议生成固定格式的SMS信息,调用短信发送界面发送出去,接收人收到消息后,点击短信进入App内解密(只要在App内部定义一个识别代号即可)。过程中发现, iOS是默认使用小端序,需要使用HTONS将数据转换成大端序(网络传输用的是大端序)。
2.VOIP网络电话拨打、接听、挂断的逻辑梳理,配合后台程序员优化其逻辑,保证通话功能没有问题,3.通过CallKit实现电话功能会沉淀在iPhone最近通话记录中,通过阅读国外App(Single)的源代码实现可任意改写其沉淀的信息。
4.由于服务器对网络电话的Pjsip库的回调跟IP有关,IP改变的断线重连需要Destory掉Sip链接后再重连,RealReachability并不能判断IP是否改变,只能判断当前有无网络,所以我将RealReachability检测改为IP地址检测,通过IP地址的变化实现SIP对与XMP的重连。
5.利用RAC将MVC模式重构成MVVM模式,重新梳理代码,删除多余代码,瘦化控制器,降低控制器与视图之间的耦合度,是逻辑更加清晰,加快问题定位速度。
6.通过objcsetAssociatedObject,objcgetAssociatedObject动态给对象添加属性,例如给UIBtuuon添加indexPath属性,很简单的实现tiableview中cell里面按钮点击区分。
7.通过分类方式实现TableView索引的动画提示功能,使用户体验更佳。
8.阅读ZYChat第三方源代码,将聊天界面优质代码抽取出来,集成进项目之中,完成聊天模块的功能。
9.收发消息逻辑的整理。之前界面与发送、接收的数据的耦合度较高,会出现界面显示混乱,我将界面UI动画与数据库挂钩,所有变化均基于数据库的改变,不会发生混乱问题。
10.即时聊天功能相关:Emoji表情的自动替换、发送本地照片和视频、获取手机相机拍照录像、文件的转发,拷贝,删除等。
11.实现加密手机通讯录功能,手机通讯录的增删查改,并且可以多选加解密。
12.组织架构功能的实现,根据服务器的下发策略,根据对数据的处理,实现组织架构层次的展示与隐藏,并且与即时聊天的功能界面相通。
13.密话界面的结构布局与UI界面实现,达到与主流网络电话App(触宝电话)相似。
14.使用Bugly收集应用运行的奔溃信息,根据上报信息快速定位问题,解决问题。
动善时
一款集视频、交友、聊天一起的社交APP,可以发视频、朋友圈、聊天群等功能。
主要负责工作:
1.环信集成。
2.修改多处逻辑处理,群聊方面包括创建、加入、退出、解散、修改群信息等,好友方面 包括申请、同意、拒绝等操作,并且信息要同步后台;UI方面,根据标注图重 新搭建UI界面,重塑交互逻辑,根据相应逻辑增删界面和修改相应代码。
3.缓存清理、聊天记录清理、头像上传等。
iSmartCopy
一款和外部存储设备配合使用的iOS App,可以实现通信录备份与还原,文件的拷贝、剪切和打开文档、图片、音乐,录音等操作。
实现新建文件,实现拷贝、编辑内容、编辑文件名等功能。
获取手机通讯录备份到App内。
录音功能的实现。
拍照、录制视频功能的实现。