Kraken - a high-performance, web standards-compliant rendering engine based on Flutter.

Overview

kraken Post

Kraken pub package Integration Test WorkFlow

💁 Have a try

  1. Install Kraken CLI (macOS only currently)

    $ npm i @openkraken/cli -g
  2. Open with kraken

    # kraken [localfile|URL]
    $ kraken https://raw.githubusercontent.com/openkraken/kraken/master/kraken/example/assets/bundle.js

💌 Why kraken

  • Quick development 🎉

    Compatibility with web standards means you don't have to change your stack.

    const text = document.createTextNode('Hello World!');
    document.body.appendChild(text);
  • Cross platform ⚛️

    Seamless integration with Flutter, supports web, mobile (iOS, Android) and desktop (MacOS, Linux, Windows).

  • Fast performance 🚀

    Provide native-like performance such as navigation, animation and infinite list scrolling.

👏 Contributing

By contributing to Kraken, you agree that your contributions will be licensed under its Apache-2.0 License.

  1. Prerequisites

    • Node.js v12.0 or later
    • Flutter version in the kraken/pubspec.yaml
    • CMake v3.2.0 or later
    • Xcode (10.12) or later (Running on macOS or iOS)
    • Android NDK version 20.0.5594570 or later (Running on Android)
  2. Install

    $ npm install
  3. Building bridge

    Building bridge for all supported platform (macOS, iOS, Android)

    $ npm run build:bridge:all

    Building bridge for one platform

    macOS

    $ npm run build:bridge:macos

    iOS

    $ npm run build:bridge:ios

    Android

    For Windows users, make sure that running this command under MINGW64 environment(eg. Git Bash).

    $ npm run build:bridge:android
  4. Start example

    $ cd kraken/example
    $ flutter run
  5. Test (Unit Test and Integration Test)

    $ npm test
