Cross-Platform Native Mobile App Development Options

I was recently looking for a platform to build apps that run on both iOS and Android. I wanted to build native apps, not just web views packaged up for an app store.

I’ve written mobile web apps in HTML5 and JavaScript before. These can just be run from the browser, or added to the home screen and run offline. I don’t see the big advantage of writing something in Angular or ionic and wrapping it up in Cordova or PhoneGap any more, unless it’s simply to get it in an app store.

The JavaScript landscape has changed a lot since I made the graphics for this post. React doesn’t even feature on it and that wasn’t even two years ago. I’ve done a bit of work in React for the web, including using ReactJS.NET that integrates it into ASP.NET MVC and ASP.NET Core for server side first rendering.

I thought I’d give React Native another look. Last time I investigated it there was only support for iOS and Android wasn’t ready yet. Unfortunately, although it still works well for iOS I couldn’t get it to work for Android (on either Mac or Windows). Not really the cross-platform framework I was looking for.

Xamarin Studio logo

Next I gave Xamarin a go and I’ve been really happy with it. I’ve mainly been using Xamarin.Forms, which is pretty similar to WPF/UWP and I can write mobile apps in XAML and C# using it.

It will be better when there’s a UI designer but for now I’m happy writing raw XAML, as I’m pretty used to this from when I made WPF apps. Once Xamarin Studio becomes Visual Studio for Mac it should be easier to work graphically. The previewer is already better than the one in Visual Studio on Windows.

The Portable Class Library (PCL) definitions are a little clunky. This should improve when everything converges on .NET Standard (the one library to rule them all). I think this is a better option than the other methods of sharing code between projects.

I’ll write more about my thoughts on code sharing strategies, Xamarin Studio, Xamarin.Forms and show an little game that I’ve built in my next posts. There are three more posts on this topic that will be published this week. Subscribe below to be emailed about them.

P.S. I’m available for hire.

This blog is treeware! If you found it useful then please plant a tree.
Donate a treeDonate a tree🌳🌳