The Fix is In

On the way to updating the Xamarin app that has been available since 2017 a bug crept in on the current users which I didn’t see in that release. It effected only users of a less used feature in it if the user was running the app on an Android 14 phone. It did not effect iOS and Windows users.

It was also hard for me to see the bug since Microsoft fixed it last October and the app had been updated since then and didn’t show in an Android 14 emulator. One of the problems again is that back in the day when I started using Xamarin Microsoft had a free-wheeling forum where it was actually easier to find reported bugs than their current setup. To find it required the right search terms.

The bug was in the DateTime API for Android where it was returning a zero as the timezone offset rather than the time zone for the device. I had to do nothing but release the build that I had for Android which included Android 14 in the manifest as the maximum targeted SDK. There is no Android 14 SDK for Xamarin (there is for MAUI) but Android 13 is okay for the build SDK. This allowed developers to release a Xamarin update beyond May 1st and my update is on Google Play.

In the meantime anyway I attempted using MAUI to update the app at least for Android. As I recently mentioned I don’t like to change the UI on users for an update but for an upgrade (or new edition) is okay. One improvement if the Flyout menu that I use in the Xamarin version since MAUI has the real deal. The one Xamarin was a third party hack.

Most all of the app action takes place on the backend so that doesn’t need to change much except that for the main page is on Android and iOS it uses a CarouselPage. Seems that Xamarin (quietly) replaced (or added) a CarouselView back in the day. News to me. It’s also the replacement for CarouselPage in MAUI.

While the CarouselPage worked fine in Xamarin it the CarouselView in MAUI does not. When such drastic changes take place with frameworks pitchforks and torches break out from the app developers. Such action breaks things. The problem? I think a lot of the staff that Microsoft hires it fresh out of college and ill prepared how the real world works. So you need to support both features which they seem to hate.

For the moment it’s a “showstopper” and I don’t want to replace the “gallery” look of the carousel with tabs.

Trying to work on this also showed me why so many of Microsoft’s MAUI and Xamarin developers use Macs instead of Windows. I tried switching development on my MacBook Air which has only 8 GB of memory using Visual Studio 2022 for the Mac (which goes away in August) and while my Windows PC struggled with building and testing an app no problem on the Mac. However noting that the emulator comes up smaller and dimly remember that Google at some point not only mentioned using the Hyper-V it also mentioned a high power graphics card would suffice which I have on the development PC. Making the emulator screen smaller got rid of performance problems on the PC.

Spring is Here?

Been a couple of months but it is still busy here. In a few days it will be spring but it has been very cold for the California Bay Area. Last week PG&E shut off power for a few hours to install some new utility poles. I went out for some coffee, breakfast, a walk at the park that you see above and stopped off for some grocery shopping. The only thing I bought that needed refrigeration was a brick on cheese. The house was so cold that I was able to leave it on the kitchen table and when the power came back up 3 hours later the cheese was just as cold as it would have been in the refer.

Programming wise I’ve been playing around with the Avalonia cross platform framework. The last time I played around with it probably a couple years ago I thought it wasn’t ready for prime time. Still really not ready at least for my use. My users don’t like the Xamarin UWP UI for Windows. They still like the UI on my 23 year old MFC app.

Microsoft is aware that UWP was kind of a failure. Too me my app has the same information as the old app though improved and some more features and really the difference is the UI frame. I’ve played around with dotnet MAUI and I don’t find WinUI that great an improvement. I guess my users like the “Excel” look from that earlier era.

As for Xamarin, it’s support ends in May even though as I mentioned above they did support Android 14 rather than force us over to MAUI. Users don’t often like changes in interfaces. Some of my competitors leave the old app with it’s interface available and make a new app with a different name and UI. I may go that route. I’ve already written a smaller app for a special purpose with MAUI. So why Avalonia? Kinda like to see if I could quickly do the Xamarin app with it so I can run it on Linux. Then I can answer some of the support questions without firing up a Windows machine.

Another surprise was when I wanted to test the above mentioned MAUI app on iOS, Visual Studio wants a newer Xcode which unfortunately won’t install on my Mac. I need a new one. Grrr, I thought I would have been able to get a couple more years out of the Mac I have. So maybe I better get into the inflation game and raise prices to pay for this stuff.