Cross-Platform App Development for Client in the Cyber Security Industry

Solution Sneak Peek

  • Built a Cross-Platform App from Scratch
  • Solved Complex Integration Challenges
  • Significantly Lowered Costs
  • Solved Feature Compatibility Issues

Tech Stack

  • Xamarin (Mac and Win)
  • MVVMCross to support cross-platform MVVM pattern
  • Native UI on Win (PDF) and Mac (Cocoa)

About the Client

Our client operates in the cyber-security industry to prevent cyber-attacks by securing passwords, protecting endpoints, and controlling application access. They are one of the world’s fastest-growing IT security companies and offer their customers cloud or on-premise software solutions that can be easily implemented. The client developed a server that stores employee personal identifiable information which makes such data confidential in nature.

Business Challenge

The client sells their solution to their clients who need to be able to access the information stored on the server. The data needed to be accessed from two operating systems, MacOS and Windows.

Cross-Platform App for Mac and Windows

Building Cross-Platform app with Xamarin

In order to minimize costs and expedite time to market, we decided to create a cross-platform application since this would significantly lower costs for the client and get the project done faster. We looked at several options: Rich Client Platform (Java), Electron (Javascript) and Xamarin. We decided to go with Xamarin because we needed to integrate with low-level frameworks.

The choice of Xamarin was a very good one since it allowed us to make about 80% of the code reusable for both platforms. We also used MVVMCross as a framework, to create even more cross-platform components. By using this technology, we were able to implement all components including view models as cross-platform C# code. In fact, the only native aspect is the UI itself. We were able to integrate the OSX version with the native FreeRDP client which allowed the user to access remote Windows machines through the RDP client running inside the app on MacOS natively.

Technical Challenges that Needed to Be Solved

In order to create the cross-platform app, we needed to combine two technologies that traditionally are incompatible: the Windows remote desktop protocol Free RDP for MacOS and Xamarin. Both of these technologies needed to coexist inside the cross-platform app. In order to make sure that we could integrate an open-source framework inside Xamarin, we had to dig deep into the code and account for the tiniest possible changes that would allow both of them to function correctly.

Benefits Delivered for the Client

One of the biggest benefits we were able to provide the client was a significant reduction in development costs and time to market. Since there was no need to develop two separate applications we were able to cut the price of development in half. Consequently, this also allowed us to deliver the final project a lot faster. Also, we were able to provide sameness and uniformity to make sure that the overall look and feel of the app is maintained across both platforms.

The cross-platform application looked and felt the same on both Windows and MacOS. The reason we were able to provide such uniformity is that we utilized the same codebase for both.

You may also like

Solution Sneak Peek

  • Built a Cross-Platform App from Scratch
  • Solved Complex Integration Challenges
  • Significantly Lowered Costs
  • Solved Feature Compatibility Issues

Tech Stack

  • Xamarin (Mac and Win)
  • MVVMCross to support cross-platform MVVM pattern
  • Native UI on Win (PDF) and Mac (Cocoa)