Mobile Development 10 min read

JD App Adaptation to OpenHarmony: Business Complexity, Technology Stack, and JD MCube Dynamic Framework

The article details JD's extensive effort to adapt its massive e‑commerce app to OpenHarmony, analyzing business diversity, a multi‑layered technology stack, the cross‑platform Aotu Taro solution, the native JD MCube dynamic framework, UI‑framework comparisons, implementation steps, results, and future plans.

JD Tech
JD Tech
JD Tech
JD App Adaptation to OpenHarmony: Business Complexity, Technology Stack, and JD MCube Dynamic Framework

Background : On July 27, 2022, JD presented its OpenHarmony adaptation at the OpenAtom Global Open Source Summit, introducing the JD App adaptation project and highlighting the cross‑platform Aotu Taro framework and the native JD MCube dynamic framework.

JD App Scale : The app serves over 580 million active users, with more than 3 000 business requirements per release, involving thousands of developers across multiple cities. Its technology stack is split into native (55 %), H5 & mini‑programs (40 %), and a small portion of RN/Flutter (5 %).

Aotu Taro : An industry‑leading cross‑platform solution that enables rapid development, debugging, and deployment of OpenHarmony applications, supported by the CrossPlatformUI‑SIG.

JD MCube : JD’s proprietary native dynamic framework covering nearly 50 % of core business flows, currently co‑developed internally and not yet open‑sourced.

Adaptation Analysis : The article examines business diversity and technology‑stack diversity, concluding that rewriting millions of lines of native code is infeasible; instead, leveraging Aotu Taro and JD MCube can dramatically reduce migration effort.

OpenHarmony UI Paradigms :

Class‑Web UI: Uses HML + JS + CSS, requires a custom diff mechanism for incremental updates.

Declarative UI: Based on Ets (TypeScript‑like) language, similar to Flutter, with automatic UI updates via state management.

C++ API: Low‑level API not yet exposed to developers; considered unstable for production.

After consulting OpenHarmony experts, JD selected the Declarative UI approach for its implementation.

Implementation Steps :

Outer container (Column) receives a template parsing command, processes the template in a worker thread, and builds a ViewNode tree.

Each ViewNode is mapped to a specific view parser (e.g., FlexboxLayout, TextView) that creates or updates the corresponding view.

Properties are assigned via the same code path for creation and update; the difference lies in whether the view is added to the container.

The process (template → data binding → view mapping → render) was demonstrated with a demo that rendered a list item on an OpenHarmony device.

Results and Future Work : The demo proves JD MCube can run on OpenHarmony, but further work is needed to align features with Android/iOS, improve expression parsing, binary codec, event handling, lifecycle management, and optimize template parsing and view‑creation performance.

Future Planning : JD aims to continue advancing JD MCube and Aotu Taro adaptations as low‑cost solutions for large‑scale app migration to OpenHarmony, supporting the broader ecosystem.

mobile developmentCross-Platformdynamic UIAotu TaroJD MCubeOpenHarmonyJD App
JD Tech
Written by

JD Tech

Official JD technology sharing platform. All the cutting‑edge JD tech, innovative insights, and open‑source solutions you’re looking for, all in one place.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.