Magpie is a visualized platform which designed to create, develop and compile your standalone flutter module.

Overview

English 中文说明

Pub Platform License build

Magpie Workflow is a visualized platform which is designed to create, develop and compile your standalone flutter module;

It's designed to manage the complexity of building mixed flutter apps, connect developers and flutter like the Magpie Bridge. This project has three parts:

  • cli: similar to flutter tool, used to create template project and start the web server;
  • workflow web: A flutter-web application used to develop & compile the flutter module;
  • workflow server:A dart server work with flutter-web;

How to use

Install cli

Make sure you have already installed the flutter sdk, the version should be v1.12.x.
If you haven't configure the flutter and dart environment, follow the guide at Magpie CLI#environment

pub global activate magpie_cli

Start Workflow

Since you've installed the mgpcli, you may start to create a flutter module project now:

1.Create module project

mgpcli create -n flutter_sample

2.Start service

cd flutter_sample
mgpcli start

3.Switch to browser

The browser should have been opened instantly,http://127.0.0.1:8080

Contribution

As we mentioned previously, Magpie has multi-parts;

Magpie also has some relative projects, you may check out these codebase as listed bellow:

Magpie Native&Dart SDK

Work with Magpie Workflow, it's native sdk which should be integrated into App. https://github.com/wuba/magpie_sdk

Magpie Fly

A Flutter UIKit. https://github.com/wuba/magpie_fly

Magpie Log

A visualized dynamic programme for log collection based on flutter. https://github.com/wuba/magpie_log

About

This project is maintained by 58 Magpie Tech Team, thank you all for the contributions :)

avenwu, CoCodeDZ, haijun, hxinGood, iamagirlforios, Kcwind, lyx0224, MuYuLi, xiubojin, zdl51go, zhangkaixiao23

Thanks to Alina_0516 for the design.

LICENSE

This project is open source under the BSD license.

We are using the flutter tools codebase and made some changes; There are many libraries we depend on, here is a short list, thanks you all:

effective_dart, provider, qr_flutter, process_run, dio, jaguar

For more details please refer to pubspec.yaml

You might also like...

A Flutter Enterprise Software Development Architecture. Start to develop your bigger app easily.

A Flutter Enterprise Software Development Architecture. Start to develop your bigger app easily.

Jan 7, 2023

Pdf creation module for dart/flutter

Pdf for Dart and Flutter This set of plugins allows Flutter apps to generate and print pdf files to the device printer. This plugin works for iOS and

Jan 3, 2023

react-native native module for In App Purchase.

react-native native module for In App Purchase.

Documentation Published in website. Announcement Version 8.0.0 is currently in release candidate. The module is completely rewritten with Kotlin and S

Dec 31, 2022

Hangman module for CITMATEL's 'strawberry' project

citmatel_strawberry_hangman Hangman module for CITMATEL's 'strawberry' project Getting Started This project is a starting point for a Flutter applicat

Jan 6, 2023

Trivia module for CITMATEL's 'strawberry' project

citmatel_strawberry_trivia Módulo de trivia para el videojuego de CITMATEL Getting Started This project is a starting point for a Flutter application.

Jan 21, 2022

Dart module for communicating with the Veryfi OCR API

Dart module for communicating with the Veryfi OCR API

Dart module for communicating with the Veryfi OCR API Installation Install from https://pub.dev/packages/veryfi_dart Getting Started Obtaining Client

Dec 28, 2022

🧡 The neuralgic heart of the application, this module gathers all the functionalities of the framework.

🧡 The neuralgic heart of the application, this module gathers all the functionalities of the framework.

Mineral Mineral is a robust, powerful and scalable framework designed to let you develop discord bots with the Dart language. The Mineral framework cu

Dec 26, 2022

UIWidget is a Unity Package which helps developers to create, debug and deploy efficient, cross-platform Apps.

UIWidget is a Unity Package which helps developers to create, debug and deploy efficient, cross-platform Apps.

⚠️ The main repository of UIWidgets has been moved to https://github.com/Unity-Technologies/com.unity.uiwidgets. Please visit the new site if you have

Dec 27, 2022

Custom_Empty widget is flutter plugin which is designed to notify user about some event.

Custom_Empty widget is flutter plugin which is designed to notify user about some event.

Empty Widget Custom_Empty widget is flutter custom widget which is designed to notify user about some event. Screenshots Screenshots Screenshots Scree

