I recently had the pleasure to do the Keynote at Xamarin Fest LATAM, it was a full packed house at NetEffect Uruguay office (really cool office BTW!) and I wanted to give the audience the reasons on why they should go mobile and how to save money while doing so — using cross-platform native app development tools like Xamarin. These are some notes about it.
Mobile is the trend
…and we are all aware of that, if you are not, you have been living under a rock and here’s why:
The number of global users accessing to internet on a mobile device surpassed desktop users on 2014 and it keeps growing.
If this is not a clear sign to pay attention to, I don’t know what you are waiting for, but maybe you would like to take a look at some other reports by comScore that I think they show some more interesting data about all this topic.
We can see here that time spent on web using a smartphone had a 8% growth from 2013 to 2016, while on a tablet was of 1%, and desktop of 3%. But here’s the deal: Time spent on mobile apps using a smartphone had 80% growth from 2013 to 2016 — WOW; and using a tablet was 9%.
Take a look at this other report, it shows that 75% of mobile users intentionally move apps to their Home Screen making it easier and faster to access their most used and favorite apps — they are not using their mobile browser, they want your app:
On average, a smartphone user uses 27 different apps per month. I guess now you want to be inside that bag, right?
The most relevant platforms
We need now to talk about the big platform players here. The big names as you are probably thinking about are Android and iOS being the first the dominant one, by FAR.
I did use the above Gartner forecast of 2Q12 where Microsoft was promising a good future thanks to new Windows Phone OS editions but as you can see in the following chart by Statista, those numbers really changed by 2016:
What all this means to us is that we should be at least targeting both platforms to reach the massive market out there. But for that, we have to invest a lot of money, right? You are probably thinking about two teams, one for iOS and another for Android. And you are right, I mean, you are right in start thinking about the decision of going native, that’s the way to go as you will be taking advantage of all the platform specific features, all the good performance users are used to experience and same native experience they have in all their other apps — well, the good apps.
iOS requires us to work on a Mac and we must know to code in Objective-C to work on XCode, the IDE that lets you build iOS apps. For Android, that’s a different story, you must know Java and code on Eclipse or Android Studio — which is really cool to be fair, can’t say the same about XCode. And if you don’t want Microsoft to be left behind, you must know the .NET Framework and code in C# while using Visual Studio — probably the best IDE out there, period.
If you start making numbers, you are already thinking how crazy it would be to have at least two teams building the same product. But fear not, Xamarin was bought by Microsoft for one good reason.
Everything you can do with Objective-C and Java, can be done with C# using Xamarin in Visual Studio.
You have one tool (Visual Studio), unified skills (C#, .NET) and you can share code across platforms with Portable Libraries. You will be targeting Windows Desktop, Windows Store, Windows Phone, iOS and Android for the same price. Stats show that on average you just have to code 20% custom code for views of each platform you target, but the good news is that you still have unified skills for that as you will be coding views in XAML, a language made by Microsoft since the days of WPF. No Objective-C, no Java.
So… What is Xamarin?
It’s a Visual Studio extension that you can choose while installing Visual Studio or by modifying your installation by picking the Cross-Platform App development with Xamarin package — 30GB of pure money saving, make sure you have other things to do while installing it.
Xamarin compiles C# code into native applications which is awesome and you can use Visual Studio to do so while still taking advantage of all the great features it has like the excellent debugging experience, IntelliSense and much more. You will be creating apps faster using the same practices .NET developers use all the time by reusing code and binaries here and there and still have an impressive and completely native experience.
Licensing I hear? Of course, in the past it might have been a little expensive but since Microsoft acquired Xamarin, now it is free for up to 5 users or if you already have (or plan to have) Visual Studio Professional or Enterprise, then you are all set, it is included with it. What are you waiting for?
UI Design in Visual Studio
It’s so simple as drag and drop. Remember those days with Windows Forms? Yup, that simple. You can aim for different screen sizes, resolutions and OS versions all configurable from Visual Studio. The Android designer is one of the best out there (I have to mention the Android Studio one is cool too) and the iOS one is great too and already available.
Testing? Don’t even think about buying smartphones for that
Xamarin Test Cloud is a debugging and testing environment in the cloud ready for you to take advantage of it to create test scenarios for all Android and iOS devices. You will be doing simultaneous test in multiple devices, real devices, in the cloud paying as you go with performance monitoring, visual test results and unit tests.
Where to start?
If you are not thinking about doing it yourself, Kaizen Softworks is a nearshore Microsoft shop based in Uruguay, South America, that partners with Nareia to develop great native app experiences, mixing with the power of the Azure cloud, Artificial Intelligence, Machine Learning, Cognitive Services and much more. We would love to engage on a conversation about your business needs, drop me an email at [email protected] and let’s talk.
I based part of my keynote in:
- This comScore report
- This Statista report
- These slides from Amin Espinoza
- My experience on business and software development :)
This is me ending my Keynote at Xamarin Fest LATAM: