剖析微信等即时通讯常用组件(一)
2016-02-21 23:42
441 查看
自14毕业到现在,从事iOS即时通讯开发已经1年半之久。在这里总结一下自己平时开发即时通讯类App常用的控件,以供大家参考。主要负责Allure开发,目前已上架,可以在苹果商店搜素Allure。Allure模仿微信的交互和设计效果,已经实现微信的大部分功能。
1.聊天列表:
SWTableViewCell: https://github.com/CEWendel/SWTableViewCell.git
备注:SWTableViewCell正常情况下隐藏右侧按钮的,向左滑动显示cell右侧的按钮(类似于iOS 7邮件应用程序)。微信应用:聊天列表向左滑动,显示标记未读,删除消息按钮。
2.文字消息:
M80AttributedLabel: [(https://github.com/xiangwangfeng/M80AttributedLabel.git]https://github.com/xiangwangfeng/M80AttributedLabel.git](https://github.com/xiangwangfeng/M80AttributedLabel.git
)
备注:文字内容的消息可以使用M80AttributedLabel,实现文字与表情的混排。一般使用气泡作为背景。
3.语音:
VoiceConvert: http://code4app.com/ios/边录音边转码/521c65d56803fab864000001
备注:iPhone设备录音为WAV格式,WAV格式文件太大,不便于传输。使用VoiceConvert可以将WAV转化为amr格式文件进行传输,文件大小被压缩到之前文件的10倍左右。当接受方接受消息后需将amr文件转化为WAV文件,进行播放。注:笔者实现语音功能时,使用的是VoiceConvert,而微信不是。
4.聊天文字输入框:
HPGrowingTextView:https://github.com/yatinsns/HPGrowingTextView.git
备注:聊天输入文字,可以根据输入文字的多少自动改变输入框的高度。
6.微信右上角的➕点击展示列表效果
DXPopover:https://github.com/xiekw2010/DXPopover.git
备注:感觉微信的效果点击➕号,展示列表,使用的就是frame的缩小动画。笔者推荐的效果一定比微信的效果要好。
7.UUID、手势密码的存储:
SSKeychain:https://github.com/soffes/sskeychain.git
备注:使用keychain存储关键数据,eg:UUID、手势密码等。当刷机、升级系统或者卸载应用时,UUID或手势密码依旧还保存。苹果推荐使用KeychainItemWrapper,但实际开发中并不是很好。笔者建议使用SSKeychain,方便易用。
8.广告自动轮播:
HYBLoopScrollView:https://github.com/CoderJackyHuang/HYBLoopScrollView.git
备注:实现自动循环滚动,一般用于展示广告页。微信在贴纸宣传处就使用了轮播。
9.数据库:
FMDB:https://github.com/ccgus/fmdb.git
备注:FMDB如此强大,啥也不说了。
10.图片浏览器:
MWPhotoBrowser:https://github.com/mwaterfall/MWPhotoBrowser.git
备注:图片浏览器,微信朋友圈点击小图,查看大图的效果。
11.Tinder、探探等翻牌子
MDCSwipeToChooseView:https://github.com/modocache/MDCSwipeToChoose.git
备注:Tinder、探探等翻牌子效果
12.刷新
MJRefresh:https://github.com/CoderMJLee/MJRefresh.git
备注:MJRefresh有李明杰大神的开源之作,其他的自不用说。不过笔者根据基于MJRefresh重新定制了一个可以修改颜色的loading菊花(https://github.com/jiulin/MJRefresh.git)
13.AFNetworking: https://github.com/AFNetworking/AFNetworking.git
等等。。。。
如在即时通讯方面需要帮助,联系QQ:983202699。
或者关注微博私信:http://weibo.com/490jiulin/home?wvr=5
1.聊天列表:
SWTableViewCell: https://github.com/CEWendel/SWTableViewCell.git
备注:SWTableViewCell正常情况下隐藏右侧按钮的,向左滑动显示cell右侧的按钮(类似于iOS 7邮件应用程序)。微信应用:聊天列表向左滑动,显示标记未读,删除消息按钮。
2.文字消息:
M80AttributedLabel: [(https://github.com/xiangwangfeng/M80AttributedLabel.git]https://github.com/xiangwangfeng/M80AttributedLabel.git](https://github.com/xiangwangfeng/M80AttributedLabel.git
)
备注:文字内容的消息可以使用M80AttributedLabel,实现文字与表情的混排。一般使用气泡作为背景。
3.语音:
VoiceConvert: http://code4app.com/ios/边录音边转码/521c65d56803fab864000001
备注:iPhone设备录音为WAV格式,WAV格式文件太大,不便于传输。使用VoiceConvert可以将WAV转化为amr格式文件进行传输,文件大小被压缩到之前文件的10倍左右。当接受方接受消息后需将amr文件转化为WAV文件,进行播放。注:笔者实现语音功能时,使用的是VoiceConvert,而微信不是。
4.聊天文字输入框:
HPGrowingTextView:https://github.com/yatinsns/HPGrowingTextView.git
备注:聊天输入文字,可以根据输入文字的多少自动改变输入框的高度。
6.微信右上角的➕点击展示列表效果
DXPopover:https://github.com/xiekw2010/DXPopover.git
备注:感觉微信的效果点击➕号,展示列表,使用的就是frame的缩小动画。笔者推荐的效果一定比微信的效果要好。
7.UUID、手势密码的存储:
SSKeychain:https://github.com/soffes/sskeychain.git
备注:使用keychain存储关键数据,eg:UUID、手势密码等。当刷机、升级系统或者卸载应用时,UUID或手势密码依旧还保存。苹果推荐使用KeychainItemWrapper,但实际开发中并不是很好。笔者建议使用SSKeychain,方便易用。
8.广告自动轮播:
HYBLoopScrollView:https://github.com/CoderJackyHuang/HYBLoopScrollView.git
备注:实现自动循环滚动,一般用于展示广告页。微信在贴纸宣传处就使用了轮播。
9.数据库:
FMDB:https://github.com/ccgus/fmdb.git
备注:FMDB如此强大,啥也不说了。
10.图片浏览器:
MWPhotoBrowser:https://github.com/mwaterfall/MWPhotoBrowser.git
备注:图片浏览器,微信朋友圈点击小图,查看大图的效果。
11.Tinder、探探等翻牌子
MDCSwipeToChooseView:https://github.com/modocache/MDCSwipeToChoose.git
备注:Tinder、探探等翻牌子效果
12.刷新
MJRefresh:https://github.com/CoderMJLee/MJRefresh.git
备注:MJRefresh有李明杰大神的开源之作,其他的自不用说。不过笔者根据基于MJRefresh重新定制了一个可以修改颜色的loading菊花(https://github.com/jiulin/MJRefresh.git)
13.AFNetworking: https://github.com/AFNetworking/AFNetworking.git
等等。。。。
如在即时通讯方面需要帮助,联系QQ:983202699。
或者关注微博私信:http://weibo.com/490jiulin/home?wvr=5
相关文章推荐
- 关于微信公众平台接口的开发
- JAVA实现仿微信红包分配规则
- 欢迎关注个人微信公众号:icsoc
- 微信开发基础教程
- H5小游戏定制开发,微信游戏定制开发公司 -找向阳花科技!
- gameboy网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
- asp.net mvc 5 微信接入VB版 - 获取AccessToken
- (字母排序搜索)类似微信通讯录效果
- 完整的微信登陆 接收消息流程
- iOS 9中需要使用 QQ/QQ空间/支付宝/微信SDK 的相关能力(分享、收藏、支付、登录等)时,需要在“Info.plist”里增加如下代码
- android 接入微信支付和分享填坑
- 微信公开课系列视频 观后感
- 实现类似微信Viewpager-Fragment的惰性加载,lazy-loading
- 微信支付(java版本)_统一下单
- 微信支付(java版本)_统一下单
- 网页闯关游戏(riddle webgame)--仿微信聊天的前端页面设计和难点
- Android小程序总结
- php微信接口验证写法
- 微信开发踩坑之旅 之 自动回复功能
- 不得不说微信之怪现状