Delivering applications for mobile devices is essential for many business applications. For much of the business software we write at Don’t Panic Labs, some sort of mobile experience is necessary and can be done in many ways.
This post will walk through many of the options available today. There really isn’t an “always do it using technology X.” There are pros and cons to each.
The easiest option is just let the application be a mobile-responsive web application that behaves well on mobile devices. This is often a good option for many of the business applications we write. But sometimes you just need to build a native application and that presents a myriad of choices.
When people think of writing a mobile application, they assume they are diving into with Swift/Objective-C (iOS) or Java (Android). This can be the best option if you already have a team familiar with these technologies. Going fully native is also best if you want to deliver a top-tier experience to the end user. These do have the side effects of causing you to write your application twice, which costs a lot more.
Another option is Xamarin. We use .NET on most of our projects, so using Xamarin feels like home. We have completed many projects using Xamarin and it works great for mobile applications.
Xamarin comes in two flavors. The first is Xamarin Native, where you write your code in C# but develop your UI in the native tools for the platform. This results in an application that behaves like a platform-native application but has common business logic in C#. While this forces some duplicated work, it still achieves much reuse. This is a great option for a .NET team that needs to build some mobile applications.
Xamarin has a second flavor called Xamarin Forms. Xamarin Forms is a lot like WPF. Actually, it is so close to WPF an ex-WPF programmer will feel right at home. Xamarin Forms allows you to write one application and have it run on both iOS and Android. This greatly reduces the development effort. Xamarin Forms does have the issue that it puts you inside of a box. The Xamarin Forms box is pretty large, encompassing many controls. But if you need to use a control outside of their box, you are in for a lot of work. But in many cases, Xamarin Forms fulfills the needs of most business software.
Another great choice is Ionic, which is built onto Apache Cordova (so it basically runs on web technologies inside the mobile device). Running inside of web tech on a device gives you the write-once-run-everywhere advantages like Xamarin Forms. Ionic builds onto of existing web tech such as Angular, so using Ionic also feels right at home to a web developer.
We have also built applications using Telerik’s NativeScript. This is a great option for teams that have web development experience and want web-like tools but still want to build a fully Native application.
As you can see, there are a lot of choices out there.
- Full Native
- Xamarin Native
- Xamarin Forms
- Or even just doing a good responsive web page
We love talking through the options. If you ever have questions about these or other technologies, don’t hesitate to contact us. Feel free to reach me a firstname.lastname@example.org or on Twitter at @chadmichel.