James Montemagno
James Montemagno

Live, Love, Bike, and Code.

Tags


James Montemagno
Author

Android Emulators On Hyper-V Are Pretty Awesome

I have been a mobile developer for 7 years now and since the day I started one of my largest complaints has been the Android emulator. From the very start we had just ARM emulators that were a complete joke to work with as they moved at a snail's pace. From there a bunch of companies attempted to fix the problem by using custom built solutions on top of Virtual Box or Hyper-V. Google has done a lot of work in the last few years to improve the Android emulators with Quick Boot, more customiza…

James Montemagno James Montemagno

Real Time Communication for Mobile with SignalR (Core)

Real Time Communication or RTC as the cool kids call it has always been a hot topic, especially for mobile. In normal mobile development when we wanted to get updates of data we would make a web request to a server, pull down data, and update our user interface. If you wanted to get bits of data on demand and in real time you would have to integrate WebSockets or some sort of push notifications to receive data as it is happening. However, it doesn't have to be anymore with the latest version…

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

PSA: Android Pie Reports "9" for Release Version instead of "9.0"

Let's break down a version number together, or as standard documentation [https://docs.microsoft.com/en-us/dotnet/api/system.version?view=netframework-4.7.2] says, it "represents the version number of an assembly, operating system, or the common language runtime" and that "the format of the version number is as follows (optional components are shown in square brackets ([ and ]): major.minor[.build[.revision]] In the world of .NET this has always been a staple of how we ve…

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

Optimizing C# Struct Equality with IEquatable and ValueTuples

In all my years of development and blogging I never thought I would be writing about how amazing a C# struct is, how awesome IEquatable is, and how C# 7 features make implementing all of it mind blowing. In Xamarin.Essentials we use the C# struct [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/struct] all over the place to encapsulate "small groups of related variables" for our event handlers. They are groups of data that don't need to be created by t…

James Montemagno James Montemagno

Xamarin.Forms: Filtering a ListView with a Bindable Picker

In this edition of "Ask Motz", I will solve a very common problem when working with lists of data and how to filter them. I was recently asked how to do this completely with MVVM and data bindings without having any code behind in the page. > @JamesMontemagno [https://twitter.com/JamesMontemagno?ref_src=twsrc%5Etfw] hi I had a bindable pucker with All,Open and Close as a items which is binding using MVVM pattern with Itemsource property.But I want to filter the list view based on t…

James Montemagno James Montemagno

Resolving Android Support Library NuGet Installation Issues

Xamarin.Essentials [https://docs.microsoft.com/xamarin/essentials/] has to be my favorite project that I have worked on at Xamarin so far. Bringing together over 30 native platform specific APIs into a single API that creates a linker safe and optimized library that so far has really delighted developers. I did some surveys last week and everyone could not stop saying positive things about the library, which is awesome! One thing stood out though that seems to be causing issues, which is how NuG…

James Montemagno James Montemagno