Skip to content

Commit e869659

Browse files
author
fang
committed
Release SDK 1.0.7
1 parent f952880 commit e869659

File tree

1,527 files changed

+495271
-18
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,527 files changed

+495271
-18
lines changed

.gitignore

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Miscellaneous
2+
*.class
3+
*.log
4+
*.pyc
5+
*.swp
6+
.DS_Store
7+
.atom/
8+
.buildlog/
9+
.history
10+
.svn/
11+
12+
# IntelliJ related
13+
*.iml
14+
*.ipr
15+
*.iws
16+
.idea/
17+
18+
# The .vscode folder contains launch configuration and tasks you configure in
19+
# VS Code which you may wish to be included in version control, so this line
20+
# is commented out by default.
21+
#.vscode/
22+
23+
# Flutter/Dart/Pub related
24+
**/doc/api/
25+
**/ios/Flutter/.last_build_id
26+
.dart_tool/
27+
.flutter-plugins
28+
.flutter-plugins-dependencies
29+
.packages
30+
.pub-cache/
31+
.pub/
32+
**/build/
33+
34+
# Web related
35+
lib/generated_plugin_registrant.dart
36+
37+
# Symbolication related
38+
app.*.symbols
39+
40+
# Obfuscation related
41+
app.*.map.json
42+
43+
# Android Studio will place build artifacts here
44+
**/android/app/debug
45+
**/android/app/profile
46+
**/android/app/release
47+
**/.gradle
48+
**/wtbase/ios
49+
**/wtbase/android
50+
51+
**/*.bin
52+
53+
/compile_tool/rust_compile
54+
55+
**/lib/codeviewer/code_segments.dart

LICENSE

Lines changed: 75 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,79 @@
1-
MIT License
1+
Copyright (c) 2021 by Waytoon
2+
"Chimera Flutter Code Push SDK"
23

3-
Copyright (c) 2022 ChimeraFlutter
4+
All rights reserved.
45

5-
Permission is hereby granted, free of charge, to any person obtaining a copy
6-
of this software and associated documentation files (the "Software"), to deal
7-
in the Software without restriction, including without limitation the rights
8-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9-
copies of the Software, and to permit persons to whom the Software is
10-
furnished to do so, subject to the following conditions:
6+
In order to enable you to use this source code correctly and legally, please read the following terms of agreement before use:
117

12-
The above copyright notice and this permission notice shall be included in all
13-
copies or substantial portions of the Software.
8+
1. This license agreement is applicable and applicable to Chimera Flutter Code Push. Waytoon officially
9+
has the final right to interpret this license agreement.
1410

