Intuitively, native programming tools for a certain platform should be better than a cross-platform solution. But sometimes such an opinion could be wrong because of prejudices about “universal solutions” and a lack of knowledge about state-of-the-art development tools. With regard to the DevelopEx experience, we have found that modern cross-platform frameworks often are much more suitable for customers than native solutions. In this article, we share our thoughts which support this point of view in a few words and add an additional piece of knowledge about commercial development for multiple platforms.
So, why sometimes multiplatform is better than native?
Similar Logic and User Interface
This is one of the most obvious reasons why multi-platform development could be preferred instead of native. If the same software is going to work on several different platforms and such software should have the same UI then a multi-platform type of development definitely should be considered at least.
There are only two counter questions. The first is: “Will a cross-platform application be as fast as the native might be?” and the second: “Will an application have the same look and feel as one developed using native tools?” Well, it depends on the framework that the developer chooses. The developers at DevelopEx work with the Qt framework. Qt is based on C++, thus the code can be executed on any platform. That is why the answer to the first question is “Yes, the application will be fast as native.” And even faster, perhaps. But will the project look like a native? Yes, it will. The last versions of Qt offer a lot of libraries, tools, and sets of ready-to-use controls that allow the developer to draw the UI exactly as it is using native development tools. Or very similar, at least in the case of Apple’s platforms.
Pressed for Time
For a second let’s imagine a real situation when you need to launch the project on at least two platforms in only a few months time. Again you have good reason to choose multiplatform development. The development time is reduced by almost twice. And not only this. It is easy to understand that each project will have improvements such as new features, UI improvements, etc. after the initial release. When you work with cross-platform development tools the changes affect only one piece of code, not two or more different native projects. It follows then that, you will have a reduced amount of bugs, which will require less time to fix. The end result is that the delivery of new versions is faster and easier.
Well, it is obvious that less development time costs less and no reason to speak about it much. Developing and updating of a cross-platform project is fast and quality is maintained with a relatively small team. Thus, it is more efficient.
What about Reliability?
The cross-platform development has one vulnerability. It is the framework itself that is used for development. If such framework is bad a project will be bad. Thus, it is critically important to use a really sustainable and time-proven solution. As we it is noted above, the DevelopEx company uses the Qt framework mainly for these main reasons:
- Large number of libraries with intuitive APIs for threading, networking, animations and more;
- Excellent documentation, good support and community;
- Qt proven by time and has been vetted by major players;
- It is dual-licensed: both free and commercial;
- Development is extremely fast.
While there are basic factors for defining whether a project is better to develop as cross-platform or native in real life the development of each project depends on a high variety of custom additional custom factors. DevelopEx Company has rich experience (both positive and negative) with regard to the choice of different strategies. Sometimes a project obviously could be realized with a cross-platform approach. But sometimes a customer wants to develop it with native IDEs. Such a solution had a place because the project had already been started by another company. And we must continue the job. After a year we had two completely different projects, with different issues and even different usability. In the end, the support cost was more. Nevertheless, the applications each had a cute native UI, the users liked it and the selling had good start both for the Play market and the App store.
And vice versa, for example, one time we started to develop a desktop application using a C++ programming language and Qt framework. A half a year later the customer wanted to make copies for mobile devices. And all the developers had to do was just port the existing code to Android and iOS platform.
In parallel, we started a completely new sub-project just for Android and iOS using Qt. After two years of active development, we made one more copy of the primary project for macOS. And we only needed to spend about 14 days with an additional three weeks for testing. All these tasks were made by the same number of developers and QA.
Now all projects are almost finished and work as expected. Sure, there were issues but it was significantly more efficient to complete regression testing and to fix the small bugs that occurred mostly with UI. Yes, the app’s UI isn’t completely native to Apple guidelines. And yes, we must reinvent some workarounds for the application of Bluetooth Low Energy. So what? The functionality is all there and the reduction in development time reduced the development costs significantly. The interface is almost completely the same for all platforms. The cost of support for all these projects is almost the same compared to the single desktop app.
Guys, it is just paradise for all.
Images are used in the article: