前言
之前寫了一篇Android開發(fā)集成聊天環(huán)信SDK3.x簡(jiǎn)單開始,然后最近得空開發(fā)了一款使用環(huán)信實(shí)現(xiàn)的實(shí)時(shí)聊天應(yīng)用,包含簡(jiǎn)單的服務(wù)器端,并開源給大家,有興趣的同學(xué)可以一起搞一下,詳細(xì)介紹看下邊吧
上代碼
VMMatch
猿匹配 —— 國(guó)內(nèi)首個(gè)程序猿非嚴(yán)肅婚戀交友應(yīng)用,讓我們一言不合就來場(chǎng)匹配吧??
介紹
首先說下中文名:為什么叫這個(gè)名字呢,因?yàn)檫@是一個(gè)程序猿(媛)之間匹配交流的應(yīng)用啊??
其實(shí)這是一個(gè)使用環(huán)信 IM 開發(fā)的一款開源聊天項(xiàng)目,涵蓋了時(shí)下流行的一些聊天元素,同時(shí)已將 IM 功能封裝為單獨(dú)庫,可以直接引用,方便使用
項(xiàng)目還處在初期階段,還有許多功能需要實(shí)現(xiàn),有興趣的可以一起來
項(xiàng)目資源均來自于互聯(lián)網(wǎng),如果有侵權(quán)請(qǐng)聯(lián)系我
下載體驗(yàn)
項(xiàng)目截圖











開發(fā)環(huán)境
項(xiàng)目基本屬于在最新的Android開發(fā)環(huán)境下開發(fā),使用Java8的一些新特性,比如Lambda表達(dá)式,
然后項(xiàng)目已經(jīng)適配Android6.x以上的動(dòng)態(tài)權(quán)限適配,以及7.x的文件選擇,和8.x的通知提醒等;
- Mac OS 10.14.4
- Android Studio 3.3.2
項(xiàng)目模塊兒
本項(xiàng)目包含兩部分:
- 一部分是項(xiàng)目主模塊
app,這部分主要包含了項(xiàng)目的業(yè)務(wù)邏輯,比如匹配、信息修改、設(shè)置等 - 另一部分是封裝成
library的vmim,這是為了方便大家引用到自己的項(xiàng)目中做的一步封裝,不用再去復(fù)雜的復(fù)制代碼和資源等,
只需要將vmim以module導(dǎo)入到自己的項(xiàng)目中就行了,具體使用方式參見項(xiàng)目app模塊兒;
功能與 TODO
IM部分功能
- [x] 鏈接監(jiān)聽
- [x] 登錄注冊(cè)
- [x] 會(huì)話功能
- [x] 置頂
- [x] 標(biāo)為未讀
- [x] 刪除與清空
- [x] 草稿功能
- [x] 消息功能
- [x] 下拉加載更多
- [x] 消息復(fù)制(僅文字類消息)
- [x] 消息刪除
- [x] 文本+Emoji消息收發(fā)
- [x] 大表情消息收發(fā)
- [x] 圖片消息
- [x] 查看大圖
- [ ] 保存圖片
- [x] 語音消息
- [x] 語音錄制
- [x] 語音播放(可暫停,波形待優(yōu)化)
- [x] 聽筒和揚(yáng)聲器播放切換
- [x] 語音實(shí)時(shí)通話功能
- [x] 視頻實(shí)時(shí)通話功能
- [x] 通話過程中的娛樂消息收發(fā)
- [x] 骰子
- [x] 石頭剪刀布
- [x] 大表情
- [x] 昵稱頭像處理(通過回調(diào)實(shí)現(xiàn))
App部分功能
- [x] 登錄注冊(cè)(包括業(yè)務(wù)邏輯和 IM 邏輯)
- [x] 匹配
- [x] 提交匹配信息
- [x] 拉取匹配信息
- [x] 聊天(這里直接加載 IM 模塊兒)
- [x] 我的
- [x] 個(gè)人信息展示
- [x] 上傳頭像
- [x] 設(shè)置昵稱
- [x] 設(shè)置簽名
- [x] 設(shè)置
- [x] 個(gè)人信息設(shè)置
- [x] 通知提醒
- [x] 聊天
- [ ] 隱私(隨業(yè)務(wù)部分一起完善)
- [ ] 通用(隨業(yè)務(wù)部分一起完善)
- [ ] 幫助反饋(隨業(yè)務(wù)部分一起完善)
- [x] 關(guān)于
- [x] 退出
- [ ] 社區(qū)
- [ ] 發(fā)布
- [ ] 評(píng)論
- [ ] 收藏
- [ ] 關(guān)注
發(fā)布功能
- [x] 多渠道打包
- [x] 簽名配置
- [x] 開發(fā)與線上環(huán)境配置
- [x] 敏感信息保護(hù)
配置運(yùn)行
- 首先復(fù)制
config.default.gradle到config.gradle - 配置下
config.gradle環(huán)信appkey以及bugly統(tǒng)計(jì)Id - 正式打包需要配置下簽名信息,同時(shí)將簽名文件放置在項(xiàng)目根目錄
參與貢獻(xiàn)
如果你有什么好的想法,或者好的實(shí)現(xiàn),可以通過下邊的步驟參與進(jìn)來,讓我們一起把這個(gè)項(xiàng)目做得更好,歡迎參與 ??
-
Fork本倉庫 - 新建
feature_xxx分支 (單獨(dú)創(chuàng)建一個(gè)實(shí)現(xiàn)你自己想法的分支) - 提交代碼
- 新建
Pull Request - 等待我們的
Review & Merge
關(guān)聯(lián)項(xiàng)目
服務(wù)器端由nodejs實(shí)現(xiàn),地址見這里 VMServer
VMServer
是為Android開源項(xiàng)目VMMatch項(xiàng)目(中文名猿匹配)實(shí)現(xiàn)的服務(wù)端
簡(jiǎn)介
這個(gè)項(xiàng)目包含兩部分
- 根目錄:服務(wù)邏輯及
API接口實(shí)現(xiàn) -
client目錄:前端界面,和服務(wù)器端代碼端放置在同一倉庫下(暫未實(shí)現(xiàn))
使用
簡(jiǎn)單介紹下運(yùn)行環(huán)境及部署方法
- 安裝
nodejs開發(fā)時(shí)使用的是v10.16.0版本 - 需要安裝
mongodb并啟動(dòng),開發(fā)使用版本4.0.10 - 下載項(xiàng)目到服務(wù)器,可以下載壓縮包,或者用
git clone命令 - 復(fù)制
config_default.js到config.js,可根據(jù)自己需要修改配置文件 - 安裝依賴
npm install
- 全局安裝pm2
npm install pm2 -g
- 運(yùn)行 vmshell.sh
加群交流
