My software develpoment background for the past 25 years has been fixed in OOP. Initially C++, then Java and then C#. About 6 years ago I started developing apps for the iPhone and iPad using Objective C, and I have to say my opinion of Objective C was not very complimentary. I found the syntax obscure and its OO credentials less than stellar. I was even less impressed with Swift, which I thought dumbed down the development at the expence of making the apps more error prone.
I was aware of XAMARIN and the fact that this would provide a C# development env, but at the time the cost of a licence was beyond my budget, so I persevered with Objective C.
Imagine my delight when Microsoft bought out MONO and released XAMARIN for free. This section is about using XAMARIN and devloping Apps for the iPad and iPhone.
First App was a C# program to talk, via telnet, with a Raspberry Pi. Developed it on a Windows PC, and then transferred the code over to a MAC. Loaded up Visual Studio for MAC, opened a project, loaded the code, compiled and ran the program, and it worked. First time. No modifications was so ever. Very impressive. It was a non GUI program, ie command line only, but it was still impressive.
What is less impressive are the hoops you have to go through to get and maintian Xamarin operating on the MAC. Xamarin makes extensive of Xcode SDK – Apples SDK for developing App for Mac, iPad, iPhones. The problem is it keeps being updated. Every Update requires an Update to the Xamarin packages. That , if and of itself would not be aproblem, were it not for the fact that an Xcode release will only work with a given MacOS. So, for example Xcode 12.4 works with MacOS 10, but Xcode 12.5 requires MacOS 11. So now we are into upgrading the OS just to keep being able to Xamarin.
And then you hit the BIG hurrdle – If you Mac is older the 2016, MacOS 11 will not install. Apple have decided that Macs older than 5 years cannot be allowed to run MacOS 11.
So as of today, having had some great fun with Xamarin and actually written a couple of mobile Apps covering both iOS and Android, my dev environment is dead.
The initial release of Xamarin from Microsoft allowed DotNet apps to be developed, but there was no WPF UI, and indeed the press release at the time was that porting WPF would not happen. Which meant that UI was based on ‘Windows UI’ – which for Desktop UI is OK, but for