Mobile Development 11 min read

JDFlutter: JD's Cross-Platform Mobile Development Framework Based on Flutter

This article introduces JDFlutter, JD's cross-platform mobile development framework built on Flutter, detailing its architecture, integration with existing Android/iOS projects, debugging capabilities, data statistics, exception monitoring, degradation mechanisms, and future outlook as part of JD's dual-engine ARES platform.

JD Retail Technology
JD Retail Technology
JD Retail Technology
JDFlutter: JD's Cross-Platform Mobile Development Framework Based on Flutter

JDFlutter is a next-generation cross-platform development framework launched by JD's Shared Technology Department-Multi-End Fusion Technology Department, designed to be quickly integrated into existing Android/iOS projects to enable rapid Flutter business development.

The article begins with an introduction to Flutter, describing it as Google's open-source cross-platform SDK released in 2018, supporting Android and iOS with high performance and fidelity, and notes its similarity to native apps through Material and Cupertino widgets.

It compares Flutter to other cross-platform solutions like Html, React Native, and Weex, highlighting Flutter's independent Skia rendering engine and platform‑independent Widget components that ensure consistent cross‑platform experience.

JDFlutter positioning: for online business package upgrades or hotfixes, JDReact is preferred; otherwise Flutter is chosen. The article outlines JDFlutter's three‑layer architecture: the底层 (base layer) providing grayscale, degradation, and data statistics; the middle layer as the core development package JDFlutter‑core‑widgets (UI component library following JD design) including Button, CheckBox, Dialog, Image, Loading, NavgationBar, Text, PullToRefresh, and JDFlutter‑core‑lib (Dart‑native bridge for networking, device, navigation, tracking, sharing, exception reporting); and the top layer as the access layer handling business integration and Android/iOS client integration.

Integration steps include creating a Flutter module, adding it as a dependency to the host Android/iOS project, modifying compile scripts so that developers without a Flutter environment can still build, and managing Flutter business code via git submodule.

Debugging is facilitated through a MarsWorks backend JDFlutter debug feature: installing an APK, connecting the phone, clicking “启动 Flutter 调试”, and using Reload for hot reload, with future support for iOS simulators.

A demo shows the JDFlutter‑revamped sign‑in ranking page, which offers smooth operation and a user experience nearly indistinguishable from native.

Data statistics cover business data (DAU, UV, PV) and exception data; three schemes are presented—native entry point, Flutter main route, and Flutter business page—with JDFlutter already supporting the first two.

Exception monitoring collects anomalies with business name and jump‑in parameters for targeted Dart code analysis, triggering degradation when a business exception rate spikes.

Degradation contingency uses a backend‑downloaded degradation pool containing JDFlutter business name, corresponding JDReact name, and JDReact H5 URL; the fallback chain tries JDReact, then H5 page, then a unified JDFlutter error page.

The article concludes with outlook: JDReact remains JD's main cross‑platform solution with over 140 businesses integrated, while JDFlutter serves as a second engine in the ARES platform, expected to gain more businesses and scenarios.

debuggingFlutterMobile Developmentarchitecturedata-statisticsJDFlutterJDReact
JD Retail Technology
Written by

JD Retail Technology

Official platform of JD Retail Technology, delivering insightful R&D news and a deep look into the lives and work of technologists.

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.