Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/codermikehe/wechat
🔥 iOS 利用MVVM + RAC + ViewModel-Based Navigation来搭建微信(WeChat 7.0.0+)的整体基本架构,以及实现微信朋友圈、通讯录、下拉小程序、搜索等主要功能,代码规范惊为天人、注释详解令人发指、细节处理精益求精、核心功能配备文档、接近98%还原度的原生App视觉体验,代码不多,注释多。(持续更新,敬请期待,欢迎Star和Fork…)
https://github.com/codermikehe/wechat
contacts ios-mvvm ios13 moments mvvm mvvm-architecture mvvm-framework mvvm-rac-viewmodel objective-c reactivecocoa reactivecocoa-mvvm search svg wechat
Last synced: 6 days ago
JSON representation
🔥 iOS 利用MVVM + RAC + ViewModel-Based Navigation来搭建微信(WeChat 7.0.0+)的整体基本架构,以及实现微信朋友圈、通讯录、下拉小程序、搜索等主要功能,代码规范惊为天人、注释详解令人发指、细节处理精益求精、核心功能配备文档、接近98%还原度的原生App视觉体验,代码不多,注释多。(持续更新,敬请期待,欢迎Star和Fork…)
- Host: GitHub
- URL: https://github.com/codermikehe/wechat
- Owner: CoderMikeHe
- License: mit
- Created: 2017-09-04T14:15:40.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-04-16T03:04:34.000Z (almost 4 years ago)
- Last Synced: 2025-01-27T06:09:14.555Z (6 days ago)
- Topics: contacts, ios-mvvm, ios13, moments, mvvm, mvvm-architecture, mvvm-framework, mvvm-rac-viewmodel, objective-c, reactivecocoa, reactivecocoa-mvvm, search, svg, wechat
- Language: Objective-C
- Homepage: https://github.com/CoderMikeHe/WeChat
- Size: 28 MB
- Stars: 1,189
- Watchers: 24
- Forks: 260
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## iOS 微信开发
### 👏 更新
- 202010:增加 `我下拉视频动态` 模块。
- 202007:增加 `微信下拉小程序` 模块。
- 202006:增加 `微信/通讯录搜索` 模块。
- 202005:增加 `通讯录` 模块。---
### 🚄 下载
- 若`pod install`很漫长或有问题,请戳百度网盘链接:链接:https://pan.baidu.com/s/1EoWYduzjS29Sqr5LiF6_Vg 密码:qmrr
---
### ⭐️ 概述
- 本工程主要是利用`MVVM + RAC + ViewModel-Based Navigation`的方式来搭建微信(WeChat 7.0.0+)的整体架构,希望能够以点带面,为`MVVM + RAC + ViewModel-Based Navigation`的这种设计架构提供多一种的实践参考,也为大家在学习`MVVM`提供一个学习的 Demo。
- 本工程完全采用`Objective-C`语言编写,采用`Masonry` 和 `Xib`的两种控件布局方式;利用`cocoapods`管理第三方库,当然有些涉及到需要调整第三方库的 UI 时,采用的手动导入的方式;素材资源后期会慢慢和微信一样,完全采用`.svg`格式的图片资源来代替先前的`.png`资源,减少包体积。
- 笔者希望初学者通过学习和实践这个项目,能够打开学习`ReactiveCocoa`的大门。当然同时也是抛砖引玉,取长补短,希望能够提供一点思路,少走一些弯路,填补一些细坑,在帮助他人的过程中,收获分享技术的乐趣。
- 后期 UI 设计将完全参照最新的`微信(7.0.0+)`来开发,但是由于笔者时间有限,该项目的部分 UI,还是`微信(7.0.0-)`的 UI,大家切勿慌张,先请`Star`或`Fork`,谢谢。
- 大家若想回顾`微信(7.0.0-)`前的版本,还请拉取 `Tag:v1.0.0`分支的代码即可,笔者帮你们找找回忆,但希望大家尽量拉取`master`最新的代码,毕竟`往者不可谏,来者犹可追`。
- 本项目之前主要是用于团队内部交流使用,讲述利用`MVVM + RAC + ViewModel-Based Navigation`的方式来开发一款应用,介绍了其中使用技巧和实用技术,以及一些细节处理,实用为主,功能为辅。
- 由于`2019年初--至今`,笔者为求生计,被迫转学`Vue`开发,老将不死,只会逐渐凋零,以致于渐渐冷落了这个`Repo`(PS:**可能没 Star,没动力,哈哈....**),后面会将微信的主要功能补全,尽最大努力还原真实微信。
### 🚀 模块
- ✅ 登陆/注册/登出 (ps: UI 尚未适配,逻辑正常)
- ✅ 我
- ✅ 个人信息
- ✅ 设置- ✅ 发现
- ✅ 朋友圈
- ✅ 通讯录
- ✅ 搜索
- 微信首页(TODO...)
- ✅ 下拉小程序---
### ❗️ 使用
- [Cocoapods 安装教程](https://www.cnblogs.com/chuancheng/p/8443677.html)
- 本`Demo`利用`Cocoapods`管理第三方框架,若第一次使用本项目,请使用终端`cd`到`Podfile`所在的文件夹中,如下图所示,然后执行下面两条命令即可,(PS:若你已经更新了本地仓库了,那么`pod repo update`不用执行,直接`pod install`即可)。
![Usage.png](https://github.com/CoderMikeHe/WeChat/blob/master/WeChat/SnapShot/CocopodsUsage.png)
```
1. pod repo update 或 pod repo update --verbose : 更新本地仓库
2. pod install : 下载新的库
```- 如果你升级了 Mac 的系统时,并且当你的 Mac 系统升级为`high sierra`的时候,别忘记更新`cocoapods`。执行命令为:
```
$ sudo gem update --system
$ sudo gem install cocoapods -n/usr/local/bin
```- 本项目登录或注册,只支持`QQ账号`和`手机号`的登录或注册,必须保证`QQ`或`手机号`的有效性。密码或者验证码可以随便输入,但必须是:密码长度需要保证在`8~16`位,手机验证码必须保证是`6位有效数字`。
* 分支策略
```
master: 各个功能完整,且稳定,出现Bug优先处理
dev: 笔者的开发分支,意识流且不稳定,但知识或技术会超前 master 分支,还请按需加载。
```---
### ♥️ 期待
- 如果在使用过程中遇到 BUG,希望你能 Issues 我,谢谢(或者尝试下载最新的代码看看 BUG 修复没有)。
- 如果在使用过程中有任何地方不理解,希望你能 Issues 我,我非常乐意促使项目的理解和使用,谢谢。
- 如果通过该工程的使用和说明文档的阅读,对您在开发中有一点帮助,码字不易,还请点击右上角`star`按钮,谢谢;
- 简书地址:---
### ☎️ 主页
| GitHub | 掘金 | 简书 | CSDN | 知乎 |
| :----------------------------------------: | :---------------------------------------------------------: | :------------------------------------------------: | :------------------------------------------: | ---------------------------------------------------- |
| [点击进入](https://github.com/CoderMikeHe) | [点击进入](https://juejin.im/user/59128ee21b69e6006868d639) | [点击进入](https://www.jianshu.com/u/126498da7523) | [点击进入](https://blog.csdn.net/u011581932) | [点击进入](https://www.zhihu.com/people/codermikehe) |---
### 💰 拓展
- [iOS 开发技术要点汇总](https://github.com/CoderMikeHe/MHDevelopExample_Objective_C)
- [Flutter 版 WeChat](https://github.com/CoderMikeHe/flutter_wechat)
- [Vue 版 WeChat](https://github.com/CoderMikeHe/vue-wechat)
- [WeChat 资源汇总](https://github.com/CoderMikeHe/WeChat_Resource)---
### 📖 文档
- [iOS 基于 MVVM + RAC + ViewModel-Based Navigation 的微信开发(一)](http://www.jianshu.com/p/fd407a4ecb8e)
- [iOS 基于 MVVM + RAC + ViewModel-Based Navigation 的微信开发(二)](http://www.jianshu.com/p/8c35fc02f47b)
- [iOS 基于 MVVM 设计模式的微信朋友圈开发](https://www.jianshu.com/p/2f161f6a310f)
- [iOS 实现微信朋友圈的最优方案参照](https://www.jianshu.com/p/395bac3648a7)
- [iOS 玩转微信——通讯录](https://www.jianshu.com/p/7c2d74675808)
- [iOS 玩转微信——下拉小程序](https://juejin.im/post/6856896741787205639)---
### 🌈 预览
###### 🏳️🌈 微信模块
| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/gif/mainframe/ios_mainframe_pulldown_applet_page.gif) | 虚位以待 | 虚位以待 | 虚位以待 |
| :------------------------------------------------------------------------------------------------------------------: | :------: | :------: | :------: |###### 🏳️🌈 通讯录模块
| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/contacts/ios_contacts_page_0.png) | ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/contacts/ios_contacts_page_1.png) | 虚位以待 | 虚位以待 |
| :--------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------: | :------: | :------: |###### 🏳️🌈 搜索模块
| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/search/ios_search_page_0.png) | ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/search/ios_search_page_1.png) | ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/search/ios_search_page_2.png) | ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/search/ios_search_page_3.png) |
| :----------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: |
| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/search/ios_search_page_4.png) | ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/search/ios_search_page_5.png) | ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/search/ios_search_page_6.png) | ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/search/ios_search_page_7.png) |###### 🏳️🌈 发现模块
| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/discover/ios_discover_page_0.png) | 虚位以待 | 虚位以待 | 虚位以待 |
| :--------------------------------------------------------------------------------------------------------: | :------: | :------: | :------: |###### 🏳️🌈 朋友圈模块
| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/moments/ios_moments_page_0.png) | ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/moments/ios_moments_page_1.png) | 虚位以待 | 虚位以待 |
| :------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------: | :------: | :------: |###### 🏳️🌈 我模块
| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/profile/ios_profile_page_0.png) | 虚位以待 | 虚位以待 | 虚位以待 |
| :------------------------------------------------------------------------------------------------------: | :------: | :------: | :------: |