James Montemagno
James Montemagno

Live, Love, Bike, and Code.

Tags


James Montemagno

Android

Control Text Size on Android Bottom Navigation View

It seems as though my obsession with the Android Bottom Navigation View aka Bottom Tabs will never end! This time I got a question about controlling the size of the text when the user taps on a tab. The default behavior is to zoom in on the text: Inside of your Android project's Resources/values folder create a new file called dimens.xml if it doesn't exist. Then add the following XML to override the size of the text when it is active and not active: <resources xmlns:tools="http://s…

James Montemagno James Montemagno

Xamarin.Forms: Fully Customize Bottom Tabs on Android & Turn Off Shifting

It seems as if the BottomNavigationView aka Bottom Tabs on Android is one of the top things that I write about on my blogs. There was an introduction post, how to use reflection to remove shifting on native Xamarin.Android, official support in Xamarin.Forms, and most recently how to get a nice drop shadow. I am back one more time to talk specifically about how to finely tune those bottom tabs on android and stop the ridiculous default Android behavior of shifting the tab icons and text. Let's…

James Montemagno James Montemagno

Xamarin.Forms: Drop Shadow/Elevation on Android Bottom Navigation TabbedPage

It is a tale as old of time fighting with Android elevation and drop shadows. First it was the Toolbar on a Navigation page and now it is the new fancy bottom tabs that we got in Xamarin.Forms 3.1. I know what you are thinking... another custom renderer... NOPE! You just have to know to set a few different properties correctly. Here is what we are starting with: <TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winf…

James Montemagno James Montemagno

Enhanced Mobile App Versioning in Azure DevOps (VSTS) with Mobile Tasks

A little over a year ago, I introduced my Mobile App Tasks Extensions for iOS and Android into the Azure DevOps (VSTS) marketplace. For iOS and Android developers it made the tasks of versioning and adjusting package names a breeze. They were written completely in TypeScript with VS Code and of course are open source on GitHub. Since the initial release I have received overall positive feedback and a few feature requests to add new features. Over the last year I teamed up with my good friend And…

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 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.Essentials if everyone seemed to want it? The answer is actually pret…

James Montemagno James Montemagno

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 customization…

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 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 version anything. Major and Minor are required and the other bits are optional, which makes it…

James Montemagno James Montemagno

Resolving Android Support Library NuGet Installation Issues

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 NuGet handles installing and updating Android Suppor…

James Montemagno James Montemagno

I crush code and share it, publish NuGet packages, speak at conferences, upload videos, pretend I am good at playing video games, tweet up a storm, drink gallons of coffee, and ride my bike. Checkout my monthly newsletter that you should subscribe to!