Flutter is Google Open Source Project that mixes in several other Google Open Source Projects bought over the years or created in-house – and some not owned by Google but open source – with the goal to give developers the tools and frameworks to create the Graphical User Interfaces for all the big user interface platforms. I’ll explain what is it about, some pros and cons of the toolkit, comparisons, personal opinion about it.
Demo – So here is an app that reads content from the Internet and displays it on a mobile device. It runs on Android, on iOS with absolutely no code modification. The same code also runs as a Desktop Application and as a Web Front-End Application, with very minimal differences, because of the not-production ready state of the Flutter Framework for those platforms.
It tries to follow the idea – Write Once – Compile for Platform X (with no changes) – Run. And it seems to do the job, at least close enough.
Why close enough? Because of the Input Methods and Devices. The interaction with the Mobile Devices is with Fingers, Stylus, Voice, Proximity Sensor, less often with a Mouse or Keyboard. Desktop Machines, Laptops, Netbooks are accessed primarily with a Mouse and a Keyboards and rarely with other Input Devices like presenting pointers, drawing pads and so on. TV with some more complex OS (Android, iOS or 3rd party) has a Infra Red Remote Controller. Other devices that are non of the above – IoT devices, could theoretically have a variety of non-standard Input Methods.
To be able to feel like native for all the Platforms and to be actually useful the One and Only source code must be extensively complete – handling different interactions – hover/mouse-over, on-select, drag, multi-touch, special keys like alt, control, escape, the arrow keys and so on. But even if not all events are handles it is pretty impressive the amount of unification that could do. Of course if everything else that is custom for your business logic needs works.
How it all happens? You could watch the presentation from the Google Team. https://www.youtube.com/watch?v=IyFZznAk69U I’ll jump into technical details about it for you.
Skia – Open Source Graphics Library – the C++ Framework used in Chrome
Trying to be fully multi platform – not just Android and iOS, but Web and Desktop also.
Making it Developer centered – because of developers, developers, developers.
“Open Source” is just a label. You give others the possibility to use without paying what you have created, but most of these users are technical people. The audience that in the end pays the bills and supports whatever project are the non-technical majority. And sense – some part of the developer community fall for the illusionary abstraction of mine/yours/open/, they give time, feedback, contribute to the projects, many times without a pay and that scales up the unscalable.