# LQRWeChat: a WeChat 6.5.7 clone built on RongCloud, RxJava and MVP

> LQRWeChat is a Java Android project that reproduces the WeChat 6.5.7 interface and chat flow on top of the RongCloud IM SDK, with RxJava 2.0, Retrofit 2.0, MVP and Glide. It is a study project for Android developers, not a messaging product you can ship to users.

**GitLqr/LQRWeChat** — 本项目仿最新版微信6.5.7（除图片选择器外），基于融云SDK，使用目前较火的 Rxjava+Retrofit+MVP+Glide 技术开发。相比上个版本，加入发送位置消息，红包消息等功能。

- Repository: https://github.com/GitLqr/LQRWeChat
- Stars: 3,423 · Forks: 1,060
- Language: Java
- License: MIT
- Published: 2026-09-23 · Updated: 2026-09-23 · Language: en
- Canonical page: https://hysenlabs.com/projects/gitlqr-lqrwechat

## What LQRWeChat is for, and who it is actually written for

The README states the goal plainly: this is the author's second WeChat clone, imitating WeChat 6.5.7 except for the image picker, and it exists so that he could get comfortable with RxJava, Retrofit, MVP and lambda, and with using an SDK such as RongCloud. The stated audience is himself, plus developers who want to see those libraries wired together in a non-trivial app. It is not presented as a product. There is no homepage, no release artefacts beyond an app-debug.apk checked into the repository root, and no server code of its own. If you are looking for a chat backend to run, this is the wrong repository. If you want to read how a Chinese Android developer in 2017 structured a multi-screen IM client, the layout is legible: app/ holds the Android module, screenshots/ holds the GIFs referenced by the README, and the Gradle files sit at the top level next to gradlew and gradlew.bat.

## Feature surface: friends, groups, sessions, and the three things left out

The README enumerates the implemented features by area. Friends covers searching, sending and viewing requests, notes, deletion, QR-code adding and a new-friends screen. Groups covers inviting, removing, renaming yourself in a group, group QR codes, joining by scan, disbanding as owner and leaving as a member. Personal covers avatar viewing and upload, nickname changes and a personal QR code. Sessions is the largest block: pinning and unpinning, deleting, message recall, and sending text, image, video, voice, sticker, location and red packet messages. System covers login, registration, logging out of the current account and exiting the app. The README then lists what is not done: message notification, @ mentions, and the other party's typing indicator. Those three omissions matter more than the list suggests. Notification and typing state are the parts of a chat client that force you to think about connection lifecycle and background execution, and they are exactly the parts a reader cannot study here.

## How the pieces fit: RongCloud for transport, RxJava and Retrofit for the client layer

The architecture is a conventional Android MVP stack pointed at a third-party IM service. RongCloud supplies the messaging transport, and the README is explicit that the project depends on RongCloud's official server side as its backend. That server is written in Node.js, and the author notes he only writes Java backends, so adding features that need server work is, in his words, currently impossible. RxJava 2.0 and Retrofit 2.0 sit in the client for asynchronous work and network calls, MVP separates presenters from activities, and Glide handles image loading. Lambda is listed among the techniques used. On the data side the project pulls in LitePal, AutoLayout, BGARefreshLayout, BGAQRCode-Android and CameraView, plus seven libraries the author wrote himself, including an emoji library, an audio recorder, an image picker, a nine-grid image view and a wrapped RecyclerView. The practical consequence is that the interesting logic is spread across both the app module and those companion repositories, so reading LQRWeChat alone will not show you the emoji parser or the recorder implementation.

## Building and running LQRWeChat: source only, register your own account

There is no package to install and no published release. The README points to the repository as the source of the code and offers app-debug.apk in the repository root as a demo build. Because the app talks to RongCloud, you need your own RongCloud application credentials before a build will connect; the README says explicitly that no test account is provided and that you should register with your own phone number and log in. The README gives no build command, so the only thing to go on is the repository layout: gradlew and gradlew.bat sit at the top level next to build.gradle and settings.gradle, which is the standard Gradle wrapper arrangement for an Android project. The README does not document which Gradle, Android Gradle Plugin or compileSdk version the project expects, so read build.gradle and app/build.gradle before you run anything; an old Android project usually fails first on plugin and SDK versions, not on source code. Once it builds, install the debug APK on a device or emulator and register an account through the app's own registration screen, which is listed under the system features. What you should see is the WeChat-style main screen shown in screenshots/1.gif, with the session list, contacts and discovery tabs. The README does not document where RongCloud app keys are configured, so search the app module for the SDK initialisation call before you assume the build is broken when login fails.

