【原始碼分享】讓黑馬程式設計師逆襲的仿騰訊 IM 專案

weixin_34146805發表於2017-09-12
5205232-9f087a5ae0e081f7.png
微信截圖_20170911182154.png

FanChat,一個基於黑馬程式設計師的即時通訊專案,使用MVP模式,整合了環信SDK和Bmob後端雲。

1基本功能

註冊登入,退出登入,聯絡人列表,新增好友,刪除好友,收發訊息,訊息提醒等。

2介面效果

5205232-d79a57dd22c8c5e2
undefined

Splash介面

5205232-da5c4169aad00698
undefined

登入介面

5205232-8545c1189ea1394d
undefined

主介面

5205232-e11626de67cfca0b
undefined

聯絡人介面

5205232-f26388cf551ce95b
undefined

動態許可權管理介面

5205232-2365122998749d10
undefined

動態介面

5205232-e17f62f0fbfeafef
undefined

聊天介面

5205232-c5032ce97d88b966
undefined

新增好友介面

3技術亮點

✔CardView的使用:繼承自FrameLayout, 是Material Design裡面的卡片設計,帶有圓角和陰影效果。CardView效果非常好看,但也不能濫用, 比如:

Right 和 Wrong

5205232-1620664bca7d0b5a

✔ContactListItemView

5205232-5ed2f84c906e49a2

運用模組化的思想,將聯絡人的列表項抽取成一個獨立的自定義組合式控制元件ContactListItemView。ContactListItemView只需傳入一個 與之對應的資料模型ContactListItem即可完成渲染。

聯絡人是否在同一個組

5205232-e3d53dd34a8c6785

當多個聯絡人的首字元相同時,只有第一個ContactListItemView顯示首字元,後續首字元相同的ContactListItemView均不顯示首字元。 在ContactListItem中宣告一個布林型變數showFirstLetter來標記是否顯示首字元。該變數在建立ContactListItem時賦值。

5205232-00e22e4859fb7cd4

✔包的建立
●adapter 存放介面卡

●app 存放常量類,Application類以及一些app層級的全域性類

●database 資料庫相關類

●event EventBus使用的事件類

●factory 工廠類

●model 資料模型

●presenter MVP模型中的Presenter類

●ui 存放activity和fragment

●utils 工具類

●view MVP模型中的View類

●widget 自定義控制元件

✔基類的建立
●BaseActivity

●BaseFragment

原始碼領取方式:
長按識別下方二維碼>關注公號>回覆“is”即能拿到!

5205232-a9c06063a9ac2d24

繼續閱讀

5205232-6d808b2a284df018


5205232-5dc8b23886d4bd16

相關文章