資料介紹
軟件簡介
ZYChat
(一) 是一個實戰(zhàn)項目的聊天UI框架,針對高頻次高速率刷新最近會話列表和實際對話頁面做了緩沖優(yōu)化,經(jīng)過測試會話使用的性能和體驗非常穩(wěn)定。
(二) UI框架參考MVVM思想設(shè)計,并采用自身總結(jié)的一些常用設(shè)計模式,可以幫助你快速實現(xiàn)搭建多樣式的列表頁面,代碼復(fù)用率可以有穩(wěn)定的提升。
(三) ZYChat-EaseMob 是基于環(huán)信的UI項目應(yīng)用實戰(zhàn),將ZYChat類庫和實際項目使用結(jié)合。
項目運行截圖
項目代碼結(jié)構(gòu)圖
項目核心模塊注釋
ChatDetail ?具體聊天
*Resource 用到的圖片 ?*UITableViewCell 聊天所有的cell使用
*Base??????聊天內(nèi)容基類Cell,負(fù)責(zé)分發(fā)類型 *ChatCell??聊天內(nèi)容Cell,????負(fù)責(zé)處理聊天類型的消息展示 ??*GJGCChatFriendBaseCell?,?基礎(chǔ)內(nèi)容Cell,包含消息顯示的:頭像,昵稱(根據(jù)會話類型顯示隱藏),氣泡,狀態(tài) ??*GJGCChatFriendTextMessageCell,?文本內(nèi)容顯示 ??*GJGCChatFriendImageMessageCell,?圖片內(nèi)容顯示 ??*GJGCChatFriendAudioMessageCell,?語音內(nèi)容顯示 ??*GJGCChatFriendTimeCell,?時間塊顯示 *SystemNoti?系統(tǒng)消息Cell,???負(fù)責(zé)展示系統(tǒng)消息
*View 聊天時候用到的自定義視圖和風(fēng)格控制
*GJGCCommonFontColorStyle?全局風(fēng)格控制 *GJGCCommonHeadView?全局頭像顯示 *GJGCChatContentEmojiParser?文本解析成圖文內(nèi)容 *GJGCRefreshHeader?下拉刷新 *GJGCRefreshFooter?上拉加載 *GJGCLoadingStatusHUD?加載HUD,基類初始化,全局可用
*ViewController
*Base?基礎(chǔ)類,負(fù)責(zé)分發(fā)?系統(tǒng)消息或者對話消息類型 *MessageExtend?消息類型擴展,基于環(huán)信的消息ext字段來擴展消息,以支持gif等更多類型消息 *Friend?單聊會話,群聊本質(zhì)上也是1v1會話,只是有一些特殊邏輯需要單獨處理,為了避免龐大的DataManager和ViewController,需要分開 *GifLoadManager?本地Gif包管理 *Group?群聊管理 *SystemAssist?系統(tǒng)消息管理
RecentChat 最近會話
*GJGCRecentChatViewController ?視圖管理層 ?*GJGCRecentChatCell ? ? ? ? ? ?單行會話展示 ?*GJGCRecentChatModel ? ? ? ? ? 內(nèi)容模型 ?*GJGCRecentChatDataManager ? ? 模型管理層 ?*GJGCRecentChatStyle ? ? ? ? ? 風(fēng)格管理 ?*GJGCRecentChatTitleView ? ? ? 服務(wù)器連接狀態(tài)展示
Square ?廣場
*CreateGroup ?創(chuàng)建群組 ?*PublicGroup ?廣場群組列表
GroupCommonUI ?群組資料和個人資料展示
*GJGCGroupInformationViewController 群組資料展示 ?*GJGCPersonInformationViewController 個人資料展示
如何擴展消息類型
擴展消息類型需要做三件事情
-
繼承GJGCChatFriendBaseCell 來擴展對話消息
-
GJGCChatFriendConstans 在關(guān)系綁定中將內(nèi)容類型和新擴展的消息類型綁定
-
在創(chuàng)建內(nèi)容模型的時候,將內(nèi)容類型設(shè)置為新創(chuàng)建的內(nèi)容類型即可綁定
例子
*首先創(chuàng)建內(nèi)容展示的樣子,GJGCCHatFriendGifCell *在內(nèi)容模型中定義 ? ? ? ?gifLocalId , 在 GJGCChatFriendConstans 中定義內(nèi)容類型 GJGCChatFriendContentTypeGif
-
在GJGCChatFriendConstans 實現(xiàn) ContentType 和 Cell的綁定 *在創(chuàng)建GJGCChatFriendContentModel的時候?qū)?nèi)容設(shè)置為GJGCChatFriendContentTypeGif就可以實現(xiàn)加載對應(yīng)的gifCell
如何基于環(huán)信的消息擴展字段配合GJGCMessageExtendModel實現(xiàn)擴展消息類型的目的
*userInfo : 用戶信息,始終從消息中帶過去,根據(jù)App情況,也可以不用傳過去節(jié)省流量,這里我們是沒有服務(wù)器,所以傳過去
*data: ? 擴展消息的內(nèi)容,看一下我們定義的一些常量key,對應(yīng)的我們可以把需要擴展的內(nèi)容填充
*message_type: 擴展的消息類型,類似常規(guī)時候的 text,gif,voice這些類型的定義方式
*is_message_extend: 是否是消息擴展,當(dāng)不是擴展消息的時候,我們只讀用戶擴展信息userInfo就可以了
*display_text: 擴展消息應(yīng)該展示的文本,如果對方源碼不支持此擴展消息,相應(yīng)這個文本會有變化
*is_support_display: 根據(jù)雙方本地的內(nèi)容協(xié)議支持來確定,是否支持正常顯示這條擴展消息
工具類庫注釋 (Dependcy)
*Base64 ? 用于壓縮編碼字符串,在群信息壓縮的環(huán)節(jié)使用
*EaseMob ?環(huán)信聊天服務(wù)SDK
*fmdb ? ? 最好用的Sqlite,在上面做了一層簡單的封裝,支持對象化CURD操作
*GJCFCachePathMananger 應(yīng)用層全局的緩存目錄管理
*GJCUProgressView 自定義的一個進(jìn)度展示
*SDWebImage ? 最好用的圖片緩存庫,目前基本全部使用此類庫來加載圖片
*JSONModel ? ?實測使用最穩(wěn)定的Json轉(zhuǎn)模型,很好的自定義擴展,在項目中Json與模型轉(zhuǎn)化和生成都運用到了
*GJCURoundCornerView 取自另一個作者的一個控件,可以自定義四個角的圓角和試圖的bord情況
*GJCUCapture ?根據(jù)Apple的AVCapture Demo 自定義的一個拍照的組件,母的是解決iOS7.0 iPhone4,5下的拍照黑屏問題
*GJGCChatInputPnael ?項目中對話使用的聊天輸入控制面板
*AFNetworking ?最好用的網(wǎng)絡(luò)庫
*AudioCoder ? ?語音編碼庫,公開的
*DownloadManager 任務(wù)化下載組件
*FileUploadManager 任務(wù)化上傳組件
*FLAnimateImage ?用于Gif表情展示
*GJCFAssetsPicker 自定義圖片選擇
*GJCFAuidoManager 播放和錄音
*GJCFCoreText ? ? 自定義圖文混排組件
*GJCFUitils ? ? ? 常用工具函數(shù)
*GJCUAsyncImageView 自定義異步圖片加載,不是非常穩(wěn)定,目前底層全部改成SDWebImage加載
*GJCUImageBrowase 大圖瀏覽組件
為什么做這個聊天室?
大家都在做App,可能各種需求,各種蛋疼的坑,老板說,我們就是要有個IM消息服務(wù),但是還得能自己定義,那么OK,我們的目標(biāo)來了,誰來寫呢, 再寫一遍,很麻煩,別的項目什么 XX仿QQ效果,XX仿微信效果,這些都沒法解決問題,它們就是個效果,甚至沒經(jīng)過測試,ZYChat經(jīng)過對話詳情頁瘋狂對發(fā)消息測試,沒有任何問題,所 以,我們要得是一個真實的對話聊天項目,并且它是開源的,大家都可以來做一些自己想做的擴展,我們需要關(guān)心的就是,我們要做的是什么,如何使用它,節(jié)省我 們的時間。所以,ZYChat-EaseMob就誕生了。
- ChaChat角色扮演聊天室
- 身價過億的冰山御蘿的姐姐對小碼農(nóng)說你有大一點的液晶嗎
- 計算機專業(yè)畢業(yè)設(shè)計-ASP+ACCESS網(wǎng)上聊天室畢業(yè)設(shè)計源代碼+論文+開題報告+任務(wù)書+答辯PP
- 16位CRC驗證碼生成VI工具下載 55次下載
- 設(shè)計的一個聊天室程序免費下載 2次下載
- 碼農(nóng)第1期python全集免費下載 7次下載
- 使用LabVIEW編寫的TCP IP協(xié)議聊天室資料免費下載 63次下載
- 如何使用SpringBoot集成Netty開發(fā)一個基于WebSocket的聊天室說明
- 如何使用Linux設(shè)計一個網(wǎng)絡(luò)聊天室詳細(xì)資料免費下載 11次下載
- 分享幾款聊天機器人平臺玩轉(zhuǎn)聊天機器人 0次下載
- P2P--多用戶在線聊天室(Java源碼) 12次下載
- 多線程與聊天室程序的創(chuàng)建 0次下載
- JAVA教程之聊天室服務(wù)器 8次下載
- JAVA教程之聊天室客戶端 9次下載
- 《ASP.NET課程設(shè)計案例精編》源代碼
- 使用示波器的麥麥對講機測試方案 708次閱讀
- sim卡pin碼怎么設(shè)置 pin碼和puk碼有什么區(qū)別 4982次閱讀
- 讀碼器基礎(chǔ)干貨分享 2117次閱讀
- 使用C語言寫的一個輕量級聊天應(yīng)用! 1400次閱讀
- Java 中驗證碼的使用 1089次閱讀
- 什么是BCD碼 1.6w次閱讀
- 色碼電感的讀數(shù)_色碼電感作用 7881次閱讀
- 你知道Jupyter notebook還可以用來做 “視頻聊天室” 嗎? 3414次閱讀
- 分組碼和卷積碼的區(qū)別 詳解分組碼和卷積碼 3w次閱讀
- 華為資深工程師:程序員與碼農(nóng)的差異在哪? 3731次閱讀
- pin碼被鎖是什么意思_手機顯示PIN碼被鎖請輸入PUK碼 4.3w次閱讀
- 余3碼至8421BCD碼的轉(zhuǎn)換_8421BCD碼轉(zhuǎn)換成余3碼 19.3w次閱讀
- java實現(xiàn)IM即時通訊聊天功能代碼 2.7w次閱讀
- 碼農(nóng)和程序員之間就在這5個關(guān)鍵點! 652次閱讀
- 閃存MCU在實現(xiàn)農(nóng)網(wǎng)表方案的應(yīng)用 947次閱讀
下載排行
本周
- 1貼片三極管上的印字與真實名稱的對照表詳細(xì)說明
- 0.50 MB | 76次下載 | 1 積分
- 2Altium Designer AD 25 軟件安裝包下載
- 0.00 MB | 3次下載 | 免費
- 3Altium Designer 23 軟件下載
- 0.00 MB | 2次下載 | 免費
- 4Altium Designer 22.11.1軟件安裝包下載
- 0.00 MB | 1次下載 | 免費
- 5PADS Professional vx 2.11 安裝包
- 0.00 MB | 1次下載 | 5 積分
- 6高頻率變壓器的設(shè)計
- 0.03 MB | 1次下載 | 1 積分
- 7ANT8817 1%3.5W/3.7V,同步自適應(yīng)升壓,超長續(xù)航,H類防破音單聲道音頻功放中文手冊
- 1.11 MB | 1次下載 | 免費
- 8NS6326 4-30V輸入5V/3A輸出同步降壓穩(wěn)壓器中文手冊
- 1.22 MB | 次下載 | 免費
本月
- 1蘇泊爾電磁爐線路的電路原理圖資料合集
- 2.02 MB | 286次下載 | 5 積分
- 2長虹液晶電視R-HS310B-5HF01的電源板電路原理圖
- 0.46 MB | 87次下載 | 5 積分
- 3貼片三極管上的印字與真實名稱的對照表詳細(xì)說明
- 0.50 MB | 76次下載 | 1 積分
- 4U盤一鍵制作
- 23.84 MB | 41次下載 | 免費
- 5AI智能眼鏡產(chǎn)業(yè)鏈分析
- 4.43 MB | 39次下載 | 免費
- 6AO4803A雙P通道增強型場效應(yīng)晶體管的數(shù)據(jù)手冊
- 0.11 MB | 28次下載 | 2 積分
- 7長虹液晶彩電LS29機芯的技術(shù)資料說明
- 3.42 MB | 16次下載 | 2 積分
- 8TP4055 500mA線性鋰離子電池充電器中文手冊
- 0.75 MB | 9次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935127次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191387次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183342次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81586次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論