Cross-Platform App Development
Case Study for Client in the Cyber Security Industry
Solution Sneak Peek
Built a Cross-Platform App from Scratch
We created cross-platform app that works on both Windows and MacOSX.
Solved Complex Integration Challenges
After conducting intensive research we decided to use Xamarine to integrate with low-level frameworks.
Significantly Lowered Costs
By creating a cross-platform app, instead of separative native ones we were able to significantly lower costs.
Solved Feature Compatibility Issues
We were able to implement the Windows remote desktop protocol Free RDP for MacOS and Xamarin inside the app.
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.
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.