Giter Club home page Giter Club logo

xamarin.flutter's Introduction

INCOMPLETE: While this project is technically feasible, in its current state it is incomplete and not currently functional. It is perhaps several months away from being fully functional, per the original author's (Adam Pedley) estimates. It was abandoned by its original creator, Adam Pedley, as a proof of concept or experiment. I feel the project has value to the community, so I've since cloned the repository and I hope to tinker on it little by little on my own time. If you're interested in contributing to the project, I welcome you! If you're looking for a working version of Flutter for Xamarin, it's not here yet. But, please go ahead and bookmark, star, and follow this repository for future updates. Issues and comments are always welcome, so long as they follow the code of conduct, however note that as a hobby/side-project my capacity to respond to every request is limited. Note: I may close issues that are out of scope in the near term just to keep the issue tracker easier to manage, but I'll see if I can find a way to track long term backlog issues in another way.

Flutter for Xamarin

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

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

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.