Git Product home page Git Product logo

magpie's Introduction

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

magpie's People

Contributors

58liuyang avatar avenwu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

magpie's Issues

如何适配AndroidX

如何适配AndroidX

是否 在pubspec.yaml里配置 androidX: true 就可以?

不清楚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上完成。


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

概率性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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.