They’re out there, you know?
Your people – doing your business.
Are they getting it right? Are they running into problems? How would you know? Even in a small company you can quickly lose track of everything that is going on. Sure, you can hire people to handle the smaller details so that you can focus on the “big picture”, but even if you are looking at that big picture on a gorgeous 4k Ultra HD TV, it’s still made up of tiny details. The challenge is to get all of the details that ARE your business to form that big beautiful picture. How do you solve that? Yeah, that’s the big picture question that is left up to you.
Choose a platform? I would rather walk the plank!
If you want to start something close to a war, walk into your IT department and ask which mobile platform you should go with. I’ll wait right here…at a safe distance.
As much as we love choice, it can cause massive headaches. Sometimes a choice has to be made: I was on a recent project that wanted to introduce mobile applications for work orders and time entry into their business. Their workforce is in the field, scattered, and highly mobile. So they were looking at cellular-enabled iOS or Android tablets, and they eventually chose a Windows Mobile device. What?!? I was surprised, too, and intrigued.
Why the sudden dark-horse option? Most of the selection criteria made it an even race for an iOS or Android device, but there was one point that was realized late in the process that changed the direction. Users in the field still need to use Windows-specific applications to interface with specialized hardware. So do you give them a laptop AND a tablet? No, you go with the device that meets the needs.
However, your requirements may be very different – you may not even require a specific device. Gartner predicts that by 2017, half of employers will require employees to supply their own device for work purposes (known as Bring Your Own Device). Talk about a cost savings! But you have to be prepared for that.
Let’s examine how Xamarin handles this disparity. Xamarin, recently acquired by Microsoft, is a cross-platform development tool built on the .NET platform.
Applications are written in one language (C#) so you can use existing skills, teams and code. C# is a strongly typed object-oriented language that can use already-existing .NET libraries and components. Development can be done in Visual Studio if your developers are on Windows, or Xamarin Studio if your developers are on a Mac. Your choice, or lack of choice, can now be more directly determined by your business needs and not by the idiosyncrasies of a platform.
I don’t want to repeat myself. I don’t want to repeat myslef. [sic]
Even when devout practitioners meticulously hand-copied sacred texts, variations and errors still crept in.
With multiple platforms in the mix (iOS, Android, Windows, and web) do you want all of the business rules and logic recreated for each platform? If so, know that something WILL be lost.
With Xamarin, applications are written in C# and compiled against the .NET runtime. This means that all of the important, mission-critical parts of your application only have to be written once – having that code in a Portable Class Library (PCL) means that it’s not a copy of the same code on another platform, it is the same code.
When the rules change, that PCL is recompiled and shared between applications. Using the same language, APIs, and data structures allows you to share an average of 75% of app code across the supported platforms. For mobile applications on Android, iOS, and Windows, this percentage can be increased by utilizing Xamarin.Forms for building common UI.
Remember, sharing is caring … which means no duplication!
Your users are already being trained. Don’t rearrange the keys on their keyboard!
How much are you budgeting for training? Not just money – time as well.Training ranks right up there behind User Documentation as one of the most rushed parts of a project. It’s too often crammed into those last few weeks before roll-out and depends heavily on the project being on time, which is rare…still never enough time or money.
Training IS very important but what if you didn’t have to do all of it? Or pay for all of it? What if your users would train themselves eagerly? Done. At least, partially. You have to do your part (always a catch). When you consider mobile applications, don’t ignore the millions of apps on the App Store. You don’t have to try them all, just know that they exist. Know that they are being used and consumed all day, every day and use that to your advantage.
Each platform looks and behaves a certain way. Your users are training themselves every day on how to use their platform of choice: tabs, hamburger menus, slide-overs, carousels. They are swiping, flicking, pinching, and zooming. Do you want your data fast? Then don’t throw clunky UI roadblocks in the way! When you force all of your applications to look and behave the same way across multiple platforms, then you are clearly stating that you either want to spend more time and money training your users or you don’t care how long it takes them to accomplish their task.
Don’t believe me?
Hand an Android device to an iOS user- or any combination of platforms and users of another platform. Sure they can do it, but it slows the user down. Build applications that make sense to your user.
Xamarin starts with C# wrappers around the native UI APIs. The application looks like the native UI because it is the native UI. It is compiled and not interpreted, so it is fast and can take advantage of any hardware acceleration on the device. Users hate sluggish apps – don’t give them one!
The UI code can be written independently for each platform or it can be written using Xamarin.Forms which provides for a common UI language that translates to native controls on the platform. Xamarin.Forms can be written as C# code or using XAML, an HTML-like markup that makes building a unified UI much easier. For more information about XAML in Xamarin, see this blog post.
It all comes down to this…Hold on – we’re not talking about money…exactly.
Consider what makes up your business. It is the ideas, the processes, the decisions, and the work, all coming together – but if you don’t know about it then you can’t use it.
A mobile application that stands on its own can be useful. The calculator app is used frequently but it is limited in scope. Your business must be much broader than that. To do that, you need to connect. You need your field data talking to your sales data talking to your ERP system talking to YOU.
I keep mentioning the three primary mobile platforms, but how many can you name for the middleware and back-end? So many! This is where the data meets the crunching! From a mobile perspective, the choice is clear: you need to talk to as many of them as possible!
Since so many platforms now rely on standard communication protocols, it is easier to find libraries that connect to a wide range of systems. There are a number of components available to connect Xamarin with other systems such as Oracle Mobile Cloud Services, Microsoft Azure, Amazon Web Services, IBM MobileFirst, SAP, and Salesforce.
Other enterprise systems, such as JD Edwards EnterpriseOne, Salesforce, and enterprise data stores, can be accessed using REST services over HTTP. With Xamarin being adopted across the enterprise landscape, these options will continue to expand. Xamarin, as part of the Microsoft solution stack, is recognized as a Leader in the 2016 Gartner Magic Quadrant for Mobile App Dev Platforms.
Choosing a mobile platform can be as easy as it is hard. That was meant exactly as it sounds: confusing. Building the application(s) for your platform(s) can be easier. Xamarin has proven itself as a solid, flexible and capable application development platform. It builds upon a solid foundation and experienced user base to deliver great-looking, high performance applications that can fulfill your business needs.