Nov 17, 2022
Comments
  • 不清楚Mapie workflow 提供的开发编译里的Attach、reload、restart如何使用!

    不清楚Mapie workflow 提供的开发编译里的Attach、reload、restart如何使用!

    1. 创建好flutter_sample 之后,调用mgpcli start 在浏览器打开了一个tab【magpie workflow】,第一步连接设备,第二步开发编译,选择好目录和启动入口文件后。下面该如何操作?(点击 attach 说连接设备超时)

    2. 第二步既然是开发编译,左下角的【使用说明】里却是提示如何在ide里debug。令人费解,workflow开发编译的这项功能是干嘛的,还有提供的attach ,reload,restart,这些操作都可以在ide 里完成。

    3. 我可以把mapie workflow 理解为简化创建工程模板+发布aar两个流程吗? 至于编译和调试,全部在ide上完成。


    以上问题,希望开发者能答疑,祝工作顺利!

    opened by Alexmego 1
  • 概率性Logger崩溃

    概率性Logger崩溃

    概率性logger写入失败,导致服务异常

    {"level":"INFO","message":"[-f, /Users/aven/Android/flutter, -t, /Users/aven/Desktop/MyApplication/canary, -b, release]","time":"2020-06-08 17:30:55.848789"}
    {"level":"INFO","message":"flutterRoot:/Users/aven/Android/flutter","time":"2020-06-08 17:30:55.854787"}
    {"level":"INFO","message":"targetPath:/Users/aven/Desktop/MyApplication/canary","time":"2020-06-08 17:30:55.855147"}
    {"level":"INFO","message":"目录: /Users/aven/Desktop/MyApplication/canary 权限修改","time":"2020-06-08 17:30:55.915820"}
    {"level":"INFO","message":"pub get开始...","time":"2020-06-08 17:30:55.916952"}
    {"level":"INFO","message":"executing: [/Users/aven/Desktop/MyApplication/canary/] /Users/aven/Android/flutter/bin/flutter pub get","time":"2020-06-08 17:30:55.918830"}
    {"level":"INFO","message":"pub get 成功","time":"2020-06-08 17:30:58.271589"}
    Unhandled exception:
    FileSystemException: writeFrom failed, path = '' (OS Error: Broken pipe, errno = 32)
    #0      _RandomAccessFile.writeFromSync (dart:io/file_impl.dart:881:7)
    #1      _StdConsumer.addStream.<anonymous closure> (dart:io/stdio.dart:310:15)
    #2      _rootRunUnary (dart:async/zone.dart:1134:38)
    #3      _CustomZone.runUnary (dart:async/zone.dart:1031:19)
    #4      _CustomZone.runUnaryGuarded (dart:async/zone.dart:933:7)
    #5      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:338:11)
    #6      _BufferingStreamSubscription._add (dart:async/stream_impl.dart:265:7)
    #7      _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:766:19)
    #8      _StreamController._add (dart:async/stream_controller.dart:642:7)
    #9      _StreamController.add (dart:async/stream_controller.dart:588:5)
    #10     _StreamSinkImpl.add (dart:io/io_sink.dart:158:17)
    #11     _IOSinkImpl.write (dart:io/io_sink.dart:291:5)
    #12     _StdSink.write (dart:io/stdio.dart:339:11)
    #13     SummaryStatus._printMessage (file:///Users/aven/.mgpcli/server/lib/src/tools/base/logger.dart:600:12)
    #14     SummaryStatus.start (file:///Users/aven/.mgpcli/server/lib/src/tools/base/logger.dart:594:5)
    #15     StdoutLogger.startProgress (file:///Users/aven/.mgpcli/server/lib/src/tools/base/logger.dart:251:10)
    #16     deleteFile (file:///Users/aven/.mgpcli/server/lib/src/magpie_build_android.dart:464:48)
    #17     cleanCommand (file:///Users/aven/.mgpcli/server/lib/src/magpie_build_android.dart:307:3)
    #18     magpieBuildAndroid (file:///Users/aven/.mgpcli/server/lib/src/magpie_build_android.dart:225:9)
    <asynchronous suspension>
    #19     ReleaseController.build.<anonymous closure> (file:///Users/aven/.mgpcli/server/lib/src/controller/release_controller.dart:39:24)
    #20     _rootRun (dart:async/zone.dart:1126:13)
    #21     _CustomZone.run (dart:async/zone.dart:1023:19)
    #22     _runZoned (dart:async/zone.dart:1518:10)
    #23     runZoned (dart:async/zone.dart:1465:12)
    #24     LoggerUtil.logRunZone (file:///Users/aven/.mgpcli/server/lib/src/utils/logger.dart:28:12)
    #25     ReleaseController.build (file:///Users/aven/.mgpcli/server/lib/src/controller/release_controller.dart:38:35)
    <asynchronous suspension>
    #26     ReleaseController.buildAndroid (file:///Users/aven/.mgpcli/server/lib/src/controller/release_controller.dart:17:12)
    #27     ReleaseController.route (file:///Users/aven/.mgpcli/server/lib/src/controller/release_controller.dart:104:14)
    #28     handleController.<anonymous closure> (file:///Users/aven/.mgpcli/server/lib/src/request_route.dart:22:32)
    #29     Context.execute (package:jaguar/http/context/context.dart:573:27)
    #30     Route.call (package:jaguar/http/mux/route.dart:426:16)
    #31     Jaguar._handler (package:jaguar/serve/server.dart:162:20)
    #32     _RootZone.runUnaryGuarded (dart:async/zone.dart:1316:10)
    #33     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:338:11)
    #34     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:265:7)
    #35     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:766:19)
    #36     _StreamController._add (dart:async/stream_controller.dart:642:7)
    #37     _StreamController.add (dart:async/stream_controller.dart:588:5)
    #38     _HttpServer._handleRequest (dart:_http/http_impl.dart:2828:19)
    #39     new _HttpConnection.<anonymous closure> (dart:_http/http_impl.dart:2586:19)
    #40     _RootZone.runUnaryGuarded (dart:async/zone.dart:1316:10)
    #41     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:338:11)
    #42     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:265:7)
    #43     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:766:19)
    #44     _StreamController._add (dart:async/stream_controller.dart:642:7)
    #45     _StreamController.add (dart:async/stream_controller.dart:588:5)
    #46     _HttpParser._headersEnd (dart:_http/http_parser.dart:374:19)
    #47     _HttpParser._doParse (dart:_http/http_parser.dart:703:15)
    #48     _HttpParser._parse (dart:_http/http_parser.dart:320:7)
    #49     _HttpParser._onData (dart:_http/http_parser.dart:812:5)
    #50     _RootZone.runUnaryGuarded (dart:async/zone.dart:1316:10)
    #51     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:338:11)
    #52     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:265:7)
    #53     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:766:19)
    #54     _StreamController._add (dart:async/stream_controller.dart:642:7)
    #55     _StreamController.add (dart:async/stream_controller.dart:588:5)
    #56     _Socket._onData (dart:io-patch/socket_patch.dart:1831:41)
    #57     _RootZone.runUnaryGuarded (dart:async/zone.dart:1316:10)
    #58     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:338:11)
    #59     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:265:7)
    #60     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:766:19)
    #61     _StreamController._add (dart:async/stream_controller.dart:642:7)
    #62     _StreamController.add (dart:async/stream_controller.dart:588:5)
    #63     new _RawSocket.<anonymous closure> (dart:io-patch/socket_patch.dart:1379:33)
    #64     _NativeSocket.issueReadEvent.issue (dart:io-patch/socket_patch.dart:899:14)
    #65     _microtaskLoop (dart:async/schedule_microtask.dart:43:21)
    #66     _startMicrotaskLoop (dart:async/schedule_microtask.dart:52:5)
    #67     _runPendingImmediateCallback (dart:isolate-patch/isolate_patch.dart:118:13)
    #68     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:175:5)
    server terminated, exist code: 255
    logout
    Saving session...
    ...copying shared history...
    ...saving history...truncating history files...
    ...completed.
    Deleting expired sessions...6 completed.
    
    bug 
    opened by avenwu 0
