I like going back to take a fresh look at tools and technologies every once in a while. It is always interesting to see what has changed and what has stayed the same – especially mobile platforms because it feels like an area where there is a lot of room for improvement. I am very interested in how these platforms can reduce build costs for our customers.
Some time has passed since I looked at Xamarin Forms for building mobile applications, so I recently revisited it.
You can choose to add Android, iOS, or both. Another option is an out-of-the-box .NET Core Web application.
You might have to download some components for this to work.
This will give you a nice starter setup named “TestApp.”
An Android project “TestApp.Android’, an iOS project “TestApp.iOS”, and a web backend “TestApp.MobileAppService”.
Another great addition is the ability to run directly on an iOS simulator.
Now we have a simple iOS application up and running in the iOS simulator.
Building with Xamarin Forms has a good out of box experience; you can get going pretty quickly.
Probably one of my favorite features is that mocking is in place before you even get started.
Why choose Xamarin Forms over other solutions? I think the choice of a mobile platform isn’t always obvious. If you can avoid going into the native mobile world, I think you are usually better off. Once you are deploying to app stores, you are now part of those release processes, which are not as clean as a standard web-based deployment.
But there are very good reasons to go native mobile. Push notifications, GPS, and other native device features will be more accessible and more usable in a native application, some such as push notifications are only available in a native application.
And once you choose Native, you still have many choices. You can do a hybrid native, such as Ionic, that hosts an Angular (or React) SPA inside of your application. Or you can go with Xamarin, which is more of a native solution but allows you to use your existing .NET knowledge. A Xamarin option gives you the ability to get the benefits of a hybrid solution, but a more native solution. Instead of using a web control hosted in an application, with Xamarin Forms, you get a real native experience. Very powerful stuff.