Hey Benjamin,
Interesting work. Based on my experience personal experience it’s easier to focus on doing one thing right, which means good performance on mobile - and there are two operating systems with many different Android versions already. Getting good performance out of mobile applications with very useful features like hot reloading for the most common code changes is not easy, as you can see if you look at the complexity of something like React Native.
If you want to support web/browser environment, there are immediately features of Dart which cannot be used, but which are very valuable when creating a framework like Flutter. And another big problem is how to deal with multithreaded rendering in a browser environment. Rik Arends, creator of Makepad & DreemGL (both browser frameworks rendering to WebGL in the browser) spent the last 4 years getting performance out of the WebGL in the browser. Check this presentation he did last week, he talks about how he got incredible performance out of his system:
https://www.youtube.com/watch?v=tVTWdFE6-O0
Text rendering in GL world is complex, especially if you want to achieve the same quality of text rendering you have working in the browser (e.g. HarfBuzz for Chrome). If you use HTML/div for text, you’ll end up with multiple canvas instances to enable z-ordering. It’s just going to be a lot of work.
Using an existing API/library like StageXL might make things easier, since a lot of the problems have been solved there already (
http://www.stagexl.org/). The StageXL folks mention Flutter support in their roadmap:
Of course their idea is to get the StageXL API up and running on top of Flutter.
Personally I think it would be useful to have Flutter running in the browser, as long as it doesn't make the Android & iOS support less powerful.
Cheers, Raju