Owner
Wuba
Wuba Open Source
Wuba
A visualized dynamic programming for log collection based on flutter.

A visualized dynamic programming for log collection based on flutter. Pub使用 1. Depend on it Add this to your package's pubspec.yaml dependencies: mag

Wuba 48 Nov 22, 2022
Vineet Kalghatgi 32 May 13, 2022
Toor makes service locators compile-time safe and easy to manage

?? What is Toor Toor makes service locators compile-time safe and easy to manage. ?? Getting Started Define your dependencies somewhere in the project

Arshak Aghakaryan 5 Jul 25, 2022
Input fields for Flutter standalone or within a form

Flutter Input Widgets - Standalone or within a Form → flutter_input This package provides input widgets (fields) to manipulate data. The data to manip

null 7 Mar 14, 2021
A flutter plugin that implements google's standalone ml kit

Google's ML Kit for Flutter Google's ML Kit for Flutter is a set of Flutter plugins that enable Flutter apps to use Google's standalone ML Kit. Featur

kyle reginaldo 2 Aug 29, 2022
Purpose of this project is to create extendable architecture of making platform aware Widgets which automatically select platform specific implementation

Old good factory Main obstacle in creating native experience on Flutter is the fact that you are asked to rebuild two layouts using platform specific

Swav Kulinski (Robotoaster) 101 Oct 14, 2022
Scouter is a package which was made following the goal to provide a NestJS-like experience to Dart Developers that want to develop Rest APIS

Scouter is a package which was made following the goal to provide a NestJS-like experience to Dart Developers that want to develop Rest APIS Features

Vinicius Amélio 3 Sep 12, 2022
Intel Corporation 238 Dec 24, 2022
Drag and drop module for CITMATEL's 'strawberry' project

citmatel_strawberry_dnd Drag and drop module for CITMATEL's 'strawberry' project Getting Started This project is a starting point for a Flutter applic

null 2 Jan 6, 2023