Now with three major desktop computing platforms and two mobile computing platforms on the market, there is a demand to create software that can run on all of them. It also means that the software has to operate in a manner that suits the different user experiences that different computing devices offer.
The differing factors for the user experiences include screen size and general aspect ratio as in “portrait” or “landscape”; whether there is a keyboard, mouse, stylus or touchscreen as a control interface; or, nowadays, whether there are two or more screens. Then you have to think of whether to target a mobile use case or a regular-computer use case and optimise your software accordingly. You may even have to end up targeting “small mobile” (smartphone), “large mobile” (iPad or similar tablet), “desktop” (desktop or laptop computer including 2-in-1 convertibles) or “lean-back” (smart TV / set-top / games console) use cases at once.
Google and Microsoft have established a partnership to make Google’s Flutter 2 software development platform as something to create desktop+mobile software solutions. It is building on Microsoft’s foundation stones like their BASIC interpreters which got most of us in to personal computing and software development.
Here it is about creating common codebases for native apps that target iOS, Android, Windows 10, MacOS and Linux; alongside Web apps to work with Chrome, Firefox, Safari and Edge. But the question that could be raised is if an app is targeted for Google Chrome, would this work fully with other Chromium-based Web browsers like the new Microsoft Edge browser, the Opera browser or Chromium for Linux.
The creation of Web apps may be about being independent of platform app stores which have a strong upper hand on what appears there. Or it may be about reaching devices and platforms that don’t have any native software development options available to average computer programmers.
Some of the targeted approaches for this new platform would include “progressive Web apps” that can run on many platforms using Web technology and omit the Web-browser “chrome” while these apps run.
The new Flutter 2 platform will also be about creating apps that take advantage of multiple-screen and foldable setups. This is in addition to creating fluid user interfaces that can run on single-screen desktop, tablet and smartphone setups. The idea of creating a user interface for multiple-screen and foldable setups is seen as catering to a rare use case because of fewer foldable devices like the Microsoft Surface Duo on the market let alone in circulation. Another question that can crop up is multiple-screen desktop-computing setups and how to take advantage of them when creating software.
What I see of this is the rise of software-development solutions that are about creating software for as many different computing platforms as possible.