前言

自毕业到现在,从事iOS即时通讯开发已经1年半之久。主要负责Allure开发,目前已上架,可以在苹果商店搜素Allure。Allure模仿微信的交互和设计效果,已经实现微信的大部分功能。

在这里总结一下自己平时开发即时通讯类App常用的控件,以供大家参考。

本文出自我的大学同学之手,发布到此,希望对大家有用!

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开发--即时通讯常用第三方库的更多相关文章

  1. iOS开发中用到的第三方库概览

    前言:记录一下使用过和接触过的第三方库,重要程度与顺序无关 网络请求: AFNetworking:AFNetworking is a delightful networking library for ...

  2. iOS开发--即时通讯

    什么是环信? 1.环信是一个第三平台,提供即时通信(IM–Instant Messaging )的服务 2.环信是在XMPP的基础上进行二次开发 3.环信在网络上传输的数据也是XML 4.使用环信,不 ...

  3. IOS开发中有用的第三方库

    #Objective-C中最受瞩目库 [链接](https://github.com/languages​​/Objective-C/most_watched) * [three20](https:/ ...

  4. IOS学习:常用第三方库(GDataXMLNode:xml解析库)

    IOS学习:常用第三方库(GDataXMLNode:xml解析库) 解析 XML 通常有两种方式,DOM 和 SAX: DOM解析XML时,读入整个XML文档并构建一个驻留内存的树结构(节点树),通过 ...

  5. ios 常用第三方库要加的framework,ARC的设置

    一,常用第三方库要加的framework 1,SQLite3数据库:FMDatabase 需要添加:libsqlite3.dylib 2,网络请求:ASIHTTPRequest 需要添加:CFNetw ...

  6. iOS:iOS开发非常全的三方库、插件等等

    iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...

  7. iOS - IM 即时通讯

    1.即时通讯技术 即时通讯(IM:Instant Messaging):又称实时通讯,支持用户在线实时交谈,允许两人或多人使用网络实时的传递文字消息.文件.语音与视频交流. 即时通讯在开发中使用的场景 ...

  8. iOS之即时通讯相关理解

    Socket: 1>Socket又称"套接字" 2>网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 3>应用程序通常通 ...

  9. python 3.x 爬虫基础---常用第三方库(requests,BeautifulSoup4,selenium,lxml )

    python 3.x 爬虫基础 python 3.x 爬虫基础---http headers详解 python 3.x 爬虫基础---Urllib详解 python 3.x 爬虫基础---常用第三方库 ...

随机推荐

  1. python djange输入中文错误的解决办法

    UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128) ...

  2. UEFI双硬盘安装win8.1和Ubuntu14.04

    UEFI双硬盘安装win8.1和Ubuntu14.04 安装环境 UEFI启动模式 双GPT硬盘 一个ssd 一个hdd 笔记本已安装win8.1 硬盘启动顺序为: U盘 ssd hdd 光驱 安装方 ...

  3. springboot快速搭建

    环境 spring-boot-starter-parent 是一个特殊的starter,它提供了有用的Maven默认设置.同时,它也提供了一个 dependency-management 节点,这样对 ...

  4. [shell基础]——join命令

    测试文本内容 # cat -n name1.txt 1 name1 alvin1 2 name2 alvin2 3 name3 alvin3 4 name4 alvin4 # cat -n name2 ...

  5. Android -- 倒计时的实现

    CountDownTimer                                                                      CountDownTimer这个 ...

  6. Session invalidate

    会清空所有已定义的session 而不是清空全部session的值也就是说 定义了一个名为 user 的session 调用invalidate()方法后使用Session.getValue(“use ...

  7. C#委托详解(2):实现方式大全

    本系列文章将详细探讨C#中的委托,列举其主要的实现方式,并分析其在设计层面和编码层面带来的好处,最后会讨论其安全性和执行效率等. 接上篇(C#委托详解(1):什么是委托)介绍完什么是委托之后,来看看C ...

  8. vi中正则表达式的使用

    在当前行中删除从aa到zz的所有字符 :s/aa.*zz//在整个文件用and代替所有的&字符:1,$s/&/and/g在每一行的首行插入字符串new:1,$s/^/new/g在第二行 ...

  9. c++ ip地址的操作 c版

    http://blog.csdn.net/cpp_funs/article/details/6988154 1.htonl ()和ntohl( ) u_long PASCAL FAR ntohl (u ...

  10. File not found images\Thumbs.db.

    启动eclipse正常,部署项目的时候发生这个错误. 解决办法: 1. 从tomcat中删除这个项目,并清空work目录下的缓存 2. 在eclipse中执行project>Clean>C ...