News

Going 'Where Developers Are,' Microsoft Contributes Foldable Tech to Flutter

Although Google's Flutter development platform might be seen as a competitor to Microsoft's Xamarin.Forms and .NET MAUI, Microsoft's Surface Duo dev team is continuing to contribute foldable tech to Google's open source mobile-centric project.

"Our goal is to be where developers are and provide the best possible experience when developing for Surface Duo and these announcements only bring us all closer together," said the dev team's Andrei Diaconu in a Feb. 24 Foldable Flutter follow-up.

Microsoft Surface Duo
[Click on image for larger view.] Microsoft Surface Duo (source: Microsoft).

Those announcements follow a March 2021 update about how the Surface Duo team was contributing open source code to boost support for foldable scenarios, which come with inherent development challenges. "We love Flutter and foldable devices and want developers to have the best possible experience when working with both, Diaconu said at the time. "We're contributing to Flutter to give it foldable capabilities."

Dual-Screen App Patterns
[Click on image for larger view.] Dual-Screen App Patterns (source: Microsoft).

Specifically, the team opened pull requests (PRs) on the Flutter project's framework PR (Foldable support & TwoPane Widget #77156) and engine (Display Features support (Foldable and Cutout) #24756.) "We made a lot of progress and are happy to announce that the Engine PR is merged," Diaconu reported last week. "The initial Framework PR was split into smaller PRs, and some of them have also been merged."

The Current State of PRs
[Click on image for larger view.] The Current State of PRs (source: Microsoft).

Those PRs provide functionality around Display Features, which are parts of a display that can be obstructed by hardware features.

It's also easier for developers to try out the dev team's contributions that haven't yet been merged, which used to be much more complicated in that it required a custom configured Flutter Engine. "Things are a lot simpler now," Diaconu said.

Surface Duo Flutter Samples
[Click on image for larger view.] Surface Duo Flutter Samples (source: Microsoft).

He also pointed to new Surface Duo Flutter samples, depicted above.

"These showcase all the design patterns that our team proposes for dual-screen devices," Diaconu said. "They also show you a few things you can do with dialogs or the hinge angle."

The Flutter team made big news recently by announcing new support for creating Windows apps in addition to mobile apps. That happens to be key functionality for .NET MAUI, which Microsoft calls an evolution of Xamarin.Forms because it brings that same Windows app development support.

That might lead some to view Flutter/Google as a competitor to .NET MAUI/Microsoft, but not Diaconu.

"The Flutter team has recently released Flutter 2.10," he said. "The most important announcement made with this release is Windows support reaching production quality. Our goal is to be where developers are and provide the best possible experience when developing for Surface Duo and these announcements only bring us all closer together."

That Google and Microsoft are together at all on this stuff might seem surprising, as Google's head Flutter guy, Tim Sneath, is a former principal lead program manager for Visual Studio who in 2017 left Microsoft to join the Flutter team, aiming a few negative parting shots at Microsoft. Sneath is now the product manager for Flutter and its associated programming language, Dart.

Despite Sneath's criticism of Microsoft when he went out the door, there appears to be no lingering ill will. For example, when Google announced the Windows app support, Microsoft's Kevin Gallo said: "We're delighted to see Flutter adding support for creating Windows apps. Windows is an open platform, and we welcome all developers. We're excited to see Flutter developers bring their experiences to Windows and also publish to the Microsoft Store. Flutter support for Windows is a big step for the community, and we can't wait to see what you'll bring to Windows!"

At the same time, Sneath shouted out some thanks to Microsoft: "Several teams from Microsoft have contributed to today's announcement. In particular, we'd like to express our gratitude to the Fluent design team for their contribution of iconography for Flutter apps on Windows. Their fluentui_system_icons package has been awarded Flutter Favorite status to signify its quality. We've also been impressed with the investments Microsoft has made around accessibility for Windows, and we're grateful for that team's assistance to ensure Flutter has support for screen readers from day one."

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube