Skip to content
This repository has been archived by the owner. It is now read-only.
Running Flutter on Xamarin
Branch: master
Clone or download
adamped Closing of project
Sometimes, you just have to cut your losses and be grateful for the learning experience.
Latest commit 48f3050 Jan 13, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
AST Merge pull request #55 from krdmllr/master Jan 10, 2019
Flutter.Sample.App Sample Mainpage Sep 30, 2018
Flutter.Sample.Droid
Flutter.Sample.UWP Fixes Dec 22, 2018
Flutter.Shell.Droid Add FlutterCanvas Activity to Shell Project (#17) Nov 4, 2018
Flutter.Shell.UWP
FlutterBinding fixed canvas issues; workarounds for missing interfaces; manually set… Jan 2, 2019
FlutterBindingSample
FlutterSDK Formatted name in type definitions Jan 2, 2019
flutter
testbed Base constructor call fixes Jan 2, 2019
.gitattributes Initial DartReader and flutter lib example Sep 29, 2018
.gitignore Fixes Dec 22, 2018
CODE_OF_CONDUCT.md
LICENSE Initial commit Sep 29, 2018
README.md
TRANSPILER_README.md Merge branch 'master' into uses_env_var_for_dartsdk Jan 10, 2019
Xamarin.Flutter.sln
XamarinFlutterProject.png

README.md

ABANDONED: While this project is technically feasible, it's not feasible for a couple of developers in their spare time to finish. It was only meant as a proof of concept and has taken several months to reach its current status and it may even take several more to complete. As stated, this project was never expected to be commercially viable. Due to the effort remaining and no future for this project, it was decided it was not worth our time to complete. (Adam Pedley) - Personally I will now be focussing on the Flutter eco-system.

Flutter for Xamarin

This project has no affiliation with Microsoft, Google or the Xamarin or Flutter teams.

This project is still under construction, and a full working version does not exist yet. We will let everyone know when we finally get things running end to end.

The project is designed to make the Flutter SDK available on the .NET Framework, initially with the supported platforms of:

  1. Xamarin.Android
  2. Xamarin.iOS
  3. UWP

There is no reason this couldn't also expand to any place where SkiaSharp is supported.

This project is never expected to be commercially viable, unless it is picked up or supported by a larger company. As it currently stands, this is just a fun side project, done by a bunch of developers in their spare time. We offer no support for solutions ever built with this framework, or any guarantee of completion.

Overview

To make this work, numerous components need to come together.

alt text

Transpiler

The transpiler, will convert the existing Flutter SDK (written in Dart) to C#, for consumption in .NET applications.

Using the DartAnalyzer, we analyze the Flutter SDK, and output C#.

Bindings

Flutter Bindings will include the connection between SkiaSharp and the Flutter SDK. We will not be using the actual Flutter engine, though we may do in the future.

Due to previous exploratory work, the Flutter engine is difficult to integrate with since we need to expose many C++ level APIs. Due to how this is implemented in the Flutter engine currently, it would require certain modifications and would be difficult to keep in sync with the master repository.

Hence, we will map the calls directly to SkiaSharp and Harfbuzz to draw directly on a SkiaCanvas. I could regret this, we shall see :)

Shell

The Shell, is where the Skia Canvas is initialized and platform level events are collected, and sent through to the Bindings project.

License

All code here is licensed under the MIT license

You can’t perform that action at this time.