1、我是以极认真的态度来做这个项目,我不想把它做成一个只能展示给人看的Demo,经不起实际使用,只能远观不可亵玩, 那样没什么意思。
2、我不想使用假数据, 所以消息通讯使用环信SDK,保证聊天完全真实。同时对环信SDK进行了彻底封装,做到业务代码和环信完全隔离。
3、在整个开发过程中,我以媲美微信为目标, 同时参考支付宝、易信、陌陌和钉钉。以万为目标必能过千,这个项目还是有闪光点的。
4、整个开发过程就我一人,没有什么Word文档,我的产品文档就是赤裸裸的截屏,到现在为止微信截屏将近300张。
你们一定好奇,干吗要截屏这么多,因为微信的细节是做的最到位的,我想这也是微信一家独大的一个成功因素吧 。
5、我只专注于聊天模块,其他功能一概而过,点到为至。添加好友是项目完整性需要,消息搜索纯粹就是想换换大脑,做点别的。
6、每一个功能,我会把自己的APP和这五款APP在细节、完成度、bugfree这三个方面作对比,直到我满意为止。我说我的APP不比任何商用的差,不是我站在这张嘴胡咧咧,而是我在一个细节一个细节的对比中、完善中得出的:LLWeChat,不逊于任何人。
7、这个项目今年07-15开始,原来打算练练手就得了,没想到越做越认真, 做了3个月,国庆后完善了1个月。由于一个人精力实在有限,第一个版本到此结束。
8、我IOS是阅读开源项目入的门,这个项目躺在硬盘里也没什么用,凉出来希望对大家有所帮助。
要想媲美微信,就必须要雕琢细节,在细节上下功夫,做到位。否则细节上马马虎虎,媲美微信就是一句空话。
当一个会话有草稿时,应该在会话push动画开始时就完成如下工作:
读取最新13条消息,解析消息,获取消息缩略图,布局输入框并显示草稿最后一行,弹出键盘(尤其是第三方键盘),布局TableView。
当首次进入会话时,如何高效完成这些工作是一个很大的挑战。我花费了许多力气,但还是不太满意。
ImagePicker做了PhotoKit和AssetLibrary适配
1300条
,超出的消息采用TableView重用机制 130条
LLMessageCellManager
中更改 80M
LLMessageThumbnailManager
中更改 其他界面只实现了最简单的功能
细节1:弹出的ActionSheet在键盘之上
71M
),已包含在项目中 15.6M
),已包含在项目中 40M
1、切换到 Podfile
文件所在目录,运行 pod install
(当前版本Podfile内容为空)
2、使用高德地图,请到 高德官网注册APP Key
,然后替换掉 LLGDConfig.h
头文件中APPKey即可。
注册步骤为:注册成为开发者->点击右上角控制台->我的应用->创建新应用
3、运行 LLWeChat.xcworkspace
目录 | 说明 |
---|---|
General | 该目录包含和项目耦合性最低的通用模块,包括声音管理器、照片选取器、通用UI、Utilities等 |
Server |
该目录封装环信SDK,环信SDK一共封装成四个类: 1、LLClientManager:管理用户的注册、登陆、登出等 2、LLChatManager:管理会话消息的收发、本地消息的加载更新等 3、LLContactManager: 管理好友列表 4、LLSDKError:环信SDK错误码的封装 |
Data | 数据目录,包括Config、Cache、Model等 |
Client | 该目录是项目的主体,按照业务功能分类,分为会话、聊天、搜索、通讯录、设置等 |
产品设计上的一些想法,汇总在产品设计
下个版本实现如下功能:
1、小视频
2、语音、视频通话
3、消息搜索、上拉刷新
4、群聊
5、通讯录
1、删除stable分支,只保留master、develop两个分支,越简单越好。
2、适配IOS10,原项目在IOS10运行会直接奔溃。
本项目所有LL-开头的源码遵守MIT license. 本项目绝大部分资源归腾讯公司所有