Introduce frontend_server that flutter tools will use for compilation. (#3982) * Introduce frontend_server that allows for interactive and batch modes. Example of batch mode: ``` $ dart $HOME/p/f/t11/flutter/engine/src/flutter/frontend_server/bin/server.dart --sdk-root=$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk --platform-kernel-dill=$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk/platform.dill $HOME/p/f/t11/flutter/flutter/examples/flutter_gallery/lib/main.dart out: result 79256789-598c-4909-a9e4-0ef36d4c26ba out: 'State&TickerProviderStateMixin^#U0^' is exported from both 'package:flutter/src/widgets/animated_cross_fade.dart' and 'package:flutter/src/widgets/animated_list.dart'. ... out: Superclass has no method named 'hitTest'. out: 79256789-598c-4909-a9e4-0ef36d4c26ba $HOME/p/f/t11/flutter/flutter/examples/flutter_gallery/lib/main.dart.dill $ ``` Example of interactive mode - communication via stdin/stdout: ``` $ dart $HOME/p/f/t11/flutter/engine/src/flutter/frontend_server/bin/server.dart --sdk-root=$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk --platform-kernel-dill=$HOME/p/f/t11/flutter/engine/src/out/android_debug/flutter_patched_sdk/platform.dill --incremental out: Frontend server is ready. in: compile abc.dart out: result fd99c0f9-12bb-4083-818e-2521d454fdc8 out: fd99c0f9-12bb-4083-818e-2521d454fdc8 abc.dart.dill in: accept in: recompile kuka in: 123.dart in: 456.dart in: kuka out: result d12f8d05-6c79-44f7-a775-1d3469e1be53 in: quit $ ``` * Add test. Cleanup dependencies. * One more test with mocks * Remove platform-kernel option. Refactored CompilerOptions. Clean up comments. * Update license * Use Uri.base.resolve consistently. Ensure folder path for sdk root. Fix test. * Fix main_dart for frontend_server build target * Reintroduce .packages file, add README.md, revert changes to licenses_flutter * Run analyzer on frontend-server. Update .packages deps so tests can be run too. * Add analyzer options file * Clean up dependencies * Add frontend_server files to license file back * Fix comment in analysis_options.yaml * Run frontend_server tests in travis * Update licenses * Change a+x permission on travis/test.sh * pub get before pub run test * Fix path to when * Clarify accept/reject instructions * Formatting, fixed docs, style * Update license script to skip .travis.yml, when/example. Update license file. * Update style nits * Fix license * Trim license extracted text. Fix licenses * Update licenses_third_party signature * Few more tests * Update dart license * Update dart license * Style changes. Fix return value for Future<Null>
Flutter is a new way to build high-performance, cross-platform mobile apps. Flutter is optimized for today‘s, and tomorrow’s, mobile devices. We are focused on low-latency input and high frame rates on Android and iOS.
The Flutter Engine is the runtime environment for hosting Flutter applications. Most developers will interact with Flutter via the Flutter Framework and APIs, which run inside the engine.
Flutter is an early-stage open-source project. We are still adding features. However, you can build demos and examples today. We hope you try it out and send us feedback.
For information about using Flutter to build apps, please see the getting started guide.
For information about contributing to the Flutter framework, please see the main Flutter repository.
For information about contributing code to the engine itself, please see CONTRIBUTING.md.
Join us in our Gitter chat room or join our mailing list, flutter-dev@googlegroups.com.