James Montemagno
James Montemagno

Live, Love, Bike, and Code.

Tags


James Montemagno

Xamarin.Essentials

Enabling Users to Manage Subscriptions on iOS/Android

You know I love talking about in app purchases and subscriptions. Due to my InAppBilling [https://github.com/jamesmontemagno/InAppBillingPlugin] library I get all the "fun" updates when Apple or Google force developers to make changes to stay compliant. Upcoming is a nice large change from Google to push Android developers to use Billing v4 (which my library does!) and another is that we must now give users a way to easily manage and cancel their subscriptions. You may have recently s…

James Montemagno James Montemagno

How-to Integrate Helpful Support Emails in Mobile Apps with Insightful Data & Logs

In the mad rush to finish my most recent app, My Cadence [https://montemagno.com/introducing-my-cadence-for-ios-a-simple-cadence-sensor-display/], I forgot to integrate an essential feature. A feature that enables my users to easily get a hold of me to report issues or request features, which is of course email support. Both Google Play and the App Store enable you to supply a support website and email, however this is a very lack luster experience for both you and your users. For your users the…

James Montemagno James Montemagno

Asking for app reviews really works! It just takes 1 line of code!

Last week I launched a new app called My Cadence [https://mycadence.app] for both iOS [https://montemagno.com/introducing-my-cadence-for-ios-a-simple-cadence-sensor-display/] and Android [https://montemagno.com/my-cadence-now-available-on-android/]. Even though it was a quick app that only took me a week or so to build and ship [https://montemagno.com/building-testing-shipping-my-cadence-for-ios-in-less-than-a-week/] , I still followed my checklist of best practices to ensure as much success as…

James Montemagno James Montemagno

Building, testing, & shipping My Cadence for iOS in less than a week

My holiday hacking [https://devblogs.microsoft.com/xamarin/xamarin-holiday-season-hack-ideas/] came early this year when I decided to build my own DIY spin bike [https://montemagno.com/building-an-at-home-diy-spin-bike-for-peloton-apple-fitness/]. Soon, after a few rides, my mind started to swirl with app ideas of how to improve my ride. Then when Apple released Apple Fitness+ without support for displaying cadence information from sensors I knew I had to build an app. That app is My Cadence [ht…

James Montemagno James Montemagno

Optimizing Xamarin Apps & Libraries with the Linker

The Xamarin linker is one of the most important pieces of technology when building mobile apps, that no one knows exists. It does all of the hard work for you, stripping out all unused code from libraries that you include in your apps. It should only be used in release mode as it takes extra time to compile your app, but means that your app will be smaller: The linker has specific implementations for both iOS [https://docs.microsoft.com/xamarin/ios/deploy-test/linker?WT.mc_id=docs-montemagno-…

James Montemagno James Montemagno

Unique Device & App Installation Identifiers for Mobile Apps

One common query I get all the time from developers is how to get a unique device or application identifier [https://github.com/xamarin/Essentials/issues/61] for their mobile app. After deciding to not include an API for this in Xamarin.Essentials we heard a lot of different use cases for it including: * Client/Server Communication * Login Validation * In-App Purchase Verification * Licensing Purposes The next obvious question that you may have is why didn't we include it in Xamarin.E…

James Montemagno James Montemagno

Upgrading to Xamarin.Essentials from Plugins

Xamarin.Essentials [https://docs.microsoft.com/en-us/xamarin/essentials/] is a new official library from Microsoft (that I worked on) that provides developers with over 30 cross-platform APIs for their mobile apps to tap into to access native features. Yes, this may sound similar to Plugins for Xamarin, but it is an evolution that is super optimized for each plaform, provides a consistent API, and is super crazy well documented. And of course it is completely open source on GitHub [https://githu…

James Montemagno James Montemagno

Multi-Targeting: Where Did My Files Go? Fixing .NET Core 2.1 SDK Issues

I love multi-targeting for creating libraries, and it is at the core of all of my plugins and Xamarin.Essentials. If you don't know what multi-targeting is don't worry as it is pretty rare that you would need to use it if you are creating apps. Most likely you will want to use multi-targeting in creating cross-platform libraries. In the past you would have to create multiple libraries for each target framework (such as iOS or Android) that you wanted to support if there was platform spec…

James Montemagno James Montemagno