The TAB – mobile development


The TAB is OCC’s Technical Advisory Board, made up of representatives from OCC’s project and product groups. The TAB’s role includes reviewing technology developments and their impact on the company’s software development.

Xamarin & .NET Standard (Core)

.NET Standard is now supported by Xamarin. The .Net Standard is the specification of which .NET APIs are available on all .NET runtimes – including the full framework, Core and now Xamarin. The upshot is that if you use a library or assembly that meets the Standard, then you should be confident that it will work regardless of which runtime you’re using.

This should make bringing in third-party libraries less onerous, as the Standard includes more APIs than even the highest Portable Class Library (PCL) profiles supported. You can think of .NET Standard compliant libraries as a simplified next generation of PCL. There are nice, easy “Add New Project” options for creating your own in Visual Studio.

It’s extra good news on the Xamarin front, because Xamarin still uses Mono, which has traditionally not implemented the full set of .NET Core APIs. That will change now that Xamarin is implementing the Standard.

Currently, while the Standard has been met for Xamarin for Windows projects, it is not quite there for Android/iOS, as some APIs throw Not Implemented exceptions. However, we expect this to change quickly.

Familiarise yourself with what the .NET Standard means and whether it’s relevant to your application, which it will be unless you’re using the full-fat .NET Framework. When evaluating third-party libraries, check which version of the Standard they support.

The Universal Windows Platform (UWP) is Microsoft’s current move to provide support for multiple platforms (desktop, mobile, Xbox, HoloLens) within a single application. Xamarin has put a lot of effort into supporting UWP apps.

Adopt UWP early. If you’ve begun development already, the migration path is meant to be relatively painless.

Is Xamarin the right choice?

Yes. Why?

  • It’s becoming more stable – breaking releases are less common.
  • Updates less frequent, which means less disruption to APIs, etc – the downside is a fix can take a while to come.
  • Now Xamarin is open source, it’s easier to find workarounds to bugs.

Xamarin really does realise the goal of writing one application and having it run in most places with few platform-specific tweaks/issues.

There are a couple of areas for improvement though:

  • Automated testing is still not great. There is no support at all for Windows and iOS is painful to write tests for.
  • Support is not great.

If you are going to be building a mobile app then Xamarin should be at the top of your list. OCC has a lot of experience now so future projects should be much smoother.