WeChat employees: App has been rewritten for native HarmonyOS Next with a new set of technical frameworks
An employee of Tencent's WXG (WeChat Business Group) today, released a long article summarizing the process of launching the WeChat pure-blooded Hongmeng version of the App.
It has been previously reported on January 9 that the native WeChat app officially landed on the mobile phone Huawei App Market (App Gallery) today, with the version number 1.0.3.42 for HarmonyOS Next.
Today, the native version of WeChat Hongmeng is officially on the app store.
There are some things I want to say and make a summary of this time.
Now pay attention to the zero frame start, that is, to talk about the most critical, do not preface all kinds of foreshadowing, and finally carry private goods.
But the issue of identity and perspective, which I am going to talk about today, may be private.
The eldest brother who is responsible for the development of Hongmeng WeChat is Lao Guangyan, one of the members of the group who developed WeChat 1.0 that year.
In other words, his time in the goose factory is longer than the history of WeChat.
In 1.0 of that year, the eldest brother was responsible for Symbian (Symbian) WeChat, and the former Nokia, in terms of brand and share, should far surpass today's Apple.
But as a "primitive operating system" that was far less open than the current iOS and Android, doing things on Symbian was slash-and-burn.
The eldest brother led the team to study hard, and he forced his hands to rub out the circle of friends and the public account on Saipan.
Unexpectedly, the sudden collapse of a giant like Nokia was completely undivided by human will.
After that, the eldest brother led the team to make smart watches, car machines, including the earliest Linux PC WeChat.
Different brands, different terminals, and more fragmented ecosystems than mobile phones are in great need of a cross-platform core to build the most important and basic capabilities into a reusable infrastructure.
I just watched the popular "Alita: Battle Angel" with the team, and the eldest brother said that the cross-platform kernel we just established is called "Alita Core".
Alita, handsome and able to play.
Alita's core has also become the infrastructure for WeChat's cross-platform development.
WeChat Hongmeng version also benefits from this.
Such a resume is actually destined in the dark.
On March 21, 2024, a simple and formal notice came, everyone has decided, Hongmeng WeChat, you take the lead.
1. Build infrastructure: From the first day, Hongmeng WeChat was built in accordance with the "Three Gorges Dam".
"HarmonyOS NEXT is a completely new technology framework, and the programming language is the unique ArkTS language, which means that all apps have to be completely rewritten."
I often say this to different friends.
However, for the WeChat team, learning a new programming language may be one of the least difficult things to do in the entire adaptation work.
On a brand-new platform, it is a greater challenge to make an application that needs to support a large number of users, high concurrency communication, and at the same time have multiple large functional modules such as payment, applet, and video platform, and also meet the stability of extremely high-frequency use.
It's also my biggest personal item in the whole article, and I'll probably bring it up again and again.
Some people also say that the original HarmonyOS will only start public beta in October 2024, why is there a large number of users?
I remember that the theme of the original Hongmeng press conference was called, "When the mountains are full of flowers", the power of belief is very strong.
WeChat's technical team relies on a fanatical belief in technology.
iOS, Android, WeChat for many years, they have already rooted some beliefs in the team: such as a large system to do small, make everything scalable, must have basic components, grayscale release, fine monitoring, rapid response, everything is to ensure that the system can respond to product needs agilely under the premise of stability.
WeChat's native HarmonyOS team, as soon as it was formed, has a scale comparable to that of iOS and Android client development teams.
"Today, these people are doing Hongmeng WeChat, and a few years later, these people should still be doing it." Big brother's leader, another big tech brother I respect very much, said.
2. Building infrastructure and fixing bugs is a kind of practice
Alita kernel has made great contributions in the process of developing Hongmeng WeChat.
But this is only the first step in infrastructure development.
On the first day of a high-rise building, the foundation must be laid deep enough and firm enough.
In the second step, it is also necessary to design the architecture of the HarmonyOS WeChat client and write the documentation of each module, so that the business in the second and third stages can be developed efficiently after entering the market.
This step is extremely difficult, not only to quickly meet business requirements, but also to consider the decoupling between services and have long-term high scalability.
That is to say, let WeChat's interdependent modules technically minimize their dependence on each other, so as to avoid the failure of one module affecting other functions. At the same time, there is a framework that is extremely scalable.
It was also at this time that the eldest brother led the team to carry out highly frequent internal and external communication.
Externally, we had frequent online and offline exchanges with Huawei's technical team. Internally, push each business team to port in their own base libraries.
From building infrastructure to the present day, bug fixing has always been an action that has always accompanied the development process.
There's a classic angry programmer's question, "Why do programmers keep writing bugs, can't they just write them all at once?" ”
Programmers also engaged in all sorts of "quibbles", from answering questions by analogy, gardeners and weeds, to strange customers buying meat buns, to betting that there would be no bugs as long as the product manager never added new features.
In fact, there are only a few core points: requirements often change, the system is too complex, there are many unexpected situations, time and cost are limited, and "people" will always make mistakes.
When HarmonyOS meets WeChat, such problems will be doubled, and the two complex systems that move forward at high speed and affect each other make bug fixing like a practice.
In June, in the process of adapting to a version of HarmonyOS NEXT.0.0.6x, there was a bug that often caused WeChat flashbacks in development.
n
The two teams worked together for more than a week without progress, and the eldest brother was thinking about the bug when he slept.
In the end, I even found a problem from one of the underlying APIs of the system: the same code logic is fine on iOS and Android, but it will encounter problems on HarmonyOS.
Once a problem is identified, it can be solved quickly.
A few months later, when I first heard about this experience, I actually recalled the story of Edison experimenting with filament that I watched as a child.
3. Invite internal testing and early adoption
During the 11th holiday in 2024, all members of the HarmonyOS WeChat development team will work seven extra days.
On October 8th, the day of the official public beta of the original HarmonyOS, Hongmeng WeChat also began to invite internal testing.
On October 12, the beta version of WeChat was launched in the "App Trial" section of the HarmonyOS App Store, and users were the first to download and test.
But if from the perspective of an ordinary HarmonyOS user, in less than a month from October 12th to November 6th, it may be the most painful day to "grab" WeChat.
There are a few questions that have been lingering during this time, and some explanations have been made before and after, and this time I will talk about them together, so that everyone can understand the ins and outs.
1) Why do you want to use a limited beta method and not download it directly for everyone?
Back to my private goods at the beginning: on a new platform, it is a great challenge to make an application that needs to support a large number of users, high concurrency communication, and at the same time have multiple large functional modules such as payment, applet, and video platform, and also meet the stability of extremely high-frequency use.
Therefore, using the internal testing → to find bugs→ fix bugs→ and increase the internal testing method is a way that is more in line with the laws of software development.
On the native HarmonyOS, many apps have adopted a similar approach.
2) Why can't you announce a fixed time, or put it at irregular times, sometimes even late at night?
Let's look back at the previous private goods: two complex systems that move forward at high speed and affect each other, making development feel like a practice.
Here's an example of me watching deeply:
At around 19:20 one night, the WeChat payment team of the project team found that the latest trial version of WeChat, which was about to be put on the shelves, had a bug in the transfer entrance of a small number of users, and there was no response after clicking.
The WeChat Pay team and the basic technical team of the project team began to troubleshoot the problem synchronously.
At 20:15, the customer service team synchronized the background customer complaints.
At 20:57, the WeChat payment team preliminarily positioned that the problematic code was caused by today's merger, which is suspected to be a problem with LiteApp (a cross-terminal framework, WeChat transfer is the first function of Hongmeng to use this framework).
At 21:31, to further locate the problem, in some extreme cases, the system prompts that the file cache write of LiteApp is not enough permission, contact the Huawei technical team to locate it together.
At 21:47, the payment technology team completed the problem fix, and after merging, submitted the version to the test team.
At 22:32, the payment technology team reviewed the problem and proposed follow-up improvement measures: improving the rigor of testing and development.
At 22:41, the WeChat basic technical team submitted the new version of the beta package to the Huawei App Store.
At 22:54, the trial version was submitted to the Huawei App Store for review.
At 23:30, the latest trial version of WeChat passed the review, put on the trial area, and fixed the transfer problem.
3) Why during that time, while I couldn't grab it, someone sold the installation package on the second-hand platform?
To put it simply, it was because the app store did not do strict authentication, and someone used technical means to grab the installation package from the store to install it, and even taught this method to make a profit. Soon, Huawei also fixed this problem.
4) Why do you always snatch it up in an instant?
For a period of time, the number of places that actually logged in to WeChat was far lower than the number of places. Investigation again found that someone used a "script" similar to ticket-grabbing software to brush the volume of the app store, which also triggered the store's security mechanism and intercepted most of the demand.
5) Then why can't we collect the list of users who are willing to participate in the beta test in advance, and send them the beta version in a targeted manner, so that others use the stable version, so they don't have to grab it again and again?
That's really the way we want it to be. Everyone "grabs" WeChat, and the more essential reason is that they need to use WeChat.
However, there were several objective constraints at the time: a stable version with all the necessary basic features required multiple iterations; HarmonyOS has a relatively large limit on the upper limit of the number of beta places for an app, and the number of users required for the stability of a new feature is far greater than this.
4. "Everyone's keyboard is smoking"
During this time, I also gained the reputation of dick hair.
Of course, I understand that this is more of an emotional catharsis.
I'm not a developer, but from the in-depth onlookers, I can feel the difficulty of the two teams.
Once joked on Weibo, "I said before that my development colleagues were smoking, but it's not an exaggeration." From the feedback of my development colleagues, I can feel that the keyboard of the HarmonyOS development classmates should not be comfortable. ”
The next day happened to be October 24th, Programmer's Day, Mr. Bruce Lee, CTO of Huawei terminals, transferred this Weibo and wrote:
Today is the 1024 Programmer's Day, we would like to pay tribute to the majority of HarmonyOS developers, and also thank the majority of users for their feedback, everyone's valuable opinions are very helpful to the improvement and promotion of the HarmonyOS ecosystem. As @客村小蒋 said, it is the common goal of all manufacturers and HarmonyOS to find and fix problems as soon as possible and bring the ultimate experience to users. Building the HarmonyOS ecosystem is a daunting task, and even though some progress has been made, there are still many challenges. Huawei has worked with tens of thousands of ecosystem partners and hundreds of thousands of people in China, demonstrating strong cooperation. Now a large number of HarmonyOS native apps are on the shelves every day, and the iteration is rapid, and some even iterate a version every day. HarmonyOS NEXT was officially released two days ago, and we will continue to work with all manufacturers and developers to provide more users with their feedback
5. The stable version is available for unlimited downloads, and the beta version is carried out simultaneously
On November 6, after a month of high-speed iteration, a stable version with improved basic functions was available.
After an extremely efficient online meeting with the Huawei team, the upper limit of the number of closed beta places has also been greatly increased.
Collect a list of users who are willing to participate in the beta test, send them a beta version, and others use the stable version of the solution, which is finally feasible.
And then it's ongoing: new beta invites closed beta → bug fixes → bug fixes → expanded beta → updates to the stable → ......
Until today's official version is launched, development, product, testing, and ecological cooperation ...... All the teams involved in this project did not let up for a day.
The official version is the beginning of a new one that continues to move forward.
6. It is the fate of the expresser to be misunderstood, but it should not be the builder
There was a sentence in my Weibo profile called "Create entropy reduction, try to dispel some misunderstandings".
Very pretending x.
"Entropy decrease" is the opposite of "entropy increase". What is called "entropy increase", my understanding is that the world is a huge chaotic body that is constantly transforming from order to disorder.
Being misunderstood is the fate of any system or object.
However, if there are constantly external forces to exert influence, at least it can slow down the transformation of order into disorder.
Later, I consulted one of my friends, one of the most literate Harvard Ph.D., and he told me that "entropy reduction" may not be able to be made, or better said, "driving entropy reduction".
In reality, although I am introverted, I am a talkative person on the Internet, and although I am called a mouthful, I am glad that there should still be some friends who have a new judgment because they have more understanding.
Otherwise, there shouldn't be so many people calling me pretty boy at the same time
It's a lot easier to recall now, but during that time when you needed to "grab" WeChat,
The level of my personal scolding is also something I have never experienced,
When it was serious, I thought I was strong inside, and my sleep was even affected a little.
As a person who did not actually participate in the development and was just a bystander,
There are already such large psychological fluctuations.
I just want to find a suitable opportunity.
Tell me some stories of my colleagues developing Hongmeng WeChat,
Give more perspectives to more friends.
Thank you for your continued companionship and feedback.