Skip to content

wip: very much not done #293

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft

wip: very much not done #293

wants to merge 1 commit into from

Conversation

eseidel
Copy link
Contributor

@eseidel eseidel commented May 9, 2025

Attempting to write a post about impeller, why the team did it, what the current status is, etc.

This is a bunch of intro from me, some content of a (partially edited) email from Chinmay. Still needs a lot of work.

Copy link
Contributor

@tomarra tomarra left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There for sure is something here, just need to drag it across the finish line.

---

# Impeller for Flutter and why it matters

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably need some kind of preamble here instead of just going into another heading. A lead in saying why this is a current conversation topic maybe.

false choice.

<img
src=https://www.commitstrip.com/wp-content/uploads/2014/08/Strip-dileme-appli-mobile-650-Finalenglish3.jpg
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should make this a local image with the link back to the source (which you have below)


# Impeller for Flutter and why it matters

## Lessons from JavaScript
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feels like this heading is off. It's more about why Flutter started.


Flutter’s ambition was to take the portability of the web, but mix it with the
quality of mobile frameworks. We succeeded, but had to move off the web’s
language (javascript) in the process and move from on-device, just-in-time (JIT)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
language (javascript) in the process and move from on-device, just-in-time (JIT)
language (JavaScript) in the process and move from on-device, just-in-time (JIT)

compilation to ahead-of-time (AOT) compilation to do so.

A similar story has been playing out since in graphics. Modern graphics use
programs called “shaders” that run on the GPU. Like the rest of the app, these
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
programs called “shaders” that run on the GPU. Like the rest of the app, these
programs called “[shaders](https://en.wikipedia.org/wiki/Shader)” that run on the GPU. Like the rest of the app, these


### Why is all this so hard?

You might ask yourself, why is all this so hard? Why do apps don’t have to think
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
You might ask yourself, why is all this so hard? Why do apps don’t have to think
You might ask yourself, why is all this so hard? Why do apps have to think

device, thus removing this source of stalls. This “ahead of time” compilation
of shaders matches what other mobile frameworks, like UIKit do.

### Why is all this so hard?
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Why is all this so hard?
### Portability is complicated

If you want access to graphics/compute accelerators on the device, you need to
go through a client API like Vulkan, OpenGL, Metal, DirectX, etc. Rendering
engines like Impeller, Skia, Rive, ThreeJS all have the same concern. The client
APIs are extremely low-level, not particularly platform agnostic and difficult
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
APIs are extremely low-level, not particularly platform agnostic and difficult
APIs are extremely low-level, not particularly platform agnostic, and difficult


## Flutter and 3d

In my opinion, the most pressing issue today is that there is no way to create a
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is the right point of view, I. There is a lot of "we" in the previous few paragraphs which I can't tell if you are talking about the community, the flutter team, or shorebird.

about it not because it’s not possible to write those bindings, but because the
developer experience in the best case would be meh.

### Impeller Rollout
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wondering if this section should move up before the "why is this so hard section". Feels like your talking about the state of things and then can get into the alternatives, pros/cons, etc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants