How DingTalk’s Dutter Framework Leverages Flutter for Cross‑Platform Efficiency
This article details DingTalk’s Dutter framework—built on Flutter—to unify development across four client platforms, outlining its design, current progress, cross‑platform communication methods, desktop integration challenges, and future roadmap aimed at boosting productivity and performance.
Project Overview
Dutter (DingTalk Flutter) is a cross‑four‑platform framework built on Flutter to improve development efficiency and address resource imbalance in DingTalk’s client side.
Current Progress
The framework has been integrated on all four DingTalk platforms and is used in several pilot projects such as schedule sign‑in and panel features.
Project Background
The initiative aims to boost side‑client development efficiency and keep up with Flutter technology.
Side‑client development efficiency.
Adopt and follow Flutter technology.
Efficiency Gains
By consolidating code across platforms, a single implementation can serve multiple devices, dramatically increasing productivity.
Flutter vs Other Cross‑Platform Solutions
Compared with mini‑programs and H5, Flutter offers near‑native performance and a self‑drawing engine that better fits DingTalk’s “specialized and refined” requirements.
Architecture Design
The Dutter ecosystem consists of three main suites:
Dutter Runtime – core runtime built on Flutter, providing container components, API plugins, and modular business framework.
Dutter Dev Kit – development kit that solves cross‑platform support and efficiency for teams using different tech stacks.
Dutter OPS Kit – operations kit handling product release, monitoring, and related functions.
Data Communication
Two primary mechanisms are used:
Channel – high‑level, easy to use, but may have performance overhead; recommended to consolidate channels to 1‑2 shared instances.
FFI – low‑level native calls with higher performance; requires careful memory‑management, following principles of same‑source allocation/free and “who allocates, who frees”.
Message Bus
A lightweight end‑to‑end bus enables seamless communication between Flutter and other technology stacks such as mini‑programs, providing a unified channel, controller, and registration module.
Desktop Integration
Challenges include integrating FlutterApp as a module, supporting Windows 32‑bit, and reconciling single‑engine (mobile) with multi‑engine (desktop) architectures.
Solutions involve custom build scripts to produce 32‑bit flutter_windows.dll, modifying plugin registration, and using the message bus to bridge multi‑engine communication.
Future Work
Planned investments include infrastructure upgrades (FlutterEngine, flutter_boost, dynamic solutions), performance optimisation for desktop, dev‑kit enhancements, stability improvements for Windows, and further efficiency gains to expand business coverage.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