Comments
  • 编译失败:集成kraken后,在xcode中运行ios成功,但在终端中执行flutter run 失败

    编译失败:集成kraken后,在xcode中运行ios成功,但在终端中执行flutter run 失败

    使用的 Kraken 版本 | What version of kraken are you using

    0.10.0

    重现步骤 | Steps To Reproduce

    flutter版本2.5.2 stable,创建一个新flutter项目,在终端中执行flutter run能正常运行到ios模拟器中; 按文档集成kraken 后在终端中执行flutter run无法正常运行到ios模拟器中,但xcode可以正常运行 ios目录工程,并且执行flutter run也够正常运行到Andoid 上;

    重现代码 | Code example: pubspec.yaml:

    version: 1.0.0+1
    
    environment:
      sdk: ">=2.12.0 <3.0.0"
    
    dependencies:
      flutter:
        sdk: flutter
      kraken: '0.10.0' 
    
      cupertino_icons: ^1.0.2
      kraken_websocket: ^2.0.0
    
    dev_dependencies:
      flutter_test:
        sdk: flutter
    
      flutter_lints: ^1.0.0
    
    flutter:
      
      uses-material-design: true
    
      assets:
         - images/cat.jpeg
         - kraken/guide.js
        
    

    预期结果 | Expected results:

    实际结果 | Actual results: 终端Log:

    Launching lib/main.dart on iPhone 12 Pro in debug mode...
    Running Xcode build...                                          
    Xcode build done.                                            6.9s
    Failed to build iOS app
    Error output from Xcode build:
    ↳
        --- xcodebuild: WARNING: Using the first of multiple matching destinations:
       ~~~
        ** BUILD FAILED **
    
    
    Xcode's output:
    ↳
        warning: [CP] Unable to find matching .xcframework slice in '/Users/HEcom/saas/ios/Pods/../.symlinks/plugins/kraken/ios/kraken_bridge.xcframework kraken_bridge framework ios-x86_64-simulator ios-arm64_armv7_armv7s' for the current build architectures (arm64 x86_64).
        warning: [CP] Unable to find matching .xcframework slice in '/Users/HEcom/saas/ios/Pods/../.symlinks/plugins/kraken/ios/quickjs.xcframework quickjs framework ios-x86_64-simulator ios-arm64_armv7_armv7s' for the current build architectures (arm64 x86_64).
        ld: warning: directory not found for option '-F/Users/HEcom/saas/build/ios/Debug-iphonesimulator/XCFrameworkIntermediates/kraken_bridge'
        ld: warning: directory not found for option '-F/Users/HEcom/saas/build/ios/Debug-iphonesimulator/XCFrameworkIntermediates/quickjs'
        ld: framework not found kraken_bridge
        clang: error: linker command failed with exit code 1 (use -v to see invocation)
        note: Using new build system
        note: Planning
        note: Build preparation complete
        note: Building targets in dependency order
        /Users/HEcom/saas/ios/Pods/Pods.xcodeproj: warning: The iOS Simulator deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 8.0, but the range of supported deployment target versions is 9.0 to 15.2.99. (in target 'Reachability' from project 'Pods')
        warning: Capabilities for Signing & Capabilities may not function correctly because its entitlements use a placeholder team ID. To resolve this, select a development team in the Runner editor. (in target 'Runner' from project 'Runner')
    
    Could not build the application for the simulator.
    Error launching application on iPhone 12 Pro.
     
    
    blocked 
    opened by gplcn 18
  • Kraken运行不起来啊

    Kraken运行不起来啊

    使用的 Kraken 版本 | What version of kraken are you using

    0.7.2

    重现步骤 | Steps To Reproduce

    kraken http://kraken.oss-cn-hangzhou.aliyuncs.com/demo/guide-styles.js Kraken Binary NOT exists, try reinstall. FAIL: 1

    安装cmake出现这个问题 brew install cmake image 我xcode 也是最新的啊

    bug 
    opened by infyzz 18
  • click 事件绑定的 console.log,在三端都没有看到日志输出

    click 事件绑定的 console.log,在三端都没有看到日志输出

    重现步骤 | Steps To Reproduce

    React Demo,给 span 绑定 onClick 事件。

    1. kraken 直接加载 bundle,在 devtools 没有看到日志输出
    2. flutter 源码调试,在 flutter 侧控制台没有看到日志输出
    3. iOS 源码调试,在 Xcode 控制台也没有看到日志输出

    不清楚是 click 事件的问题还是 console.log 的问题

    重现代码 | Code example:

    <span id="sp" onClick={() => {
                console.log('111111');
    }}>src/App.js</span>
    

    预期结果 | Expected results:

    三端都能看到日志输出

    实际结果 | Actual results:

    三端都没有看到日志

    image

    image

    image

    bug 
    opened by airingursb 17
  • Kraken Binary NOT exists, try reinstall.

    Kraken Binary NOT exists, try reinstall.

    使用的 Kraken 版本 | What version of kraken are you using

    kraken 0.7.2 npm 7.10.0 node v14.16.1 MacOS 10.15.7

    重现步骤 | Steps To Reproduce

    $ sudo npm install -g @openkraken/cli
    
    added 24 packages in 1s
    
    $ kraken https://raw.githubusercontent.com/openkraken/kraken/master/kraken/example/assets/bundle.js
    
    Kraken Binary NOT exists, try reinstall.
    
    

    预期结果 | Expected results:

    打开对应界面

    实际结果 | Actual results:

    命令行报错

    bug 
    opened by FantasyWind2016 16
  • cli 启动官网项目白屏

    cli 启动官网项目白屏

    使用的 Kraken 版本 | What version of kraken are you using

    v0.10.1

    重现步骤 | Steps To Reproduce

    kraken https://raw.githubusercontent.com/openkraken/kraken/master/kraken/example/assets/bundle.js image

    重现代码 | Code example:

    预期结果 | Expected results: 成功渲染

    实际结果 | Actual results: 白屏

    bug 
    opened by 18zili 14
  • Kraken.defineCustomElement切换tabbar 会报错

    Kraken.defineCustomElement切换tabbar 会报错

    debug bug

    --js-- image

    import { createElement } from 'rax';
    
    function ListView(props) {
      return createElement('etsx-list-view', props);
    }
    
    export default ListView;
    
    
    import { createElement } from 'rax';
    
    function RefreshIndicator(props) {
      if(props['onReachedBottom']){
        props['onReachedbottom'] = props['onReachedBottom'];
        delete props['onReachedBottom'];
      }
      return createElement('etsx-refresh-indicator', props);
    }
    
    export default RefreshIndicator;
    
    

    --dart--

      Kraken.defineCustomElement('etsx-list-view', (context) {
        return EtsxListViewWidgetElement(context);
      });
      Kraken.defineCustomElement('etsx-refresh-indicator', (context) {
        return EtsxRefreshIndicatorWidgetElement(context);
      });
    
    class EtsxListViewWidgetElement extends WidgetElement {
      EtsxListViewWidgetElement(context) :
            super(context);
    
      @override
      Widget build(BuildContext context, Map<String, dynamic> properties, List<Widget> children) {
        Size size = MediaQuery.of(context).size;
        ScrollController controller = ScrollController();
        controller.addListener(() {
          if(controller.position.pixels == controller.position.maxScrollExtent) {
    
            Event changeEvent = CustomEvent('reachedbottom', CustomEventInit(detail: ":"));
            changeEvent.currentTarget = this;
            changeEvent.target = this;
            dispatchEvent(changeEvent);
          }
        });
        print('properties');
        print(properties );
    
        return ListView(
          padding: const EdgeInsets.all(0),
          key: const ValueKey('lv'),
          controller: controller,
          children: children
        );
      }
    }
    
    class EtsxRefreshIndicatorWidgetElement extends WidgetElement {
      EtsxRefreshIndicatorWidgetElement(EventTargetContext? context) : super(context);
    
      @override
      Widget build(BuildContext context, Map<String, dynamic> properties, List<Widget> children) {
        return RefreshIndicator(
          key: ValueKey('ri'),
            onRefresh: () async {
              Event changeEvent = CustomEvent('refresh', CustomEventInit(detail: ":"));
              changeEvent.currentTarget = this;
              changeEvent.target = this;
              dispatchEvent(changeEvent);
            },
            child: children[0]
        );
      }
    }
    
    bug 
    opened by yuchonghua 12
  • 添加一套独立于引擎之上的 JS Engine API 设计

    添加一套独立于引擎之上的 JS Engine API 设计

    Kraken 未来会在 JS Engine 领域上进行更多的探索,包括尝试不同的 JS Engine,使用一些 Private API 等,但是这些工作又会对上层的 bridge 功能实现带来很多 Break Changes,因此需要设计并实现一层独立于引擎之外的抽象设计。

    Node.js 的 (Node-API)是个很好的参考

    这个设计上,有几个目标需要达成:

    1. 使用模版及内联函数去降低函数调用开销
    2. 禁用 copy 语义,借鉴 rapidJSON 的 move 语义
    3. 优先将 JS 对象分配到栈上,同时也支持分配在堆上。
    4. 支持 JS 类,函数的创建,并支持实现 JS 原型继承的 API
    enhancement tsc 
    opened by andycall 12
  • flutter端运行报Unhandled Exception: Invalid argument(s): Failed to lookup symbol (dlsym(0x8609000, initJSPagePool): symbol not found)

    flutter端运行报Unhandled Exception: Invalid argument(s): Failed to lookup symbol (dlsym(0x8609000, initJSPagePool): symbol not found)

    使用的 Kraken 版本

    kraken: 0.10.1
    kraken_websocket: any

    重现步骤 | Steps To Reproduce

    将kraken引入flutter项目,并用demo中的地址在程序启动的时候加载kraken项目,页面是一个空白页面,并报错

    VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: Invalid argument(s): Failed to lookup symbol (dlsym(0x8609000, initJSPagePool): symbol not found) #0 DynamicLibrary.lookup (dart:ffi-patch/ffi_dynamic_library_patch.dart:31:29) #1 _initJSPagePool package:kraken/…/bridge/to_native.dart:215 #2 _initJSPagePool (package:kraken/src/bridge/to_native.dart) package:kraken/…/bridge/to_native.dart:1 #3 initJSPagePool package:kraken/…/bridge/to_native.dart:219 #4 initBridge package:kraken/…/bridge/bridge.dart:49 #5 new KrakenViewController package:kraken/…/launcher/controller.dart:126 #6 new KrakenController package:kraken/…/launcher/controller.dart:894 #7 _KrakenRenderObjectWidget.createRenderObject package:kraken/…/widget/kraken.dart:918 #8 RenderObjectElement.mount package:flutter/…/widgets/framework.dart:5533 #9 SingleChildRenderObjectElement.mount package:flutter/…/widgets/framework.dart:6194 #10 _KrakenRenderObjectElement.mount package:kraken/…/widget/kraken.dart:991 #11 Element.inflateWidget package:flutter/…/widgets/framework.dart:3673 #12 Element.updateChild package:flutter/…/widgets/framework.dart:3425

    重现代码 | Code example: 下边是调用的代码 Kraken( bundle: KrakenBundle.fromUrl( 'http://kraken.oss-cn-hangzhou.aliyuncs.com/demo/guide-styles.js', ))

    bug 
    opened by WK726 11
  • 编译总是失败

    编译总是失败

    使用的 Kraken 版本 | What version of kraken are you using

    最新

    Error [ERR_UNHANDLED_ERROR]: Unhandled error. ({ uid: 2, name: 'build-android-kraken-lib', branch: false, error: Error: Command failed: cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=/Users/chenjun/Library/Android/sdk/ndk/21.4.7075529/build/cmake/android.toolchain.cmake -DANDROID_NDK=/Users/chenjun/Library/Android/sdk/ndk/21.4.7075529 -DIS_ANDROID=TRUE -DANDROID_ABI="arm64-v8a"
    -DANDROID_PLATFORM="android-18" -DANDROID_STL=c++_shared -G "Unix Makefiles" -B /Users/chenjun/krakenSDK/kraken/bridge/cmake-build-android-arm64-v8a -S /Users/chenjun/krakenSDK/kraken/bridge at checkExecSyncError (node:child_process:826:11) at execSync (node:child_process:900:15) at /Users/chenjun/krakenSDK/kraken/scripts/tasks.js:661:5 at Array.forEach () at /Users/chenjun/krakenSDK/kraken/scripts/tasks.js:657:9 at taskWrapper (/Users/chenjun/krakenSDK/kraken/node_modules/undertaker/lib/set-task.js:13:15) at bound (node:domain:421:15) at runBound (node:domain:432:12) at asyncRunner (/Users/chenjun/krakenSDK/kraken/node_modules/async-done/index.js:55:18) at processTicksAndRejections (node:internal/process/task_queues:78:11) { status: 127, signal: null, output: [ null, null, null ], pid: 12245, stdout: null, stderr: null, domainThrown: true }, duration: [ 0, 14079750 ], time: 1642385834539 }) at new NodeError (node:internal/errors:371:5) at Gulp.emit (node:events:379:17) at Gulp.emit (node:domain:475:12) at Object.error (/Users/chenjun/krakenSDK/kraken/node_modules/undertaker/lib/helpers/createExtensions.js:61:10) at handler (/Users/chenjun/krakenSDK/kraken/node_modules/now-and-later/lib/mapSeries.js:47:14) at f (/Users/chenjun/krakenSDK/kraken/node_modules/once/once.js:25:25) at f (/Users/chenjun/krakenSDK/kraken/node_modules/once/once.js:25:25) at tryCatch (/Users/chenjun/krakenSDK/kraken/node_modules/async-done/index.js:24:15) at done (/Users/chenjun/krakenSDK/kraken/node_modules/async-done/index.js:40:12) at Domain.onError (/Users/chenjun/krakenSDK/kraken/node_modules/async-done/index.js:51:5) { code: 'ERR_UNHANDLED_ERROR', context: { uid: 2, name: 'build-android-kraken-lib', branch: false, error: Error: Command failed: cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=/Users/chenjun/Library/Android/sdk/ndk/21.4.7075529/build/cmake/android.toolchain.cmake -DANDROID_NDK=/Users/chenjun/Library/Android/sdk/ndk/21.4.7075529 -DIS_ANDROID=TRUE -DANDROID_ABI="arm64-v8a"
    -DANDROID_PLATFORM="android-18" -DANDROID_STL=c++_shared -G "Unix Makefiles" -B /Users/chenjun/krakenSDK/kraken/bridge/cmake-build-android-arm64-v8a -S /Users/chenjun/krakenSDK/kraken/bridge at checkExecSyncError (node:child_process:826:11) at execSync (node:child_process:900:15) at /Users/chenjun/krakenSDK/kraken/scripts/tasks.js:661:5 at Array.forEach () at /Users/chenjun/krakenSDK/kraken/scripts/tasks.js:657:9 at taskWrapper (/Users/chenjun/krakenSDK/kraken/node_modules/undertaker/lib/set-task.js:13:15) at bound (node:domain:421:15) at runBound (node:domain:432:12) at asyncRunner (/Users/chenjun/krakenSDK/kraken/node_modules/async-done/index.js:55:18) at processTicksAndRejections (node:internal/process/task_queues:78:11) { status: 127, signal: null, output: [ null, null, null ], pid: 12245, stdout: null, stderr: null, domainThrown: true }, duration: [ 0, 14079750 ], time: 1642385834539 } }

    android SDK 路径没有问题。设备是 mac M1 芯片。

    question 
    opened by yoyo89757001 11
  • 启动页面时的参数传递

    启动页面时的参数传递

    使用场景 | Use case

    目前北海的加载方式有三种

    kraken.loadPath(xxx)
    kraken.loadURL(xxx)
    kraken.loadContent(xxx)
    

    很多场景都需要根据参数去请求数据,以便动态化的渲染。但三种方式都没有找到对参数传递的描述。

    提案 | Proposal

    请求支持。 例如

    kraken.loadPath(xxx, param)
    kraken.loadURL('xxx?q=123&k=v')
    kraken.loadContent(xxx, param)
    
    enhancement 
    opened by cnryb 11
  • feat: define custom element with flutter widget

    feat: define custom element with flutter widget

    Usage:

      Kraken.defineCustomElement('flutter-text', (Map<String, dynamic> properties) {
        return Text(properties['value'] ?? '', textDirection: TextDirection.ltr, style: TextStyle(color: Color.fromARGB(255, 100, 100, 100)));
      });
    
    
    <flutter-text value="Hello" />
    
    opened by yuanyan 11
  • 安卓运行demo各种找不到

    安卓运行demo各种找不到

    使用的 Kraken 版本 | What version of kraken are you using

    image

    重现步骤 | Steps To Reproduce

    demo下载 直接运行 报错

    重现代码 | Code example: demo下载 直接运行 报错

    预期结果 | Expected results: demo下载 直接运行ok

    实际结果 | Actual results: demo下载 直接运行 报错

    bug 
    opened by 1136346879 1
  • sliver里面包不同类型的item运行有问题

    sliver里面包不同类型的item运行有问题

    使用的 Kraken 版本 | What version of kraken are you using

    sliver里面包不同类型的item, 滚动 、增加新元素时候报错

    重现步骤 | Steps To Reproduce

    重现代码 | Code example:

    预期结果 | Expected results:

    实际结果 | Actual results:

    bug 
    opened by zjt123 1
  • window下使用gitbash按照文档构建不了android

    window下使用gitbash按照文档构建不了android

    使用的 Kraken 版本 | What version of kraken are you using

    Kraken 0.10.0

    重现步骤 | Steps To Reproduce

    运行 ceeb@ceb MINGW64 /d/fulldata/kraken-0.10.0-flutter-2.2.x $ npm run build:bridge:android

    CMake Error: The source directory "/" does not appear to contain CMakeLists.txt. Specify --help for usage, or press the help button on the CMake GUI. D:\fulldata\kraken-0.10.0-flutter-2.2.x\node_modules\async-done\index.js:18 throw err; ^

    Error [ERR_UNHANDLED_ERROR]: Unhandled error. ({ uid: 2, name: 'build-android-kraken-lib', branch: false, error: Error: Command failed: cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_TOOLCHAIN_FILE=D:\java\androidsdk\ndk\21.4.7075529\build\cmake\android.toolchain.cmake -DANDROID_NDK=D:\java\androidsdk\ndk\21.4.7075529 -D

    bug 
    opened by Alembertcn 0
  • 官方文档Kraken Playground 安装二维码失效

    官方文档Kraken Playground 安装二维码失效

    使用的 Kraken 版本 | What version of kraken are you using

    重现步骤 | Steps To Reproduce

    访问 https://openkraken.com/guide 安卓机任意浏览器扫描下方二维码 image

    重现代码 | Code example: none

    预期结果 | Expected results: 安装此应用

    实际结果 | Actual results: image

    bug 
    opened by melodyWxy 0
  • addEventListener中返回的Event需要添加PointerDeviceKind属性来兼容不同手势之间的差异

    addEventListener中返回的Event需要添加PointerDeviceKind属性来兼容不同手势之间的差异

    使用场景 | Use case

    目前addEventListener返回的Event参数无法辨别手势类型,比如输入框拖动如果是触摸手势是文字滚动,如果是鼠标手势是选中文本

    提案 | Proposal

    addEventListener返回的Event的Touch添加一个kind(PointerDeviceKind)属性,告知调用者

    enhancement 
    opened by xuzhongpeng 12
Releases(0.11.0)
  • 0.11.0(Apr 7, 2022)

    Breaking Changes

    • Update flutter requirement to 2.8.x https://github.com/openkraken/kraken/pull/1298

    Bug Fixed

    • Fix Kraken widget instance memory leak from window. https://github.com/openkraken/kraken/pull/1297
    Source code(tar.gz)
    Source code(zip)
  • 0.10.4(Apr 2, 2022)

    Features

    • Support window.innerWidth & window.innerHeight, and screen.availWidth & screen.availHeight. https://github.com/openkraken/kraken/pull/1256

    Bug Fixed

    • Fix error when using KrakenBundle.fromByteCode(). https://github.com/openkraken/kraken/pull/1245
    • Fix DataBundle string with non latin. https://github.com/openkraken/kraken/pull/1263

    ** Others **

    • Change copyright to The Kraken authors.
    Source code(tar.gz)
    Source code(zip)
  • 0.10.3(Mar 25, 2022)

    Bug Fixed

    • Fix Http cache file io error https://github.com/openkraken/kraken/pull/1202.
    • Fix align-self not work for positioned flex item. https://github.com/openkraken/kraken/pull/1207
    • Fix text-align should only work for text node for flex item. https://github.com/openkraken/kraken/pull/1208
    • Fix crash with scrolling. https://github.com/openkraken/kraken/pull/1209
    • Fix children of inline-block element not stretch. https://github.com/openkraken/kraken/pull/1214
    • Fix style set to empty string. https://github.com/openkraken/kraken/pull/1220
    • Fix flex item not stretch when child size changed. https://github.com/openkraken/kraken/pull/1229
    • Fix html parse error. https://github.com/openkraken/kraken/pull/1231
    • Fix asset protocol error. https://github.com/openkraken/kraken/pull/1232
    • Fix file protocol. https://github.com/openkraken/kraken/pull/1234
    Source code(tar.gz)
    Source code(zip)
  • 0.10.2(Mar 2, 2022)

    Bug Fixed

    • Fix report error cause stack overflow. https://github.com/openkraken/kraken/pull/1164
    • Fix object-fit not work due to image resize optimization. https://github.com/openkraken/kraken/pull/1165
    • Fix crash when reload. https://github.com/openkraken/kraken/pull/1167
    • Fix referer and origin. https://github.com/openkraken/kraken/pull/1170
    • Fix large file content may fail. https://github.com/openkraken/kraken/pull/1176
    • Fix native event memory align on 32 bit devices. https://github.com/openkraken/kraken/pull/1182
    • Fix image load error cause crash. https://github.com/openkraken/kraken/pull/1187
    Source code(tar.gz)
    Source code(zip)
  • 0.10.1(Feb 10, 2022)

    Bug Fixed

    • Fix custom flutter widget when kraken disposed. https://github.com/openkraken/kraken/pull/1142
    • Fix scrollable size should include padding. https://github.com/openkraken/kraken/pull/1135
    • Fix http request doesn't support multiple headers. https://github.com/openkraken/kraken/pull/1148
    • Fix document.location is undefined. https://github.com/openkraken/kraken/pull/1150
    • Fix WebSocket dev server error. https://github.com/openkraken/kraken/pull/1131
    • Fix image intrinsic size not correct which include padding and border. https://github.com/openkraken/kraken/pull/1127
    • Fix unhandledPromiseRejection event. https://github.com/openkraken/kraken/pull/1137
    • Fix fetch API request options. https://github.com/openkraken/kraken/pull/1139
    • Fix HttpCache error on linux platform. https://github.com/openkraken/kraken/pull/1113
    • Fix exception leak cause globalObject not fully freed. https://github.com/openkraken/kraken/pull/1117
    • Fix border radius of one percentage value. https://github.com/openkraken/kraken/pull/1121
    • Fix empty screen when page reload. https://github.com/openkraken/kraken/pull/1109
    • Fix linux dynamic rpath. https://github.com/openkraken/kraken/pull/1111
    • Fix error when set empty string to textOverflow. https://github.com/openkraken/kraken/pull/1095
    • Fix input delete key binding. https://github.com/openkraken/kraken/pull/1096
    • Fix load kraken bundle from env and native side. https://github.com/openkraken/kraken/pull/1098
    • Fix crash when reload page. https://github.com/openkraken/kraken/pull/1102
    • Fix stack overflow when working with multiple thread. https://github.com/openkraken/kraken/pull/1086
    • Fix sepeated setting of style is invalid. https://github.com/openkraken/kraken/pull/1088
    Source code(tar.gz)
    Source code(zip)
  • 0.10.0(Jan 12, 2022)

    Break Changes

    • Kraken.loadURL, Kraken.loadContent, Kraken.loadByteCode are deprecated. Please use KrakenBundle.fromUrl, KrakenBundle.fromContent instead.
    • Flutter Widget API had been upgraded, please refer to https://openkraken.com/guide/advanced/widget-custom-element for more info.

    Big News

    • Support using Flutter Widget as HTML Custom Element which can greatly extend the capability of Web, refer to this doc for detailed use.
    • Performance optimized:
      • Page load time reduced 10%.
      • Scrolling FPS incrased 40%.
    • Linux platform supported.
    • Support Flutter 2.5.3.

    Features

    • Support defining Flutter widget as HTML custom element. https://github.com/openkraken/kraken/pull/904
    • Support style element and className attribute. https://github.com/openkraken/kraken/pull/656
    • Support link element and CSS variables. https://github.com/openkraken/kraken/pull/961
    • Support assets: protocol to unify the means to load local assets for different platforms. https://github.com/openkraken/kraken/pull/866
    • Support pause kraken pages when navigator changes. https://github.com/openkraken/kraken/pull/877
    • Support linux platform. https://github.com/openkraken/kraken/pull/887
    • Support customize kraken dynamic library path. https://github.com/openkraken/kraken/pull/1048

    Bug Fixed

    • Fix width error in case of min width width padding. https://github.com/openkraken/kraken/pull/843
    • Fix percentage with decimal point. https://github.com/openkraken/kraken/pull/845
    • Fix iOS App store certificate validation. https://github.com/openkraken/kraken/pull/847
    • Fix text height with text-overflow ellipsis. https://github.com/openkraken/kraken/pull/848
    • Fix clone documentFragment node support. https://github.com/openkraken/kraken/pull/851
    • Fix layout wrapping space. https://github.com/openkraken/kraken/pull/856
    • Fix position placeholder offset not including margin. https://github.com/openkraken/kraken/pull/857
    • Fix position sticky fail with overflow hidden. https://github.com/openkraken/kraken/pull/858
    • Fix HTMLAnchorElement lack full property support. https://github.com/openkraken/kraken/pull/864
    • Fix HTMLBRElement size not correct. https://github.com/openkraken/kraken/pull/867
    • Fix crash due to disposeEventTarget sync implementation. https://github.com/openkraken/kraken/pull/873
    • Fix image performance by add image cache. https://github.com/openkraken/kraken/pull/879
    • Fix empty text node renderObject. https://github.com/openkraken/kraken/pull/881
    • Fix previous blank of text node. https://github.com/openkraken/kraken/pull/886
    • Fix only trigger gc once when disposed. https://github.com/openkraken/kraken/pull/892
    • Fix crash due to weak reference between style and element. https://github.com/openkraken/kraken/pull/895
    • Fix layout performance by caching constraints. https://github.com/openkraken/kraken/pull/897
    • Fix sliver child is text without renderer should not accept. https://github.com/openkraken/kraken/pull/898
    • Fix renderObject and element memory leaks. https://github.com/openkraken/kraken/pull/900
    • Fix hit test children not works in sliver list. https://github.com/openkraken/kraken/pull/905
    • Fix intersection observer performance. https://github.com/openkraken/kraken/pull/908
    • Fix crash when reportError. https://github.com/openkraken/kraken/pull/913
    • Fix style fail after resize. https://github.com/openkraken/kraken/pull/916
    • Fix some sliver usage cases. https://github.com/openkraken/kraken/pull/922
    • Fix free event targets properties by gc mark. https://github.com/openkraken/kraken/pull/929
    • Fix insert before fixed element. https://github.com/openkraken/kraken/pull/930
    • Fix document.createElement in multiple context. https://github.com/openkraken/kraken/pull/935
    • Fix error due to lacking negative length validation. https://github.com/openkraken/kraken/pull/938
    • Fix bridge memory leaks. https://github.com/openkraken/kraken/pull/939
    • Fix nested fixed element paint order. https://github.com/openkraken/kraken/pull/947
    • Fix image natural size with same url. https://github.com/openkraken/kraken/pull/948
    • Fix createElement and createTextNode performance. https://github.com/openkraken/kraken/pull/952
    • Fix text not shrink in flex container. https://github.com/openkraken/kraken/pull/980
    • Fix text rendering performance. https://github.com/openkraken/kraken/pull/990
    • Fix flex stretch height when positioned child exists. https://github.com/openkraken/kraken/pull/1004
    • Fix transform should avoid trigger layout. https://github.com/openkraken/kraken/pull/1008
    • Fix ui command buffer instance leak. https://github.com/openkraken/kraken/pull/1014
    • Fix element attributes incorrect reference count. https://github.com/openkraken/kraken/pull/1020
    • Fix relayout boundary of flex item. https://github.com/openkraken/kraken/pull/1023
    • Fix element insert order of insertBefore. https://github.com/openkraken/kraken/pull/1024
    • Fix event target string property leak. https://github.com/openkraken/kraken/pull/1028
    • Fix reposition children logic lacking when position changed. https://github.com/openkraken/kraken/pull/1033
    • Fix this_val on global func call. https://github.com/openkraken/kraken/pull/1036
    • Fix event type atom id changed when free. https://github.com/openkraken/kraken/pull/1040
    • Fix offsetTop and offsetLeft should relative to body element if no positioned parent found. https://github.com/openkraken/kraken/pull/1041
    • Fix percentage of positioned element. https://github.com/openkraken/kraken/pull/1044
    • Fix input should blur when click other target. https://github.com/openkraken/kraken/pull/1052
    • Fix positioned element logical width/height calculation. https://github.com/openkraken/kraken/pull/1053
    Source code(tar.gz)
    Source code(zip)
  • 0.9.0(Nov 4, 2021)

    Big News

    The QuickJS engine is now landed on kraken and we decided to replace our original JavaScriptCore implementation, which can provide low latency page init time and memory usage.

    Break Changes

    • Kraken.defineCustomElement API had been redesigned, now you can define both element and widget with the same API. https://github.com/openkraken/kraken/pull/792

    Features

    • Migrate JavaScript Engine from JavaScriptCore to QuickJS.
    • Support query attributes on element from document.querySelector and document.querySelectorAll. https://github.com/openkraken/kraken/pull/747
    • Auto detect physical device type and use different scroll animation behavior. BouncingScrollPhysics on iOS and ClampingScrollPhysics on Android. https://github.com/openkraken/kraken/pull/750
    • Add empty SVGElement tags but not svg rendering, to let vue app works. https://github.com/openkraken/kraken/pull/757
    • Add Apple silicon support. https://github.com/openkraken/kraken/pull/767
    • Add Webpack HMR support. https://github.com/openkraken/kraken/pull/785

    Bug Fixed

    • Fix async error when update src property on image element. https://github.com/openkraken/kraken/pull/759
    • Fix http-cache not updating when last-modified headers on HTTP request changed. https://github.com/openkraken/kraken/pull/784
    • Fix HTML tags can not use custom tags. https://github.com/openkraken/kraken/pull/790
    • Fix rendering error when append child on image elemnet. https://github.com/openkraken/kraken/pull/791
    • Fix translate negative percentage not working. https://github.com/openkraken/kraken/pull/832
    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.9.0.zip(59.21 MB)
    ios.sdk.0.9.0.zip(51.26 MB)
  • 0.8.4(Oct 18, 2021)

    Break Changes

    • Navigator.vibrate API no long support as default. https://github.com/openkraken/kraken/pull/655
    • Rename kraken.setMethodCallHandler to kraken.addMethodCallHandler. https://github.com/openkraken/kraken/pull/658
    • gestureClient API migrated to GestureListener API. https://github.com/openkraken/kraken/pull/716

    Features

    • Support documentFragment. https://github.com/openkraken/kraken/pull/641
    • Add default 1em margin for <p> https://github.com/openkraken/kraken/pull/648
    • Support document.querySelector and document.querySelectorAll. https://github.com/openkraken/kraken/pull/672
    • Improve canvas performance when drawing pictures. https://github.com/openkraken/kraken/pull/679
    • Use xcframework for iOS release. https://github.com/openkraken/kraken/pull/698
    • Support vue-router with History API. https://github.com/openkraken/kraken/pull/711
    • Support <template /> and element.innerHTML API. https://github.com/openkraken/kraken/pull/713
    • Support offline http cache. https://github.com/openkraken/kraken/pull/723

    Bug Fixed

    • Fix webpack hot reload. https://github.com/openkraken/kraken/issues/642
    • Fix hit test with detached child render object. https://github.com/openkraken/kraken/pull/651
    • Fix silver conflict with overflow-y. https://github.com/openkraken/kraken/pull/662
    • Fix child of flex item with flex-grow not stretch. https://github.com/openkraken/kraken/pull/665
    • Fix auto margin in flexbox. https://github.com/openkraken/kraken/pull/667
    • Fix positioned element size wrong when no width/height is set. https://github.com/openkraken/kraken/pull/671
    • Fix scroll not working when overflowY is set to auto/scroll and overflowX not set. https://github.com/openkraken/kraken/pull/681
    • Fix multi frame image can replay when loading from caches. https://github.com/openkraken/kraken/pull/685
    • Fix main axis auto size not including margin. https://github.com/openkraken/kraken/pull/702
    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.8.4.zip(70.60 MB)
    ios.sdk.0.8.4.zip(51.08 MB)
  • 0.8.3+3(Aug 26, 2021)

    Features

    • Support window.onerror and global error event. https://github.com/openkraken/kraken/pull/601
    • Add HTML Head's tags, like <head>, <link>, <style>. https://github.com/openkraken/kraken/pull/603
    • Support customize User-Agent header. https://github.com/openkraken/kraken/pull/604
    • Remove androidx dependence. https://github.com/openkraken/kraken/pull/606
    • Add default margin for h1-h6 elements. https://github.com/openkraken/kraken/pull/607

    Bug Fixed

    • Fix ios build. https://github.com/openkraken/kraken/pull/629
    • Fix crash caused by context has been released. https://github.com/openkraken/kraken/pull/605
    • Fix window.open() not working when bundleURL not exist. https://github.com/openkraken/kraken/pull/612
    • Fix location.href is empty when set onLoadError handler. https://github.com/openkraken/kraken/pull/613
    • Fix http cache should not intercept multi times. https://github.com/openkraken/kraken/pull/619
    • Fix input value when set to null. https://github.com/openkraken/kraken/pull/623
    • Fix input change event not trigger when blur. https://github.com/openkraken/kraken/pull/626
    • Fix keyboard not shown when keyboard dismissed and input gets focused again. https://github.com/openkraken/kraken/pull/627
    • Fix missing HTTP headers with fetch and xhr request. https://github.com/openkraken/kraken/pull/633
    • Fix error when reading local path. https://github.com/openkraken/kraken/pull/635
    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.8.3+3.zip(68.48 MB)
    ios.sdk.0.8.3+3.zip(74.75 MB)
  • 0.8.2(Aug 11, 2021)

    Features

    • Support percentage for translate3d translateX and translateY https://github.com/openkraken/kraken/pull/547
    • Add findProxyFromEnvironment methods in HttpOverrides. https://github.com/openkraken/kraken/pull/551/files
    • Treat empty scheme as https protocol. https://github.com/openkraken/kraken/pull/557/files
    • Support length/percentage value for background-size. https://github.com/openkraken/kraken/pull/568
    • Support dbclick event. https://github.com/openkraken/kraken/pull/573

    Bug Fixed

    • Fix crash when HMR enabled. https://github.com/openkraken/kraken/pull/507
    • Fix parent box height can't auto caculate by scrollable container children. https://github.com/openkraken/kraken/pull/517
    • Fix linear-gradient parse failed when have more than one bracket. https://github.com/openkraken/kraken/pull/518
    • Fix image flex items have no size. https://github.com/openkraken/kraken/pull/520
    • Fix transition throw error. https://github.com/openkraken/kraken/pull/542
    • Fix empty screen in launcher mode. https://github.com/openkraken/kraken/pull/544
    • Fix element instanceof HTMLElement return false https://github.com/openkraken/kraken/pull/546
    • Fix transition animation execution order. https://github.com/openkraken/kraken/pull/559
    • Fix transition of backgroundColor with no default value not working. https://github.com/openkraken/kraken/pull/562
    • Fix opacity 0 not working. https://github.com/openkraken/kraken/pull/565
    • Fix hittest with z-index order. https://github.com/openkraken/kraken/pull/572
    • Fix click event not triggerd on input element. https://github.com/openkraken/kraken/pull/575
    • Fix ios bridge build. https://github.com/openkraken/kraken/pull/576
    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.8.2.zip(68.84 MB)
    ios.sdk.0.8.2.zip(75.40 MB)
  • 0.8.1(Jul 16, 2021)

    Features

    • input element not support maxlength property https://github.com/openkraken/kraken/pull/450
    • support em and rem CSS length https://github.com/openkraken/kraken/pull/475

    Bug Fixed

    • remove same origin policy for xhr https://github.com/openkraken/kraken/pull/463
    • fix error when scroll to top in silver box https://github.com/openkraken/kraken/issues/468
    • fix js contextId allocate order error https://github.com/openkraken/kraken/pull/474 https://github.com/openkraken/kraken/pull/477
    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.8.1.zip(46.65 MB)
    ios.sdk.0.8.1.zip(72.33 MB)
  • 0.8.0(Jun 18, 2021)

    Big News

    • Kraken v0.8.0 now support flutter 2.2.0

    Features

    • Support dart null safety and all dependencies had upgraded.
    • Lock Android NDK version to 21.4.7075529. https://github.com/openkraken/kraken/pull/394
    • Add length value support in background-position https://github.com/openkraken/kraken/pull/421

    Bug Fixed

    • Fix DOM events can't bind with addEventListener https://github.com/openkraken/kraken/pull/436
    • Fix error when setting element's eventHandler property to null https://github.com/openkraken/kraken/pull/426
    • Fix crash when trigger touchcancel events https://github.com/openkraken/kraken/pull/424
    • Fix error when reload kraken pages. https://github.com/openkraken/kraken/pull/419
    • Fix element's doesn't show up when setting display: none to display: block. https://github.com/openkraken/kraken/pull/405
    • Fix empty blank screen in Android / iOS physical devices launching with SDK mode. https://github.com/openkraken/kraken/pull/399
    • Fix WebView (created by iframe element) can't scroll. https://github.com/openkraken/kraken/pull/398
    • Fix percentage length doesn't work in flex layout box. https://github.com/openkraken/kraken/pull/397
    • Fix input element's height can't set with CSS height property. https://github.com/openkraken/kraken/pull/395
    • Fix crash when set element.style multiple times in a short of times. https://github.com/openkraken/kraken/pull/391
    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.8.0+2.zip(46.57 MB)
    ios.sdk.0.8.0+2.zip(72.23 MB)
  • 0.7.3+2(Jun 3, 2021)

  • 0.7.3(May 24, 2021)

    Features

    • Feat: add network proxy interface in dart widget API https://github.com/openkraken/kraken/pull/292
    • Feat: add AsyncStorage.length method https://github.com/openkraken/kraken/pull/298
    • Feat: improve bridge call performance. https://github.com/openkraken/kraken/pull/328
    • feat: add SVGElement https://github.com/openkraken/kraken/pull/338

    Bug Fixed

    • Fix input setting value does not take effect before adding the dom tree. https://github.com/openkraken/kraken/pull/297/files
    • Fix: remove unnecessary flushUICommand https://github.com/openkraken/kraken/pull/318
    • Fix: img lazy loading not work https://github.com/openkraken/kraken/pull/319
    • Fix: touchend crash caused by bridge https://github.com/openkraken/kraken/pull/320
    • Fix: fix target of the event agent does not point to the clicked Node https://github.com/openkraken/kraken/pull/322

    Refactor

    • refactor: position sticky https://github.com/openkraken/kraken/pull/324
    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.7.3+1.zip(46.02 MB)
    ios.sdk.0.7.3+1.zip(58.03 MB)
  • 0.7.2+4(May 8, 2021)

    Bug Fixed

    feat: support mouse event https://github.com/openkraken/kraken/pull/220 fix: event bubble not works properly https://github.com/openkraken/kraken/pull/264 fix: return value of Event.stopPropagation() should be undefined https://github.com/openkraken/kraken/pull/284 fix/text node value https://github.com/openkraken/kraken/pull/279 fix: fix kraken.methodChannel.setMethodCallHandler did't get called before kraken.invokeMethod called https://github.com/openkraken/kraken/pull/289

    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.7.2+4.zip(45.94 MB)
    ios.sdk.0.7.2+4.zip(57.75 MB)
  • 0.7.2(Apr 30, 2021)

    Break Changes

    fix: change default font size from 14px to 16px https://github.com/openkraken/kraken/pull/145

    Bug Fixed fix: modify customevent to event https://github.com/openkraken/kraken/pull/138 fix: layout performance https://github.com/openkraken/kraken/pull/155 fix: fix elements created by new operator didn't have ownerDocument. https://github.com/openkraken/kraken/pull/178 fix: flex-basis rule https://github.com/openkraken/kraken/pull/176 fix: transform functions split error when more than one. https://github.com/openkraken/kraken/pull/196 fix: Fix the crash caused by navigation in dart https://github.com/openkraken/kraken/pull/249 fix update device_info 1.0.0 https://github.com/openkraken/kraken/pull/262

    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.7.2.zip(45.31 MB)
    ios.sdk.0.7.2.zip(57.11 MB)
  • 0.7.1(Apr 9, 2021)

    Bug Fixed

    • fix: resize img wainting for img layouted#86
    • fix: fix: encoding snapshots filename to compact with windows. #69
    • fix: fix insertBefore crash when passing none node object. #70
    • fix: windows platform support build target to Android. #88
    • fix: element size not change when widget size change #90
    • fix: fix navigation failed of anchor element. #95
    • fix: 'kraken.methodChannel.setMethodCallHandler' override previous handler #96
    • fix: repaintBoundary convert logic #111
    • fix: element append order wrong with comment node exists #116
    • fix: fix access Node.previousSibling crashed when target node at top of childNodes. #126
    • fix: fix access Element.children crashed when contains non-element nodes in childNodes. #126
    • fix: percentage resolve fail with multiple sibling exists #144
    • fix: default unknow element display change to inline #133

    Feature

    • feat: support Node.ownerDocument #107
    • feat: support vmin and vmax #109
    • feat: support css none value #129
    • feat: suport Event.initEvent() and Document.createEvent() #130
    • feat: Add block element: h1-h6 main header aside. #133
    • feat: Add inline element: small i code samp... #133
    Source code(tar.gz)
    Source code(zip)
    com.openkraken.kraken.sdk.0.7.1.zip(45.26 MB)
    ios.sdk.0.7.1.zip(36.68 MB)
  • 0.7.0(Mar 19, 2021)

Owner
OpenKraken
A high-performance, web standards-compliant rendering engine based on Flutter.
OpenKraken
Foody - Flutter project to display foods to clients and display charts and has a lot of features , two flutter apps : Android and Web

Foody Flutter project to display foods to the clients and use charts and use a lot of features to complete the process (HUGE APP) There two apps: Andr

ABDULKARIMALBAIK 1 Feb 7, 2022
A simple way to bring drag’n’drop to flutter web

drop_zone is commonly used for file choosing by dragging and dropping a file(s) onto a designated widget. The user can then use the dropped html file(s).

Derrick Liu 32 Aug 2, 2022
Flutter is Google's UI toolkit for building beautiful, natively compiled applications for mobile, web, desktop, and embedded devices from a single codebase.

flutter_quize A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if

IQBAL HASAN 3 Aug 24, 2022
A simple Flutter component capable of using JSON Schema to declaratively build and customize web forms.

A simple Flutter component capable of using JSON Schema to declaratively build and customize web forms.

null 3 Oct 2, 2022
Flutter YouTube UI - Web & Mobile: Android | IOS

YouTube Clone UI - Flutter Mobile: IOS | Android Mobile Version: Android | IOS @luanbatistadev Open Source Copyright © 2021-present, Luan Batista. Fac

Luan Batista 5 Sep 22, 2022
I am trying to teach Responsive Ui design. This video for Web and Mobile. This design is suitable for Desktop, Tab, and Mobile platforms.

before clone the GitHub repository please give a star on the repository. I am trying to teach Responsive Ui design. This video for Web and Mobile. Thi

Blackshadow Software Ltd 22 Sep 1, 2022
Fluid layouts allows you to create responsive layout for mobile, web and desktop from a single codebase.

Fluid layout aims to help building a responsive experience through all the different screen sizes. Based in the boostrap approach, FluidLayout calculates a padding content (fluid_padding) that changes depending on the parent size. The Fluid widget uses that padding to set its size

Jaime Blasco 3 Jan 10, 2022
A flutter package for building card based forms.

Card Settings NOTE: THIS IS EFFECTIVELY NULLSAFE BUT CANNOT REFLECT THIS UNTIL cupertino_settings IS UPGRADED. A flutter package for building settings

CodeGrue 445 Dec 26, 2022
Code generation for Flutter Padding widgets based on your constants

Paddinger Paddinger is a Flutter package to generate Padding widgets. Given a set of constants like: @paddinger const double PADDING_NORMAL = 8; A set

Emanuele 14 Oct 20, 2022
An UI based flutter project.

Technoponics Table of Contents About The Project Built With Features Getting Started Roadmap Contact About The Project Technoponics is a app to know a

Yugal Panchal 1 Mar 15, 2022
Expense-o-Meter: a Flutter Based Mobile 📲 Application With a Feasible UI

Expense-o-Meter is a Flutter Based Mobile ?? Application With a Feasible UI ?? that enables the users to Keep a track of their daily income ?? ?? and expenditure.

Aashvi Kothari 6 Nov 11, 2022
A Retro Theme-based e-commerce app for antiques. #Hack20

Motivation ?? ?? With the boons of internet ?? spreading worlwide over the last two decades, e-commerce has evolved to be one of the largest industrie

HIMANSHU SHARMA 79 Dec 19, 2022
A Dart package that detects credit card types based on their prefixes

credit_card_type_detector | Credit Card Type Detector A Dart package that detects credit card types based on the current credit card number patterns T

Tanner Davis 22 Jan 4, 2023
Movies App UI in Flutter using Simple Widgets without Using API's in Flutter.

Movies App UI in Flutter using Simple Widgets without Using API's in Flutter.

Habib ullah 3 May 15, 2022
A flutter plugin for Easily make Flutter apps responsive. Automatically adapt UI to different screen sizes. Responsiveness made simple.

A flutter plugin for Easily make Flutter apps responsive. Automatically adapt UI to different screen sizes. Responsiveness made simple.

Urmish Patel 191 Dec 29, 2022
The Coolicons icon pack for Flutter with over 400 icons available for your flutter project.

coolicons This flutter package allows you to use the Coolicons icon pack. Made from Coolicons. ?? Installation In the dependencies: section of your pu

Stephen Joel 1 May 24, 2022
Flutter-business-card-app - Flutter + Dart business card mobile app

Dart + Flutter Business Card Mobile Application

Mark Hellner 1 Nov 8, 2022
A Flutter project that gives basic flutter design to implement a login UI

Login UI Design A Flutter project that gives basic flutter design to implement a

CABREX 9 Nov 8, 2022
Flutter Complete E-Commerce app (UI by - 'The Flutter Way')

NOT COMPLETED YET! e_commerce A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to ge

null 1 Mar 8, 2022