iOS开发--即时通讯常用第三方库
前言
自毕业到现在,从事iOS即时通讯开发已经1年半之久。主要负责Allure开发,目前已上架,可以在苹果商店搜素Allure。Allure模仿微信的交互和设计效果,已经实现微信的大部分功能。
在这里总结一下自己平时开发即时通讯类App常用的控件,以供大家参考。
本文出自我的大学同学之手,发布到此,希望对大家有用!
- 原作者QQ:983202699
- 原作者微博:http://weibo.com/490jiulin/home?wvr=5
1、聊天列表
SWTableViewCell: https://github.com/CEWendel/SWTableViewCell.git
正常情况下隐藏右侧按钮的,向左滑动显示cell右侧的按钮(类似于iOS 7邮件应用程序)。微信应用:聊天列表向左滑动,显示标记未读,删除消息按钮。
2、文字消息
M80AttributedLabel: 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
聊天输入文字,可以根据输入文字的多少自动改变输入框的高度。
5、微信右上角的+点击展示列表效果
DXPopover:https://github.com/xiekw2010/DXPopover.git
感觉微信的效果点击+号,展示列表,使用的就是frame的缩小动画。笔者推荐的效果一定比微信的效果要好。
6、UUID、手势密码的存储
SSKeychain:https://github.com/soffes/sskeychain.git
:使用keychain存储关键数据,eg:UUID、手势密码等。当刷机、升级系统或者卸载应用时,UUID或手势密码依旧还保存。苹果推荐使用KeychainItemWrapper,但实际开发中并不是很好。笔者建议使用SSKeychain,方便易用。
7、广告自动轮播
HYBLoopScrollView:https://github.com/CoderJackyHuang/HYBLoopScrollView.git
实现自动循环滚动,一般用于展示广告页。微信在贴纸宣传处就使用了轮播。
8、数据库
FMDB:https://github.com/ccgus/fmdb.git
FMDB如此强大,啥也不说了。
9、图片浏览器
MWPhotoBrowser:https://github.com/mwaterfall/MWPhotoBrowser.git
图片浏览器,微信朋友圈点击小图,查看大图的效果。
10、Tinder、探探等翻牌子
MDCSwipeToChooseView:https://github.com/modocache/MDCSwipeToChoose.git
Tinder、探探等翻牌子效果
11、刷新
MJRefresh:https://github.com/CoderMJLee/MJRefresh.git
MJRefresh有李明杰大神的开源之作,其他的自不用说。不过笔者根据基于MJRefresh重新定制了一个可以修改颜色的loading菊花(https://github.com/jiulin/MJRefresh.git)
13、网络
AFNetworking: https://github.com/AFNetworking/AFNetworking.git
iOS开发--即时通讯常用第三方库的更多相关文章
- iOS开发中用到的第三方库概览
前言:记录一下使用过和接触过的第三方库,重要程度与顺序无关 网络请求: AFNetworking:AFNetworking is a delightful networking library for ...
- iOS开发--即时通讯
什么是环信? 1.环信是一个第三平台,提供即时通信(IM–Instant Messaging )的服务 2.环信是在XMPP的基础上进行二次开发 3.环信在网络上传输的数据也是XML 4.使用环信,不 ...
- IOS开发中有用的第三方库
#Objective-C中最受瞩目库 [链接](https://github.com/languages/Objective-C/most_watched) * [three20](https:/ ...
- IOS学习:常用第三方库(GDataXMLNode:xml解析库)
IOS学习:常用第三方库(GDataXMLNode:xml解析库) 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过 ...
- ios 常用第三方库要加的framework,ARC的设置
一,常用第三方库要加的framework 1,SQLite3数据库:FMDatabase 需要添加:libsqlite3.dylib 2,网络请求:ASIHTTPRequest 需要添加:CFNetw ...
- iOS:iOS开发非常全的三方库、插件等等
iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...
- iOS - IM 即时通讯
1.即时通讯技术 即时通讯(IM:Instant Messaging):又称实时通讯,支持用户在线实时交谈,允许两人或多人使用网络实时的传递文字消息.文件.语音与视频交流. 即时通讯在开发中使用的场景 ...
- iOS之即时通讯相关理解
Socket: 1>Socket又称"套接字" 2>网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 3>应用程序通常通 ...
- python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )
python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...
随机推荐
- python djange输入中文错误的解决办法
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) ...
- UEFI双硬盘安装win8.1和Ubuntu14.04
UEFI双硬盘安装win8.1和Ubuntu14.04 安装环境 UEFI启动模式 双GPT硬盘 一个ssd 一个hdd 笔记本已安装win8.1 硬盘启动顺序为: U盘 ssd hdd 光驱 安装方 ...
- springboot快速搭建
环境 spring-boot-starter-parent 是一个特殊的starter,它提供了有用的Maven默认设置.同时,它也提供了一个 dependency-management 节点,这样对 ...
- [shell基础]——join命令
测试文本内容 # cat -n name1.txt 1 name1 alvin1 2 name2 alvin2 3 name3 alvin3 4 name4 alvin4 # cat -n name2 ...
- Android -- 倒计时的实现
CountDownTimer CountDownTimer这个 ...
- Session invalidate
会清空所有已定义的session 而不是清空全部session的值也就是说 定义了一个名为 user 的session 调用invalidate()方法后使用Session.getValue(“use ...
- C#委托详解(2):实现方式大全
本系列文章将详细探讨C#中的委托,列举其主要的实现方式,并分析其在设计层面和编码层面带来的好处,最后会讨论其安全性和执行效率等. 接上篇(C#委托详解(1):什么是委托)介绍完什么是委托之后,来看看C ...
- vi中正则表达式的使用
在当前行中删除从aa到zz的所有字符 :s/aa.*zz//在整个文件用and代替所有的&字符:1,$s/&/and/g在每一行的首行插入字符串new:1,$s/^/new/g在第二行 ...
- c++ ip地址的操作 c版
http://blog.csdn.net/cpp_funs/article/details/6988154 1.htonl ()和ntohl( ) u_long PASCAL FAR ntohl (u ...
- File not found images\Thumbs.db.
启动eclipse正常,部署项目的时候发生这个错误. 解决办法: 1. 从tomcat中删除这个项目,并清空work目录下的缓存 2. 在eclipse中执行project>Clean>C ...