Is it possible to build android widgets in flutter?

17,574

As the OP mentioned in an edit, this isn't currently possible because Flutter uses a custom rendering engine.

Widgets are quite limited in what they can render; the documentation explains that only certain layouts may be used. You could theoretically use Flutter's software renderer to render to an image in a seperate instance from the main one and display that, but that would be very technical, likely not very performant, and not straightforward at all!

Here is a quite detailed tutorial for widgets that guides you through creating a few examples although in Java. The same logic applies with just a few syntactical changes for Kotlin as the classes are pretty much interchangeable. However, realistically, most of the work is in the layout with some wiring in android; if you're already familiar with Android & Java, keep in mind that Kotlin does add a bit to your app size (The Kotlin runtime adds about 7,000 methods and ~1MB to your debug APK from the kotlin on android FAQ) and since most of your logic should be in flutter you probably won't have all that much Kotlin/Java code if this is all you're using it for (although if you're new to both Java & Kotlin, Kotlin is arguably more friendly in some ways).

Also, to be able to communicate between your flutter app and the java/kotlin backend, you'll need to use platform channels as described in the flutter documentation.

Share:
17,574
Adrien Lemaire
Author by

Adrien Lemaire

Updated on June 07, 2022

Comments

  • Adrien Lemaire
    Adrien Lemaire almost 2 years

    The fact that Flutter heavily uses the word widget makes it difficult to find documentation on this topic. On Android (I believe this isn't possible on iOS), we can add widgets on our home dashboard, allowing us to see app-related information or to trigger one-click actions without needing to open the app in question.

    Is it possible to build such "widgets" in Dart & Flutter? Or should I do that in java and somehow plug it with my flutter app?

    Can you share an example of a resource containing one?

    EDIT: I have no android development experience, but it sounds like using a drawable canvas might do the trick. I could find some canvas flutter code, but I can't connect the dots yet.

    EDIT 2: From this Github issue, it looks like writing android home widgets in flutter is a no go since Flutter has its own rendering engine. I'm keen on learning kotlin to get this done, but if someone knew of nice tutorials to help me with that, that would be immensely helpful.

  • stuckedoverflow
    stuckedoverflow over 5 years
    So I guess would be the same for native android live wallpaper? Using openGL?
  • emvaized
    emvaized almost 4 years
    @rmtmckenzie It should be possible using such a method: medium.com/flutter-community/…
  • rmtmckenzie
    rmtmckenzie almost 4 years
    @emvaized that's going the wrong way around - the OP was asking about using flutter to write a home screen widget or action, not to embed a widget in a flutter view.
  • emvaized
    emvaized almost 4 years
    @rmtmckenzie Ah, I see now, I misunderstood... By the way, what are your thoughts on doing what I said? I opened question about it, but it seems to don't gain enough attention
  • SwiftiSwift
    SwiftiSwift about 2 years
    It is possible! Look at this medium article: medium.com/@ashishgarg1998/…