## Limits you should weigh before writing a line of code

Three constraints stand out. First, the backend is not yours. The project uses RongCloud's server, and the author states that extending it beyond what the SDK offers is beyond him because he does not write Node.js. Any feature that needs server-side logic is therefore out of reach without leaving the project. Second, the red packet module does not use RongCloud's own implementation. The README says the author found RongCloud's red packet module troublesome and wrote his own instead. That is a candid admission that the most commercially interesting feature here is a local workaround, not a supported integration, and it will not interoperate with anything outside the app. Third, the project is a demo of the client, not of reliability. The README does not document tests, an error-handling strategy, or rollback behaviour, and it does not describe how the app behaves when the RongCloud connection drops. Treat the source as a reference for structure and library usage, not as a base that has been exercised under real traffic.

## If you want a runnable IM server instead

The README itself points elsewhere for that need: it links the HiBao IM application server (sealtalk-server) as something interested readers can look at. The difference in approach is fundamental. LQRWeChat is an Android client whose messaging layer is rented from RongCloud and whose server-side code you never see. A project like sealtalk-server aims at the other half of the problem, giving you server code you can run and modify. Choosing between them is choosing which side of the client-server line you want to own. If your goal is to learn RxJava, Retrofit and MVP on a realistic UI, LQRWeChat is the more direct example. If your goal is to control message storage, delivery and account management, an open server implementation is the only one of the two that can get you there.

## Maintenance, licence and the cost of upgrading

The repository is not archived and the last push was on 2026-06-29, so it is not abandoned, but nothing in the repository indicates a release process, a changelog or a versioning scheme; the README lists no releases. The practical upgrade cost is the Android toolchain itself. A project built around RxJava 2.0, Retrofit 2.0 and an older WeChat target will need Gradle, Android Gradle Plugin and compileSdk bumps before it opens cleanly in a current Android Studio, and each bump can surface API changes in the supporting libraries. The licence is MIT, which is permissive and places few obligations on reuse; the same MIT terms cover the code, not RongCloud's SDK, which you obtain and license separately from RongCloud under their own terms. Nothing here is legal advice, so read the LICENSE file and RongCloud's SDK agreement yourself. One more thing to check before publishing anything derived from this: the repository contains screenshots of the WeChat UI and of the author's payment QR codes, which are not code and carry their own considerations.

## Conclusion

Adopt LQRWeChat if you want a worked example of RxJava 2.0, Retrofit 2.0, MVP and Glide driving a real IM SDK, and you accept that the backend is RongCloud's own server, there is no test account, and message notification, @ mentions and typing indicators are listed as unfinished. Do not adopt it as the base of a product: the author states he relies on RongCloud's server side because he only writes Java backends, and the red packet module was written without RongCloud's own. Before you build anything, register a RongCloud account with your own phone number, open the app module build file to confirm the SDK credentials and compileSdk, and read the NimVersion branch to see whether the older NetEase Yunxin code answers a question the master branch leaves open.

## FAQ

### Does LQRWeChat come with a test account I can log in with?

No. The README states that no test account is provided and asks users to register with their own phone number and log in, because the author's own phone numbers are too few for broad testing.

### Which WeChat version does LQRWeChat imitate, and what is excluded?

The README says it imitates WeChat 6.5.7, with the image picker excluded from the imitation.

### What is not finished in LQRWeChat?

The README lists three unfinished items: message notification, the @ mention feature, and the other party's typing status indicator.

### What backend does LQRWeChat use?

It uses RongCloud's official server side as its backend service. The README notes that server is written in Node.js and that the author, who writes Java backends, cannot currently extend it.

### Is LQRWeChat's red packet feature built on the RongCloud module?

No. The README says the author found RongCloud's red packet module troublesome and chose not to use it, writing his own instead.

## Sources

- [GitLqr/LQRWeChat on GitHub](https://github.com/GitLqr/LQRWeChat)
- [Issues](https://github.com/GitLqr/LQRWeChat/issues)
- [License: MIT](https://github.com/GitLqr/LQRWeChat/blob/master/LICENSE)
- [README](https://github.com/GitLqr/LQRWeChat/blob/master/README.md)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/gitlqr-lqrwechat