15-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21-
SOFTWARE.
11+
2. Redistribution and use in source and binary forms, with or without modification,
12+
are permitted provided that the following conditions are met. These conditions
13+
require a modest attribution to <AUTHOR> (the"Author"), who hopes that its
14+
promotional value may help justify thethousands of dollars in otherwise billable
15+
time invested in writingthis and other freely available, open-source software.
16+
And Waytoon has the final right to interpret this license agreement.
17+
18+
2.1 You can use this source code for non-commercial purposes on the basis of fully complying
19+
with this end user license agreement, without having to pay software/source code copyright
20+
authorization fees.
21+
2.2 Redistributions of source code must retain the above copyright notice, this
22+
list of conditions and the following disclaimer.
23+
2.3 Redistributions of source code, in whole or part and with or without modification (the
24+
"Code"), must prominently display this GPG-signed text in verifiable form.
25+
2.4 Redistributions in binary form must reproduce the above copyright notice,
26+
this list of conditions and the following disclaimer in the documentation
27+
and/or other materials provided with the distribution.
28+
2.5 Redistributions of the Code in binary form must be accompanied bythis GPG-signed text in
29+
any documentation and, each time the resultingexecutable program or a program dependent
30+
thereon is launched, aprominent display (e.g., splash screen or banner text) of the
31+
Author'sattribution information, which includes:
32+
(a) Name (“Waytoon"),
33+
(b) Professional identification (“Chimera Flutter Code Push"), and
34+
(c) GitHub URL("https://github.com/Waytoon/chimera_flutter_code_push").
35+
2.6 Without official permission, it is prohibited to develop any derivative version, modified version
36+
or third-party version for redistribution on the basis of the whole or any part of this source
37+
code..
38+
39+
40+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
41+
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42+
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
43+
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
44+
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
45+
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
46+
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
47+
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
48+
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
49+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
50+
POSSIBILITY OF SUCH DAMAGE.
51+
52+
为了使您能够正确合法地使用此源代码,请在使用前阅读以下协议条款:
53+
1.本许可协议适用于Chimera Flutter Code Push。 Waytoon正式拥有解释此许可协议的最终权利。
54+
2.无论是否经过修改,都以源代码和二进制形式重新分发和使用,满足以下条件是允许的。这些条
55+
件要求对<AUTHOR>(以下简称“作者”)进行适度的注明。
56+
Waytoon拥有解释此许可协议的最终权利。
57+
58+
2.1 您可以在完全遵守本最终用户授权协议的基础上,将本软件应用于非商业用途,而不必支付软
59+
件版权授权费用。
60+
2.2 重新分发源代码必须保留上述版权声明,条件列表和以下免责声明。
61+
2.3 重新分配源代码的全部或部分,并进行或不进行修改(“代码”),必须以可验证的形式突出显
62+
示此GPG签名的文本。
63+
2.4 以二进制形式重新分发必须复制上述版权声明,此条件列表以及文档中的以下免责声明
64+
和/或分发中提供的其他材料。
65+
2.5 二进制形式的代码重新分发必须随附GPG签名的以下文本:任何文档,以及每次生成的可执
66+
行程序或程序相关的内容,并在屏幕上突出显示(例如,启动画面或广告文字)作者的出处信
67+
息,其中包括:
68+
(a)名称(“ Waytoon”),
69+
(b)专业鉴定(“ Chimera Flutter代码推送”),以及
70+
(c)GitHub URL(“ https://github.com/Waytoon/chimera_flutter_code_push”)。
71+
2.6 未经官方许可,禁止开发任何衍生版本,修改版本或基于此源的全部或任何部分进行重新分发
72+
的第三方版本代码。
73+
74+
此软件由版权所有者和贡献者“按原样”提供以及任何明示或暗示的担保,包括但不限于
75+
对于特定用途的适销性和适用性的默示担保不承担任何责任。在任何情况下,版权所有
76+
人或贡献者均不得对任何直接,间接,偶然,特殊,示范或任何责任后果性损害(包括
77+
但不限于购买替代商品或服务;使用,数据或利润的损失;或业务中断)以及任何责任
78+
理论,无论是在合同,严格责任或侵权(包括过失或其他)即使在不建议使用本软件的
79+
情况下,以任何方式引起使用本软件的后果发生此类损坏的可能性。

README.md

Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,69 @@
1-
# Chimera-Flutter-Code-Push
1+
[中文版](https://github.com/Waytoon/chimera_flutter_code_push/blob/main/ReadMe_ZH.md)
2+
3+
# Chimera Flutter Code Push
4+
5+
​ Chimera is a Dart compiler developed by ourselves, which generates interpretable and executable bytecode to implement code push (hot update).
6+
7+
## Look for like-minded people to join this project
8+
9+
​ I hope more people will participate in this project. Among many customers, the most difficult thing is to use, so I want to open up the core principles of the compiler code so that everyone can be familiar with this project and solve problems. So if you have time and are interested in developing and helping, you can join us. If the project is profitable, all people participating in the project can get cash rewards. Friends who are helpful to this project, welcome to contact us.
10+
11+
## Advantages of our products
12+
13+
- Support all pub.dev libraries, no library restrictions.
14+
- It does not affect the original project structure when used, as long as the code that needs hot update is generated by compiling.
15+
- SDK does not use JS, LUA and Apple's official sensitive API, so don't worry about being blocked.
16+
- You can switch this function remotely at any time as needed, or you can customize the framework that suits you to achieve hot fixes for logic problems, etc.
17+
- Support hot updates for all platforms (Android, IOS, Windows, Mac) released by Flutter.
18+
- Support Dart code obfuscation to prevent App from being decompiled.
19+
- Support memory detection and performance analysis.
20+
- As long as the compilation is passed, the App can load and execute code through the network, and easily implement WeChat applets.
21+
22+
## Example project
23+
24+
​ Our open source sample project (Flutter Gallery), Flutter Gallery is Google's official sample App, it uses a lot of Dart features, and we have supported them.
25+
26+
27+
## Use tutorial
28+
29+
​ Currently we only support versions above Flutter2. The old version was simply abandoned due to lack of manpower. I believe everyone will upgrade to the Flutter2 version.
30+
31+
​ For tutorials, we only released video tutorials. Of course, video tutorials are not enough. Please be patient and wait for us to release more tutorials.
32+
33+
1. Get to know the SDK
34+
35+
https://b23.tv/B2MShU
36+
37+
Supplement iOS release tutorial
38+
39+
https://b23.tv/wnOHYV
40+
41+
2. Flutter Gallery access to SDK super detailed tutorial
42+
43+
https://b23.tv/PU8Jc9
44+
45+
## New World
46+
47+
Execution performance is increased by 10 times, WebAssembly bytes are generated, and WebAssembly bytecodes are interpreted and executed on the
48+
machine to improve virtual performance.
49+
50+
There are two options
51+
52+
Solution 1: performance can be infinitely close to Dart AOT performance, but whether iOS supports **TBD**.
53+
54+
Solution 2: Performance increase 10 times execution performance, support all platforms.
55+
56+
Regarding performance improvement, I don't recommend having to generate WebAssembly bytecode. Determine whether bytecode needs to be generated according to the scenario (for example, there is a large amount of data calculation), or a separate thread (Isolate) can be set to support it.
57+
58+
It is recommended to compile a small part of Dart code to generate WebAssembly.
59+
60+
61+
## Participate in contribution
62+
63+
We still have a lot of work to do in improving and constructing supporting facilities. Everyone is welcome to participate in the development.
64+
65+
I need a friend who knows how to develop web. Hope to help develop the official website and website backend (hope to be more beautiful). Friends who are interested can contact me.
66+
67+
## Email contact
68+
chimerapush@qq.com
69+

ReadMe_ZH.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# Chimera Flutter Code Push
2+
3+
​ Chimera 是我们自己开发了Dart编译器,生成可解释执行字节码,来实现Code Push(热更新)的。
4+
5+
## 寻找志同道合的人,一起参与此项目
6+
7+
​ 我想让更多人的参与到此项目中,在大量的客户中,发现最困难的还是使用方面,所以想以开放出更新的核心原理包括编译器来使大家熟悉此项目,并可以解决问题。所以有时间并且有兴趣的小伙伴可以加入我们,如果此项目获得盈利,所有参与到此项目的可以获得现金奖励。有任何对此项目有帮助的朋友,迎联系我们。
8+
9+
​ 此项目是离职做的,压力还是比较大,做到后面越来越发现功能越来越多。过段时间还是回去上班了。
10+
11+
12+
## 我们产品的优势
13+
14+
- 支持所有的pub.dev的所有库,不受库的限制。
15+
- 接入过程不影响原来的项目结构,只需要将需要热更新的代码,编译成字节码即可。
16+
- 没用到任何第三方接口,也没用到JS、LUA,和苹果官方敏感的API,所以无需担心被X的问题。
17+
- 可以根据自己的需求,随时远程开关此功能,还可以定制适合自己的框架,实现热修复逻辑问题等等。
18+
- 支持所有Flutter发布的平台,进行热更新(Android、IOS、Windows、Mac)等等。
19+
- 支持Dart代码混淆。
20+
- 支持内存泄漏检测、性能分析。
21+
- 只要编译通过,App就可以通过网络加载并执行代码,轻松实现类似微信小程序。
22+
23+
## 示例工程
24+
25+
​ 我们开源的示例工程(Flutter Gallery),Flutter Gallery是Google官方的示例App,里面用到了许多Dart特性,并且我们都已经全部支持了语法。
26+
27+
## 接入教程
28+
29+
​ 目前我们只支持Flutter2以上的版本,旧版本因人手不够,索性直接放弃了,相信大家都会升级到Flutter2版本。
30+
31+
​ 教程我们只出了一个视频教程,当然光一个视频教程还不够,请大家耐心等待我们出Flutter Gallery接入教程。
32+
33+
1. 初步了解 SDK
34+
35+
https://b23.tv/B2MShU
36+
37+
补充iOS发布教程
38+
39+
https://b23.tv/wnOHYV
40+
41+
2. Flutter Gallery 接入 SDK 超详细教程
42+
43+
https://b23.tv/PU8Jc9
44+
45+
## 新大陆
46+
提升10倍执行性能,生成WebAssembly字节,在通过虚拟机解释执行WebAssembly字节码从而来提升性能。
47+
目前有两种方案
48+
49+
第一种方案:性能可以无限接近于Dart AOT性能,但是是否支持iOS还有**待确认**
50+
51+
第二种方案:性能提升10倍执行性能,支持所有平台。
52+
53+
关于性能提升这块,我不建议大家一定要生成WebAssembly字节码,而是根据场景来判断是否需要生成字节码(比如有大量的数据计算),不过偶尔比较卡的,还可以单独起一个线程(Isolate)来支持。
54+
55+
推荐把少部分Dart代码编译生成WebAssembly.
56+
57+
## 参与贡献
58+
59+
目前我们还需要很多工作去完善,建设配套设施,欢迎大家一起加入开发。
60+
61+
目前需要会Web开发的小伙伴,希望能帮忙开发官方网站和网站后台(最好稍微美观一点),有兴趣的小伙伴可以联系我。
62+
63+
## 交流群
64+
65+
<img src="./imgs/qq.png" alt="wx" width="30%" height="30%" />
66+
群名称:ChimeraFlutter热更新交流群<br>
67+
QQ群:512747889<br>
68+
点击链接加入群聊【ChimeraFlutter热更新交流】:<br>[https://jq.qq.com/?_wv=1027&k=j6Am8jAP](https://jq.qq.com/?_wv=1027&k=j6Am8jAP)
69+
<br><br>
70+
微信群由于微信限制,只能通过邀请加入。<br>
71+
<img src="./imgs/wx_group.png" alt="wx" width="30%" height="30%" />
72+
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Miscellaneous
2+
*.class
3+
*.log
4+
*.pyc
5+
*.swp
6+
.DS_Store
7+
.atom/
8+
.buildlog/
9+
.history
10+
.svn/
11+
12+
# IntelliJ related
13+
*.iml
14+
*.ipr
15+
*.iws
16+
.idea/
17+
18+
# The .vscode folder contains launch configuration and tasks you configure in
19+
# VS Code which you may wish to be included in version control, so this line
20+
# is commented out by default.
21+
#.vscode/
22+
23+
# Flutter/Dart/Pub related
24+
**/doc/api/
25+
**/ios/Flutter/.last_build_id
26+
.dart_tool/
27+
.flutter-plugins
28+
.flutter-plugins-dependencies
29+
.packages
30+
.pub-cache/
31+
.pub/
32+
/build/
33+
34+
# Web related
35+
lib/generated_plugin_registrant.dart
36+
37+
# Symbolication related
38+
app.*.symbols
39+
40+
# Obfuscation related
41+
app.*.map.json
42+
43+
# Android Studio will place build artifacts here
44+
/android/app/debug
45+
/android/app/profile
46+
/android/app/release
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# This file tracks properties of this Flutter project.
2+
# Used by Flutter tool to assess capabilities and perform upgrades etc.
3+
#
4+
# This file should be version controlled and should not be manually edited.
5+
6+
version:
7+
revision: f4abaa0735eba4dfd8f33f73363911d63931fe03
8+
channel: stable
9+
10+
project_type: app
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# flutter_two_demo
2+
3+
A new Flutter project.
4+
5+
## Getting Started
6+
7+
This project is a starting point for a Flutter application.
8+
9+
A few resources to get you started if this is your first Flutter project:
10+
11+
- [Lab: Write your first Flutter app](https://flutter.dev/docs/get-started/codelab)
12+
- [Cookbook: Useful Flutter samples](https://flutter.dev/docs/cookbook)
13+
14+
For help getting started with Flutter, view our
15+
[online documentation](https://flutter.dev/docs), which offers tutorials,
16+
samples, guidance on mobile development, and a full API reference.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
gradle-wrapper.jar
2+
/.gradle
3+
/captures/
4+
/gradlew
5+
/gradlew.bat
6+
/local.properties
7+
GeneratedPluginRegistrant.java
8+
9+
# Remember to never publicly share your keystore.
10+
# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
11+
key.properties

0 commit comments

Comments
 (0)