{"id":15027500,"url":"https://github.com/codermikehe/wechat","last_synced_at":"2025-10-04T15:43:52.964Z","repository":{"id":47789839,"uuid":"102369090","full_name":"CoderMikeHe/WeChat","owner":"CoderMikeHe","description":"🔥 iOS 利用MVVM + RAC + ViewModel-Based Navigation来搭建微信(WeChat 7.0.0+)的整体基本架构，以及实现微信朋友圈、通讯录、下拉小程序、搜索等主要功能，代码规范惊为天人、注释详解令人发指、细节处理精益求精、核心功能配备文档、接近98%还原度的原生App视觉体验，代码不多，注释多。（持续更新，敬请期待，欢迎Star和Fork…）","archived":false,"fork":false,"pushed_at":"2021-04-16T03:04:34.000Z","size":29321,"stargazers_count":1192,"open_issues_count":25,"forks_count":262,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-05-23T16:24:42.972Z","etag":null,"topics":["contacts","ios-mvvm","ios13","moments","mvvm","mvvm-architecture","mvvm-framework","mvvm-rac-viewmodel","objective-c","reactivecocoa","reactivecocoa-mvvm","search","svg","wechat"],"latest_commit_sha":null,"homepage":"https://github.com/CoderMikeHe/WeChat","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CoderMikeHe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-09-04T14:15:40.000Z","updated_at":"2025-04-24T17:15:30.000Z","dependencies_parsed_at":"2022-08-31T07:00:26.191Z","dependency_job_id":null,"html_url":"https://github.com/CoderMikeHe/WeChat","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/CoderMikeHe/WeChat","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderMikeHe%2FWeChat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderMikeHe%2FWeChat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderMikeHe%2FWeChat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderMikeHe%2FWeChat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CoderMikeHe","download_url":"https://codeload.github.com/CoderMikeHe/WeChat/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CoderMikeHe%2FWeChat/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278335448,"owners_count":25970086,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-04T02:00:05.491Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["contacts","ios-mvvm","ios13","moments","mvvm","mvvm-architecture","mvvm-framework","mvvm-rac-viewmodel","objective-c","reactivecocoa","reactivecocoa-mvvm","search","svg","wechat"],"created_at":"2024-09-24T20:06:34.143Z","updated_at":"2025-10-04T15:43:52.948Z","avatar_url":"https://github.com/CoderMikeHe.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## iOS 微信开发\n\n\u003cimg src=\"https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/logo.png\" width=\"256px\" height=\"256px\" /\u003e\n\n### 👏 更新\n\n- 202010：增加 `我下拉视频动态` 模块。\n- 202007：增加 `微信下拉小程序` 模块。\n- 202006：增加 `微信/通讯录搜索` 模块。\n- 202005：增加 `通讯录` 模块。\n\n---\n\n### 🚄 下载\n\n- 若`pod install`很漫长或有问题，请戳百度网盘链接:链接:https://pan.baidu.com/s/1EoWYduzjS29Sqr5LiF6_Vg 密码:qmrr\u003cPS：不定期更新！！！\u003e\n\n---\n\n### ⭐️ 概述\n\n- 本工程主要是利用`MVVM + RAC + ViewModel-Based Navigation`的方式来搭建微信（WeChat 7.0.0+）的整体架构，希望能够以点带面，为`MVVM + RAC + ViewModel-Based Navigation`的这种设计架构提供多一种的实践参考，也为大家在学习`MVVM`提供一个学习的 Demo。\n\n- 本工程完全采用`Objective-C`语言编写，采用`Masonry` 和 `Xib`的两种控件布局方式；利用`cocoapods`管理第三方库，当然有些涉及到需要调整第三方库的 UI 时，采用的手动导入的方式；素材资源后期会慢慢和微信一样，完全采用`.svg`格式的图片资源来代替先前的`.png`资源，减少包体积。\n\n- 笔者希望初学者通过学习和实践这个项目，能够打开学习`ReactiveCocoa`的大门。当然同时也是抛砖引玉，取长补短，希望能够提供一点思路，少走一些弯路，填补一些细坑，在帮助他人的过程中，收获分享技术的乐趣。\n\n- 后期 UI 设计将完全参照最新的`微信(7.0.0+)`来开发，但是由于笔者时间有限，该项目的部分 UI，还是`微信(7.0.0-)`的 UI，大家切勿慌张，先请`Star`或`Fork`，谢谢。\n\n- 大家若想回顾`微信(7.0.0-)`前的版本，还请拉取 `Tag：v1.0.0`分支的代码即可，笔者帮你们找找回忆，但希望大家尽量拉取`master`最新的代码，毕竟`往者不可谏，来者犹可追`。\n\n- 本项目之前主要是用于团队内部交流使用，讲述利用`MVVM + RAC + ViewModel-Based Navigation`的方式来开发一款应用，介绍了其中使用技巧和实用技术，以及一些细节处理，实用为主，功能为辅。\n\n- 由于`2019年初--至今`，笔者为求生计，被迫转学`Vue`开发，老将不死，只会逐渐凋零，以致于渐渐冷落了这个`Repo`(PS：**可能没 Star，没动力，哈哈....**)，后面会将微信的主要功能补全，尽最大努力还原真实微信。\n\n### 🚀 模块\n\n- ✅ 登陆/注册/登出 (ps: UI 尚未适配，逻辑正常)\n\n- ✅ 我\n\n  - ✅ 个人信息\n  - ✅ 设置\n\n- ✅ 发现\n\n  - ✅ 朋友圈\n\n- ✅ 通讯录\n\n- ✅ 搜索\n\n- 微信首页(TODO...)\n  - ✅ 下拉小程序\n\n---\n\n### ❗️ 使用\n\n- [Cocoapods 安装教程](https://www.cnblogs.com/chuancheng/p/8443677.html)\n\n- 本`Demo`利用`Cocoapods`管理第三方框架，若第一次使用本项目，请使用终端`cd`到`Podfile`所在的文件夹中，如下图所示，然后执行下面两条命令即可，（PS：若你已经更新了本地仓库了，那么`pod repo update`不用执行，直接`pod install`即可）。\n\n  ![Usage.png](https://github.com/CoderMikeHe/WeChat/blob/master/WeChat/SnapShot/CocopodsUsage.png)\n\n  ```\n  1. pod repo update 或 pod repo update --verbose : 更新本地仓库\n  2. pod install : 下载新的库\n  ```\n\n- 如果你升级了 Mac 的系统时，并且当你的 Mac 系统升级为`high sierra`的时候，别忘记更新`cocoapods`。执行命令为：\n\n  ```\n  $ sudo gem update --system\n  $ sudo gem install cocoapods -n/usr/local/bin\n  ```\n\n- 本项目登录或注册，只支持`QQ账号`和`手机号`的登录或注册，必须保证`QQ`或`手机号`的有效性。密码或者验证码可以随便输入，但必须是：密码长度需要保证在`8~16`位，手机验证码必须保证是`6位有效数字`。\n\n* 分支策略\n\n  ```\n  master: 各个功能完整，且稳定，出现Bug优先处理\n  dev: 笔者的开发分支，意识流且不稳定，但知识或技术会超前 master 分支，还请按需加载。\n  ```\n\n---\n\n### ♥️ 期待\n\n- 如果在使用过程中遇到 BUG，希望你能 Issues 我，谢谢（或者尝试下载最新的代码看看 BUG 修复没有）。\n- 如果在使用过程中有任何地方不理解，希望你能 Issues 我，我非常乐意促使项目的理解和使用，谢谢。\n- 如果通过该工程的使用和说明文档的阅读，对您在开发中有一点帮助，码字不易，还请点击右上角`star`按钮，谢谢；\n- 简书地址：\u003chttp://www.jianshu.com/u/126498da7523\u003e\n\n---\n\n### ☎️ 主页\n\n|                   GitHub                   |                            掘金                             |                        简书                        |                     CSDN                     | 知乎                                                 |\n| :----------------------------------------: | :---------------------------------------------------------: | :------------------------------------------------: | :------------------------------------------: | ---------------------------------------------------- |\n| [点击进入](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) |\n\n---\n\n### 💰 拓展\n\n- [iOS 开发技术要点汇总](https://github.com/CoderMikeHe/MHDevelopExample_Objective_C)\n- [Flutter 版 WeChat](https://github.com/CoderMikeHe/flutter_wechat)\n- [Vue 版 WeChat](https://github.com/CoderMikeHe/vue-wechat)\n- [WeChat 资源汇总](https://github.com/CoderMikeHe/WeChat_Resource)\n\n---\n\n### 📖 文档\n\n- [iOS 基于 MVVM + RAC + ViewModel-Based Navigation 的微信开发（一）](http://www.jianshu.com/p/fd407a4ecb8e)\n- [iOS 基于 MVVM + RAC + ViewModel-Based Navigation 的微信开发（二）](http://www.jianshu.com/p/8c35fc02f47b)\n- [iOS 基于 MVVM 设计模式的微信朋友圈开发](https://www.jianshu.com/p/2f161f6a310f)\n- [iOS 实现微信朋友圈的最优方案参照](https://www.jianshu.com/p/395bac3648a7)\n- [iOS 玩转微信——通讯录](https://www.jianshu.com/p/7c2d74675808)\n- [iOS 玩转微信——下拉小程序](https://juejin.im/post/6856896741787205639)\n\n---\n\n### 🌈 预览\n\n###### 🏳️‍🌈 微信模块\n\n| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/gif/mainframe/ios_mainframe_pulldown_applet_page.gif) | 虚位以待 | 虚位以待 | 虚位以待 |\n| :------------------------------------------------------------------------------------------------------------------: | :------: | :------: | :------: |\n\n\n###### 🏳️‍🌈 通讯录模块\n\n| ![](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) | 虚位以待 | 虚位以待 |\n| :--------------------------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------------------------: | :------: | :------: |\n\n\n###### 🏳️‍🌈 搜索模块\n\n| ![](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) |\n| :----------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------: |\n| ![](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) |\n\n###### 🏳️‍🌈 发现模块\n\n| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/discover/ios_discover_page_0.png) | 虚位以待 | 虚位以待 | 虚位以待 |\n| :--------------------------------------------------------------------------------------------------------: | :------: | :------: | :------: |\n\n\n###### 🏳️‍🌈 朋友圈模块\n\n| ![](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) | 虚位以待 | 虚位以待 |\n| :------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------: | :------: | :------: |\n\n\n###### 🏳️‍🌈 我模块\n\n| ![](https://github.com/CoderMikeHe/WeChat_Resource/blob/master/snapshots/profile/ios_profile_page_0.png) | 虚位以待 | 虚位以待 | 虚位以待 |\n| :------------------------------------------------------------------------------------------------------: | :------: | :------: | :------: |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodermikehe%2Fwechat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodermikehe%2Fwechat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodermikehe%2Fwechat/lists"}