[Open Source] A Lightweight Cross-Platform Mini Program Framework That Generates Standalone Native APPs with One-Click Packaging

Open SourceClassification Systems
2026-06-28 09:06 5 次浏览 • 0 次下载 0KB
[Open Source] A Lightweight Cross-Platform Mini Program Framework That Generates Standalone Native APPs with One-Click Packaging

1. Project Overview

Image

Dimina Mini Program Framework — Didi's Open-Source Cross-Platform Mini Program Framework

Dimina is pronounced /diːminə/ and is an abbreviation of didi miniprogram. It aims to create a flexible and lightweight cross-platform Mini Program development framework.

Dimina Mini Program Framework (hereinafter referred to as Dimina) is a lightweight cross-platform Mini Program framework independently developed by Didi. It can be understood as an open-source Mini Program solution designed to provide developers with a high-performance, cross-platform development experience with a low learning curve.

Currently, Dimina supports four major platforms: Android, iOS, HarmonyOS, and Web. Developers can use Dimina as across-platform mobile development framework, integrating existing Mini Program logic into an existing app as independent modules, or developing directly using Mini Program syntax and generating standalone native apps with a single click.

2. Open Source License

Licensed under Apache-2.0

3. Screenshots

Image
Android
iOS
Harmony
Image
Image
Image

4. Feature Overview

 Technical Features

  • Offline Resource Delivery
    Local resource storage reduces network requests
  • Separation of Logic and View
    An independent JS engine prevents main-thread blocking
  • Native Capability Encapsulation
    Unified APIs for accessing native functionality
  • Page Preloading
    WebView prewarming improves performance

5. Tech Stack

Cross-Platform Support

  • Android
    QuickJS + Android WebView
  • iOS
    JavaScriptCore + WKWebView
  • Harmony
    QuickJS + Harmony WebView
  • Web
    Web Worker + Browser

Getting Started

Image

Detailed Steps

1. Create a Mini Program Project

  • Create a project using the Mini Program development tools
  • Configure app.json and page routing

2. Develop Mini Program Pages

  • Write WXML templates
  • Add WXSS styles
  • Use JavaScript to implement page logic

3. Compile and Package

  • Use the DMCC compiler to compile Mini Program code into cross-platform code
  • Package the Dimina Mini Program bundle
  • Place the Dimina Mini Program bundle in the corresponding directories for each platform

4. Platform Integration

  • Android Integration Guide
  • iOS Integration Guide
  • Harmony Integration Guide

5. Debugging and Release

  • Integrate the App and perform debugging on real devices
  • Package and publish to various app stores
Image

What Is a Mini Program?

A Mini Program is essentially a Hybrid App solution that brings web technologies to mobile devices. Its core components are similar to those of a web page:

  • JS
    Describes logic
  • CSS
    Describes styles
  • HTML
    Describes the user interface

Technical Features

To optimize Mini Program performance and user experience, the client typically performs the following operations:

  1. Offline Resource Delivery
    Store JS/CSS/HTML locally to reduce network request latency.
  2. Asynchronous Execution of Complex Tasks
    Execute time-consuming logic in an independent JS engine to prevent main-thread blocking.
  3. Native Capability Encapsulation
    Provide capabilities such as camera and Bluetooth through client-side container bridging.
  4. Native Page Navigation
    Implement page navigation and transition animations similar to those in native applications.

In summary, a Mini Program is a standardized cross-platform framework that combines the efficiency and installation-free advantages of Web development with native development capabilities, representing an efficient model for Hybrid development.

Implementation Approach

To implement the Dimina Mini Program framework, we need to address four key challenges:

  • Offline Resource Package Loading
    How can we resolve cross-origin issues and quickly load local resources?
  • Separation of Logic and View
    How can JS logic be separated from pages and moved into an independent engine?
  • Native Capability Invocation
    How should an efficient communication protocol be designed?
  • Page Navigation Optimization
    How can WebView preloading and fast switching be implemented?

See the README.md documentation for details

#1
资源直链https://github.com/didi/dimina
去下载
星河码客

发现和分享优质开源项目,传承互联网精神,为开发者服务。

关于本站

联系我们

微信/广告合作:ITcloub (备注星河码客)

免责声明:本站资源版权归原作者所有,仅供学习与交流。如有侵权,请通过「关于我们 - 侵权投诉」联系删除。

Powered by Nuxt · Deployed on Cloudflare