Monitoring Mobile Apps in Xamarin with Riverbed SteelCentral
The Xamarin platform provides software developers tools for building mobile apps with a common code base for Android, iOS, and Windows Phone devices. By embracing Xamarin, mobile app developers can achieve platform independence throughout the software development lifecycle. The value proposition is clear and the popularity of the platform is skyrocketing with more than 750,000 developers worldwide. Excitement from this community culminates once a year at an event called Xamarin Evolve which is taking place this week in Atlanta. I've been following Xamarin Evolve closely, and one of the most exciting announcements to come out of the conference is a new performance monitoring capability called Xamarin Insights.
At times, it seems like every company marketing web and mobile application services is promoting a unique solution for monitoring performance, but this is a good thing because performance matters and you can't manage what you can't measure. There has been astounding progress in performance management for mobile platforms lately, but most monitoring solutions target specific native languages, like Objective-C and Java (for iOS and Android devices) instead of Xamarin's language of choice, C#.
Xamarin Insights takes a more platform independent approach to performance monitoring. It provides developers an application programming interface (API) to track usage and crash events in order to understand how their apps are being used and when they are crashing. This type of code-level instrumentation provides a feedback loop that is essential in order to maintain a proactive awareness of how mobile apps are performing in the field.
Riverbed offers another good solution for monitoring mobile app performance in Xamarin.
With Riverbed® SteelCentral™ software developers can incorporate performance visibility into mobile apps developed with Xamarin
SteelCentral takes a similar approach as Xamarin Insights by employing a performance monitoring API that leverages the cross-platform paradigm inherent to Xamarin. The API is open source and is called the “Mobile App Instrumentation Telemetry Interface” (MAITI). It empowers Xamarin developers to track anything of interest within the context of their app as its being used by real users. For instance, they can measure the time required to perform in-app purchases or identify which assets users view most frequently.
SteelCentral automatically provides information about the user's environment, such as device type, operating system, and app version. This information can be used to answer questions such as:
- Which mobile devices are most popular with my users?
- When has my app been used in the last 30 days?
- How often does my app crash and where should I focus my testing efforts?
Business insights can be gleaned from SteelCentral by including contextual information with user-defined tags such as usernames, shopping cart contents, or runtime error messages. This is a great way of adding searchable information to transaction data.
There is a significant difference between how Xamarin Insights and SteelCentral are positioned as mobile monitoring solutions. Xamarin Insights emphasizes error analytics and integration with project management tools such as GitHub, Jira, and PivotalTracker. This makes sense given Xamarin’s focus on developer enablement but it's missing the response time based analytics that are so important when identifying slow or inferior user experiences.
This is where SteelCentral shines and comes into play. SteelCentral is designed from the ground up for response-time based analytics. It provides a complete picture of where time is spent in processing user actions. Its fidelity is unsurpassed in tracing web requests across back-end services and although that cross-tier tracing capability has not been fully baked into MAITI yet, the foundation is there.
Riverbed is expanding SteelCentral's value proposition for APM in enterprise environments where user interfaces are delivered through a mix of web applications and mobile apps and requests are processed by a hybrid of cloud-based and on-premises services. Be it iOS or Android, Java or .NET, SaaS or on-prem, the platform independence that SteelCentral strives for is key to instrumenting the next generation of enterprise applications where heterogeneity is endemic.
These are the formidable years for the digital business of mobile computing. Partnerships are being formed and the barriers to entry are low. I fully expect to see rapid enhancements to mobile monitoring technologies such as Xamarin Insights and SteelCentral and I'm excited at the prospect of what's to come.
For more information about how to start using SteelCentral in your own Xamarin project, check out these resources on GitHub: