From desktop to a cross-platform application

From desktop to a cross-platform application

We assisted our client – a large machinery company – in moving from desktop to a cross-platform application. In the course of the project, we converted an outdated legacy software based on Windows Forms to WPF in C# to enhance user experience of the engineering toolkit.

Today’s tendencies in brief

In the recent years, we’ve seen an ever-growing and omnipresent trend towards cross-platform development. This approach allows designing cross-platform applications running on multiple platforms, including desktop, web and mobile devices.

Number of active smartphone users and share of mobile traffic in the United States

The numbers clearly speak for themselves:

  • In 2022, the number of active smartphone users in the United States has reached 307 million – according to the study, by 2040, this number is estimated to reach 362 million at least
  • With daily smartphone usage rising continuously, more than a half of traffic is mobile

No wonder, more and more businesses all around the world are promptly moving towards cross-platform apps. The profit is considerable.

What about native applications?

Native development is building robust applications running on one specific operating system like Windows. Every single operating system has its design language, integrated environment, and guidelines.

Despite various considerable advantages, native development does also come with multiple disadvantages. These comprise increased cost, long time-to-market, and quite limited flexibility, which makes this approach hardly suitable for a large range of applications.

Most popular cross-platform frameworks

Software developers use various cross-platform frameworks to design and deliver native-looking applications. With one single codebase, software engineers don’t need to write separate code for each operating system, which notably accelerates time-to-market.

Some well-known cross-platform frameworks:

  • Flutter
  • Xamarin
  • Ionic
  • React Native
  • NativeScript
  • Corona SDK
  • Adobe Air
  • Appcelerator Titanium
  • Codename One
  • Live Code
 FlutterXamarinIonicReact Native
LanguageDartC#JavaScriptJavaScript
PlatformsAndroid, iOS, macOS, Windows, Linux, WebAndroid, iOS, macOS, tvOS, watch OS, Windows, UWP, WPFAndroid, iOS, Electron, PWAAndroid, iOS, Mac, Windows, and Web
Usage (Statista Report)42% of surveyed developers11% of surveyed developers16% of surveyed developers38% of surveyed developers
Usage (Stack Overflow)12,64% of all surveyed 5,21% of all surveyed 5,27% of all surveyed 12,57% of all surveyed 
Repositories (Github)481K47K120K351K
Commits (Github)2M190K651K1M
Twitter followers223K70K123K169K
Popular appsGoogle Ads, eBay Motors, Alibaba, ReflectlyThe World Bank, BBC Good Food, Alaska Airlines, Insightly CRMSanvello, Sworkit, MarketWatch, JustWatch,Skype, Airbnb, various modules in Facebook and Instagram

Usage statistics according to Statista and Stack Overflow reports

The features of the mentioned environments:

Flutter 

  • Provides hot reload feature providing for straightforward changes without recompilation
  • Supports Google’s Material Design allowing to use multiple visual and behavioral widgets
  • Includes own rendering machine
  • Supports same user experience and logic across platforms

Xamarin

  • Provides for straightforward updates
  • Uses Base Class Library (.NET BCL), a collection of classes that provide comprehensive features
  • Allows reusing third-party codebases written in Java, Objective-C or C++,
  • Offers near-native user experience

Ionic

  • Provides for quick prototyping
  • Comprises built-in testing and debugging tools
  • Allows using Cordova and Capacitor plugins providing access to built-in features (camera, flashlight, audio recording)
  • Offers multiple UI components

React Native 

  • Provides for modular and intuitive architecture
  • Supports fast refresh feature providing for straightforward changes
  • Provides built-in Flipper debugger starting from version 0.62
  • Offers compatibility with various third-party plugins, for example, Google Maps

Successful conversion to a cross-platform application

To help the client get more market competitiveness, we extended from desktop to a cross-platform application. By converting to WPF in C#, we provided a visually appealing interface and streamlined day-to-day workflows. In addition, we provided future-proof foundations in terms of flexibility and scalability, as well as maintenance. This could be achieved by upgrading to the .NET 6, the long-term support version of the Microsoft framework.

Our team:

  • Used Xamarin to build Android and iOS applications
  • Used Blazor to build the website

The software has heavy mathematical calculations in the backend code, respectively causing considerable risks of breaking the functionality when converting to a cross-platform application.

To ensure easy maintenance, we shared a common business logic in C# across platforms:

  • Essential functions are extracted to common data libraries
  • As changes are introduced, those functions are being automatically included across platforms

We have also integrated a comprehensive authorization module across desktop, web and mobile applications. This way, we ensured data protection and granular permission management. 

Our team also provided additional services to ensure smooth implementation of the delivered functionality, which include:

  • Thorough testing and debugging
  • Technical support and maintenance
  • The creation of detailed user manuals
Learn more about
our modernization expertise
READ MORE

The reason behind our technology stack

When evaluating potential advantages, our team :

  • Chose Xamarin as the preferred framework for the accelerated development of high-performing, feature-rich applications for both iOS and Android platforms
  • Selected Blazor as the best-suiting framework for the seamless delivery of responsive user experience, as it helps reduce server load improving performance, speed, security, and reliability

In addition, this stack has maximized the benefits of reusing the already existing codebase.

With the single codebase written in C# .NET across platforms, our team could leverage multiple advantages:

  • The ability to make straightforward updates, which provides
    • Increased consistency
    • Reduced risk of errors
  • The ability to apply available expertise without involving additional workforce, which respectively
    • Saves time and cost
    • Ensures deep industry understanding, improving efficiency and productivity

Summing up, with the unified codebase written in C# .NET, we achieved greater efficiency and productivity across desktop, web and mobile applications simultaneously eliminating the need for onboarding and training of new team members, which requires considerable resource-allocation.

Main benefits of cross-platform applications

The delivered cross-platform application brought the following benefits to the client company:

  • Reduced application’s prospective costs on development and maintenance 
  • Increased potential customer reach and competitiveness
  • Single codebase accelerating updates and troubleshooting
  • Consistent design and experience across platforms 
Custom software product development
Focus on your business, while we take care of the engineering part
READ MORE

How we can help

Are you ready to modernize your legacy software?

Contact us to get a customized, cross-platform application, precisely tailored to your industry-specific needs, and grow your business!

Abto Software’s engineering specialists will lead you throughout every stage of your transformation journey. Our team covers everything from in-depth technology discovery to deployment and future tech maintenance, so you can focus on your operational processes.

We provide:

Along with:

Contact us

Tell your idea, request a quote or ask us a question