{"id":15030250,"url":"https://github.com/mpflutter/mpflutter","last_synced_at":"2025-05-14T08:08:34.798Z","repository":{"id":37443277,"uuid":"319594573","full_name":"mpflutter/mpflutter","owner":"mpflutter","description":"MPFlutter 是一个跨平台 Flutter 开发框架，可用于微信小程序以及 Web 应用开发。","archived":false,"fork":false,"pushed_at":"2025-03-25T15:46:27.000Z","size":8731,"stargazers_count":2052,"open_issues_count":24,"forks_count":139,"subscribers_count":26,"default_branch":"master","last_synced_at":"2025-05-12T03:09:32.179Z","etag":null,"topics":["dart","flutter"],"latest_commit_sha":null,"homepage":"http://mpflutter.com/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mpflutter.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-08T09:50:57.000Z","updated_at":"2025-05-11T08:19:35.000Z","dependencies_parsed_at":"2024-02-05T07:30:31.984Z","dependency_job_id":"dd67d7e4-036f-459b-aa29-97b874374cd3","html_url":"https://github.com/mpflutter/mpflutter","commit_stats":{"total_commits":722,"total_committers":9,"mean_commits":80.22222222222223,"dds":0.06232686980609414,"last_synced_commit":"d476f0f78797f59b6c645c03846d40baedcfb95d"},"previous_names":[],"tags_count":81,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpflutter%2Fmpflutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpflutter%2Fmpflutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpflutter%2Fmpflutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mpflutter%2Fmpflutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mpflutter","download_url":"https://codeload.github.com/mpflutter/mpflutter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254101558,"owners_count":22014908,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dart","flutter"],"created_at":"2024-09-24T20:12:53.235Z","updated_at":"2025-05-14T08:08:29.792Z","avatar_url":"https://github.com/mpflutter.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MPFlutter 2.0\n\nMPFlutter 是一款用于构建小程序的开发框架，基于 Flutter 构建，开发体验无限接近于 Flutter 原生应用。\n\n你可以基于 MPFlutter 开发以下平台的小程序：\n\n- 微信小程序\n- 抖音小程序（WIP - 预计 2024 年 4 月）\n\n## 原生 Flutter 开发体验\n\nMPFlutter 的目标是，在尽可能保留 Flutter 开发体验的同时，降低应用迁移到微信小程序的成本。\n\n我们已经实现以下能力：\n\n- 无缝迁移\n  - 无须裁剪 Flutter Framework，你可以使用 Material / Cupertino 这些官方组件搭建 UI。\n  - 自适应的构建脚本，构建小程序就像构建原生应用一般简单。\n  - 完整的分包支持，适应小程序分包大小限制，静态资源、代码都可以轻松分包。\n- 实时预览能力\n  - 快速预览，在 Desktop 上使用 Hot Reload / Hot Restart 快速预览界面及应用逻辑\n  - 跨端联调，在 Desktop 预览的基础上，可连接到微信宿主，远程调用端上接口。\n- 纯正的 Flutter \n  - 支持 Flutter 3.13 以上版本，并且保证跟随官方升级而升级。\n  - 完全一致的 Flutter 插件体系，开发 MPFlutter 插件就像开发 Flutter 插件一样简单。\n  - 完全一致的 Pub 包管理系统，开发好的插件直接上传官方包管理平台即可使用。\n\n总的来说，MPFlutter 就是尽可能地帮助你以低成本的方式构建微信小程序。\n\n## 高性能的渲染体验\n\nMPFlutter 2.0 使用 Skia + WebGL 渲染，对于 MPFlutter 1.0，性能提升是非常明显的。\n\n具体体验在以下场景：\n\n- 频繁更新的界面\n  - 不再通过 WXML \u003c-\u003e JS 双向传递数据，直接通过 JS 控制 WebGL 渲染，只要 Widget 层级合理，可以做到毫秒级驱动界面更新。\n  - 使用 WebGL 驱动渲染，可提升渲染缓存灵活性，你可以使用 RepaintBoundary 进一步提升界面帧率。\n- 频繁的事件交互\n  - 事件的接收不再单纯依赖宿主小程序的回传，MPFlutter 仅接收最基本的触摸、键盘事件，后续的事件分发全部交回 Flutter Framework 处理。\n  - 这意味着你可以在小程序中获取更多、更实时的事件。\n- 小游戏方案\n  - 得益于渲染性能的提升，MPFlutter 也允许使用 Flutter 开发微信小程序（小游戏）中使用 Flame 开发游戏。\n\n## 完整的 API 生态配套\n\n在渲染能力以外，配套提供平台 API 封装，你不需要手动编写 Channel，MPFlutter 官方已为你完成对应封装，直接使用就可以。\n\n## 开始体验\n从《[环境安装](https://weypl4zsnv.feishu.cn/wiki/HsMzwcGKNioPlAkh9pPc8NfznIf)》开始体验 MPFlutter\n\n## 授权\n\nMPFlutter 2.0 版本并不是一个完全开源的项目，如果你使用 MPFlutter 开发的小程序需要用于商业目的，需要购买商用授权。\n\n### 商业目的定义\n\n- 面向企业内部的应用，属于商业目的，需要购买授权。\n- 面向公众的应用，属于商业目的，需要购买授权。\n- 目标用户只包括开发者自己，无任何营利目的，不需要购买授权。\n- 目标用户是以教学演示、内部研究为目的的小程序，不需要购买授权。\n\n### 授权购买方式\n\n请参考《[授权购买指南](https://mpflutter.feishu.cn/wiki/KEL9wIQ7ji4ChmkFnTfcIvJPnzb)》，授权购买后我们将通过电子邮件发送授权文件给您。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpflutter%2Fmpflutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmpflutter%2Fmpflutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmpflutter%2Fmpflutter/lists"}