Two years ago, Gartner predicted that “by the end of 2017, market demand for enterprise mobile app development services would grow at least five times faster than internal IT organizations’ capacity to deliver them.” In its 2017 State of Application Development report, OutSystems states that mobile development skills gaps are a “major issue” and that 44 percent of organizations “report a knowledge gap in the skills needed to undertake mobile.”
These stats paint a challenging picture, but if you have experienced Microsoft developers on your team, you may be better off than you realize. Having a skilled Microsoft in-house development team — experienced .NET/C# programmers — is a solid first step toward being able to build successful, high-performing cross-platform mobile apps and IoT experiences. Thanks in large part to Xamarin.
Acquired by Microsoft in 2016, Xamarin allows developers to build Android, iOS, and Windows apps with native user interfaces and shared code across multiple platforms, including Windows and macOS. Because it’s built around a shared C# code base, Xamarin poses a relatively low barrier to entry for experienced C# developers.
- CASE STUDY: How ArcTouch Used Xamarin for Global Lifestyle Brand GUESS’s Mobile Apps
- NEWS: ArcTouch announces Xamarin Accelerator Program
The trick, however, is not merely having a technical mastery of C#. Your team needs to be experts in both the Microsoft technologies and the native mobile platforms. Studies have shown that with enterprise mobile apps there’s still a long way to go when it comes to delivering a great mobile user experience.
However, if you have Microsoft developers on your team already, you have an advantage because they know the C# language they’ll need to be successful on Xamarin. But they’ll also need additional training and hands-on experience to become truly immersed in the differences between developing software in a traditional computing environment and creating a mobile experience. (Of course, you can also partner with a company like ArcTouch, a Xamarin Premier Development Partner, to help jumpstart those efforts and accelerate your product plans.)
Here are five steps that can help your Microsoft development team gain the knowledge and experience they need to master Xamarin and create successful mobile apps for customers and employees:
Step 1. Foster a culture of continuous learning
To be successful, today’s developers need to stay current on all that’s happening — from emerging new programming languages to evolving hardware ecosystems. Fortunately, there are some great ready-made resources from Microsoft and Xamarin that will help raise your team’s mobile game. Sending your C#-savvy team to Xamarin University to gain a baseline understanding of what Xamarin is — and isn’t — can give your team the knowledge bump they need to begin building cross-platform mobile apps. At ArcTouch, for example, we offer each member of our development team Xamarin University subscriptions, along with incentives to complete their Xamarin certification.
Also, if you’ve recently signed up for the Microsoft Developer Network (MSDN), you can get free access to Pluralsight’s library of educational resources for the first year. The hub for all things Microsoft and developer, MSDN offers a variety of subscription options with training materials that give you access to the latest and greatest.
Step 2. Get involved with Xamarin mobile communities
Learning from the source (Xamarin and Microsoft) is great, but getting involved in online development communities with developer peers is an effective way to exchange ideas, learn tips and tricks, and overcome problems. For Xamarin, in particular, user communities can serve as a resource for developers to stay on top of all the latest developments. The following developer communities are our favorites:
- Xamarin Forums: If you’re stuck, this is the place to go to see if anyone else has had the same problem you have. Home to discussions about Xamarin products, tools, and a variety of related development topics.
- Stack Overflow: Stack boasts the largest developer community with 50 million developers visiting the site each month. So, if you want to get the perspective of neutral developers outside of Xamarin or Microsoft property, this is the place to go. Xamarin is a large enough topic that the tag has over 25,000 threads.
- Xamarin Slack channel: You can instantly engage with a growing community of Xamarin developers and designers on Slack.
- Xamarin Samples: Sourced from the community of Xamarin of developers, you’ll find a variety of code samples to get started in all of Xamarin’s product offerings.
- Xamarin Dev Days: Community members run regional events for Xamarin developers — events that are supported by Microsoft. You can find a full schedule of dates/places here.
Step 3. Study the unique constraints of mobile vs. desktop apps
The difference between the mobile and web universe is as dramatic as the variations among planets in our solar system. Understanding these differences and how they impact the user experience (UX), user interface (UI), and performance of your mobile apps can make the difference between an app people can’t live without and one your target users download, use once, and uninstall.
So, where do you start? Here’s a breakdown of the most important constraints that developers new to mobile need to fully understand:
- Connectivity (or lack thereof): Unlike the web dev environment, which assumes users will have an Internet/network connection, mobile developers have to assume the opposite. Apps still need to have limited function in offline mode—and account for different scenarios where bandwidth or the connection is limited.
- Mobile users interact with apps differently: Smaller screens, touchscreen and voice recognition interfaces, accelerometers, built-in GPS, and other features unique to mobile devices mean that desktop and mobile apps have inherently different UX requirements. Developers’ ability to internalize this and make the most of it is key to the success of any mobile app.
- Limited battery life: Mobile apps that require a lot of data consumption and other hardware capabilities use up more power, which drains a device’s battery faster. Mobile developers know that they must be able to build in the desired features and functionality so as not to gobble up more bandwidth and battery power than necessary.
- Architectural patterns: To fully leverage Xamarin’s code-sharing benefits and set the groundwork for a mobile app’s long-term maintainability, it’s important to structure the app in keeping with best practices. Developers should understand and consistently apply architectural patterns like Model-View-ViewModel (MVVM) and Model View Presenter (MVP).
- Unique security concerns: Securing and storing data that is accessed and/or created within a mobile app requires a clear understanding of certain security and storage best practices — which are very different than controlling the flow of data in a web environment.
Step 4. Understand when to use Xamarin.Forms and when not to
At ArcTouch, we’re huge fans of Xamarin.Forms, an abstraction layer that sits atop the Xamarin platform and allows developers to share the user interface layer and ultimately more code across platforms. Xamarin estimates nearly 100% codeshare with Xamarin.Forms projects vs. 75% codeshare without using Xamarin.Forms. But developers must also be able to determine when it might be necessary — more desirable, even — to program certain features using native code for iOS or Android, which is made easier without Xamarin.Forms. Here are some reasons developers might choose to NOT use Xamarin.Forms:
- You need to limit your app’s file size: Since the Xamarin.Forms abstraction layer that allows you to build for iOS and Android typically leads to larger apps, a smaller app size requirement may move you to go with Xamarin Native.
- Your app uses a lot of animation, graphics, or complex UI: Some developers prefer to optimize the performance of graphics-intensive apps, or those with elaborate user interfaces by building them in Xamarin Native.
- You want to use a native feature that’s not available on both iOS and Android: These situations are becoming more rare as iOS and Android operating systems mature and become more similar than different over time. But you may realize that a must-have feature of your app requires Xamarin Native.
At the same time, we want to make sure it’s clear that you can design visually stunning apps using Xamarin.Forms, which is a lot more powerful than many developers and designers realize. We have designed a number of cross-platform apps for clients — including for global lifestyle brand GUESS — where users will never realize that the apps weren’t designed natively because of the highly stylized user interface.
Step 5. Choose the right optimization tools
Before entering any app project, it’s important that the business objectives for that project are clearly defined — and that your team has a plan for how to measure the app against those goals. Depending upon those goals, there are a variety of tools that Xamarin developers can use to optimize apps throughout the development process and after a project is in the hands of users. For example, you can use Microsoft owned HockeyApp, Xamarin Profiler and Xamarin Insights, all now part of the Visual Studio AppCenter (formerly known as Mobile Center), to help you handle testing, distribution and crash analytics.
Analytics services like Google Analytics, Mixpanel, App Annie, and Localytics can help you analyze user experience and measure app engagement. And there are several other mobile analytics tools that are more focused on giving you depth of information in different areas, depending on the nature of your team’s app project.
Seeing the world through a mobile lens
Mobile can’t be done simply by learning a programming language. And there’s no boot camp your Microsoft developers can take that will instantly transform them into Xamarin mobile development superheroes.
But if your team understands the key areas where they need hands-on experience and gain perspective unique to the mobile space, they will be that much farther down the path to success. Over time, and with experience building and optimizing mobile apps, your team can gain the knowledge and experience critical to creating useful and delightful mobile app experiences.
Need help with your Xamarin project?
We have lots of practical experience designing and developing commercial Xamarin apps with companies like GUESS, Hawaiian Airlines, Warner Bros., and more. Whether you’re just getting started on a Xamarin project, or you need some help mid-stream, we’re happy to help out. Contact us today for a free consultation.