The future of Xamarin Forms

Oliver Brown
— This upcoming video may not be available to view yet.

Microsoft have just announced the future of Xamarin and Xamarin forms - the .NET Multi-platform App UI (or MAUI for short). As a name, it’s not great. The highlights are as follows:

  • It’s an evolution of Xamarin Forms. It basically is Xamarin Forms, but finally accepting some breaking changes. To be honest, I’m hoping for a lot since there is a lot of weirdness in Xamarin Forms that has been holding it back.
  • Single project, multi-targeted. It took a long time to get to the point where this was possible. From shared projects, to PCL projects, through .NET Standard. This should make things a lot easier.
  • Still based on platform renderers using native controls. This is a mixed bag. Using native controls has long been a selling point of Xamarin (with or without Forms). With the rise of Flutter this has been shown to be less important. Many people have been asking for consistent platform agnostic renderers instead.
  • The end of “Xamarin” as a name. Some time in the .NET 6 timeline (end of 2021) Xamarin.iOS will become .NET for iOS and Xamarin.Android will be .NET for Android. I have mixed feeling about this since this was a fairly succinct way to describe by top skillset.

I also already have my own enhancement issue submitted.

Jingle Bells in different modes

Oliver Brown
— This upcoming video may not be available to view yet.

Partly because I like seeing things in different permutations, and partly to just try different things with semi-automated video production, I arranged a simple version of Jingle Bells and transposed it to different modes:

Interacting with this video is done so under the Terms of Service of YouTube
View this video directly on YouTube

Accepting money on the iOS App Store - acquiring an EIN

Oliver Brown
— This upcoming video may not be available to view yet.

To sell an app (or an in-app purchase) on the iOS App Store as a non-US citizen, a tax ID is required* to fill in a W8 form. That is either an ITIN (Individual Taxpayer Identification Number) or EIN (Employer Identification number).

As an individual, the ITIN would appear the most correct option. The last time I investigated it, it was a slow process that would require notarised copies of supporting documentation.

Getting an EIN is much easier, and despite the name, does not require you to have employees. All you need to do is be in business (which selling in the app store is) and being a sole proprietor (sole trader in the UK) counts.

In theory, you fill in form SS-4 to get one. It’s very straightforward, and even has an explanation of exactly which parts you need to fill in (look for notes for “IF the applicant… Is a foreign person needing an EIN to comply with IRS withholding regulations”.

In practice, it is even easier than that. You can apply for one over the phone. They will basically ask you the same questions as on the form, and then give you the EIN there and then. I called “first thing in the morning” (6am for them, 11am for me) and got an answer immediately (they warn you that you could be waiting an hour during busier times). The whole process took less than 10 minutes. The hardest part was confirming how my address should be written down. The net result of all this is that Tic-tac-toe Collection’s single in-app purchase has been enabled (at least for beta testers).

* Whether it is actually required is unclear. The old Xbox 360 program, Xbox Live Indie Games, allowed developers to sell without a tax ID, but a 30% withholding tax would be deducted from your earnings. I believe the best result would be the same happening here. It’s also possible Apple would just not allow you to process sales at all.

My second through fifth contributions to Xamarin Forms

Oliver Brown
— This upcoming video may not be available to view yet.

Xamarin Forms took part in Hacktoberfest, an effort to increase contributions to open source.

Like my previous contributions, three quarters of my PRs were targeting macOS. The main reason is the changes were straightforward (which makes it more disappointing how long some of the issues have been around).

I would like to say I wasn’t doing it for the t-shirt, but that wouldn’t really be true. I wouldn’t do it just for stickers though.

New Tic-tac-toe Collection website

Oliver Brown
— This upcoming video may not be available to view yet.

Tic-tac-toe Collection has a new website: [https://www.tictactoecollection.app/].

I switched from using Wordpress.com to using a static site generator, specifically Hugo.

ListView improvements in Xamarin Forms

Oliver Brown
— This upcoming video may not be available to view yet.

Since becoming open source, it has become possible to find out potential upcoming features in Xamarin Forms by just poking around the active branches in the repository (macOS support was visible in the repo before any announcement).

One of them is lv2spike. From just reading the commit messages, it seems this is a new CollectionView, based on UICollectionView for iOS and RecyclerView for Android. This is something that has been needed for a while, but is a big enough undertaking that I understand why it has taken a while. After all the branch suggests this is still just a spike. There are quite a lot of feature requests for the Xamarin Forms ListView that are just not possible (like this one for horizontal layout) mainly because the iOS implementation is based on UITableView.

This will open lots of possibilities. My biggest concern is that despite the push forward with features, Xamarin Forms is accruing bugs even faster, and with the expanded platform support this could just get worse.