Why cross-platform capability is vital to the future of development [Q&A]
Increasingly consumers and businesses alike are relying on portable devices, and that means it's important that apps are available across several different systems.
We spoke to Jerome Laban, CTO of Uno Platform -- which allows Microsoft developers, using traditional C# and XAML, to take their apps to iOS, Android, Mac, Linux, and the web -- to find out more about cross-platform development and how it can future-proof applications.
BN: Why has the ability to migrate apps to other platforms become so important?
JL: Software developers are under tremendous pressure to develop more apps faster. This pressure has even caused a revitalization of 'low code' approaches where so-called 'citizen developers' has tools to build applications.
But there isn't a replacement for doing core engineering and development work for heavy lifting, business-critical, or consumer-facing applications. And these developers need to develop ever so faster to any platform or form factor.
Going cross-platform and reusing the same code base makes sense because you not only reuse the codebase, but you are also reusing code that has been well tested and likely has reusable test coverage, is a secure application, and is accessible.
Perhaps as an added benefit, with the economic recession that gets mentioned more often, it is likely that businesses will have to deliver more with less, giving cross-platform approaches yet another boost.
BN: What's in it for developers in terms of leveraging their skill sets?
JL: The value proposition is straightforward -- with Uno Platform, Microsoft developers can use the same skill set from a programming language point of view -- C# and XAML, and everything else they are accustomed to in the ecosystem that has been thriving for decades. This means all familiar tooling such as Visual Studio, VS Code or Rider, or the third-party and open-source ecosystem Microsoft has been fostering for years. And all of that by extending the future UI framework for modern Windows applications -- WinUI.
Take all that, and your exact developer setup is now very productive in delivering or modernizing any app on any platform or device. You can develop more apps in less time. We see much adoption in moving traditional Windows applications to the Web and just greenfield cross-platform Web/Mobile applications.
BN: What about testing? How can you be sure an app will work across different platforms?
JL: As application builders ourselves, we understand the importance of tests. Automated tests are an integral part of the development lifecycle -- both automated unit and UI tests. We are enabling cross-platform UI testing through Uno.UITests library is explicitly built for Uno platform apps and is the cornerstone of testing Uno platform applications. The idea behind it is to simulate user interaction with specific elements of your app and then assert any changes to the rest of the UI. We're also using Uno.UITest on Uno Platform itself to ensure no regressions get through the net.
The apparent benefit of UI testing is that it helps developers identify bugs and bottlenecks. Perhaps most importantly, UI testing Uno platform apps ensures the consistency of the user experience across all platforms and device types.
BN: Why was it important to make Uno Platform open source?
JL: We open-sourced Uno Platform to get greater velocity to Uno Platform for projects we were building for clients. Also, as senior engineers with decades in software development, we are taking a notice of the amount of waste in our industry through constant ‘reinventing of the wheel’, and we think we can do something about it.
Let me explain:
We have been developing Uno Platform since 2013 to build cross-platform mobile apps for our clients like Air Canada or Industry Alliance (By 2018 we had built a very robust mobile cross-platform solution. At that time, WebAssembly came in and brought an excellent opportunity for Uno Platform to be able to deploy to the Web the very same code you had developed for either desktop or mobile.
We decided to open source Uno Platform as we realized that the new surface area we covered after expanding to WebAssembly would be more significant. And at the time, we correctly assumed that many developers would want to get involved in the project. Also, it is essential for developers to have access to source code to adopt any technology these days. Developers are gatekeepers for new technologies which are to be adopted in enterprises.
So, presently we are getting greater velocity for the project through extensive testing our community does by implementing real-world applications with Uno Platform. And we are getting new features and bug fixes from over 230 contributors at GitHub. And as I said, we can stop reinventing the wheel as all the innovation that went into the Windows developer ecosystem can be reused and put on all other non-Windows platforms.
BN: How do you see Uno Platform developing over the next few years?
JL: We see Uno Platform becoming the most productive way to build .NET applications everywhere that .NET runs. If we look at non-.NET ecosystems and the tooling that exists there, we don’t see that on the .NET side. That is validation for us to pursue a similar path and deliver additional platform offerings regarding other considerable inefficiencies, such as the design to development handoff. We think we can reduce the time needed to develop a cross-platform application anywhere from five to 10 times just based on the amount of rework we are removing from repeated cycles between design and development.