Building blocks

Xamarin Forms Azure DevOps build/release for Enterprise apps

In January last year, I wrote about building and deploying Xamarin iOS apps using Azure DevOps. I wanted to write about the Android process but never mustered the energy to do it. Nevertheless, today is the day I will. Not a ton has changed since then. Perhaps, the most relevant change is that last time I showed how to deploy directly to the store and this time I want to show how to deploy as an Enterprise app. Also, the build will use the somewhat new yml build pipeline instead of the visual build. ...

April 19, 2020 · 3 min · LPains
Keyboard

Xamarin Forms Handle Android Key Up event

Devices that are optimized for industrial purposes are typically rugged, have physical keyboards, and are very expensive. Why keyboards, you ask? First, a lot of those devices are still running Windows CE. Second, it is not uncommon for them to be used by workers wearing gloves. This is especially true in cold warehouses. Thus, having to use touch in these scenarios is less than ideal. In this post, I wanted to write about how you can handle keyboard events for an Android app built using Xamarin Forms. ...

March 20, 2020 · 2 min · LPains
Timezones

Xamarin Forms converting from one timezone to another

There is a pattern here, I think. I don’t like to work with dates and you probably know that by now. Anyway, don’t like them, got to work with them. In this episode of Pains against dates, I wanted to write about something very specific that I had the pleasure to troubleshoot last week. I have this very important and somewhat old app where all dates are saved using server local time. I don’t recommend doing that BTW. I prefer to save dates in UTC except those where the timezone is irrelevant like Production Date (fixed point in time and location). Using Xamarin, I wanted to show a date that was saved in CST in the phone’s timezone. The TimeZoneInfo class should make this easy, but timezone IDs are different between Android and iOS and I found that out the developer way: Exceptions! ...

March 16, 2020 · 1 min · LPains