I’m often asked about which machine and software do I use for Xamarin development. But the real question beneath this one is more : Do I need to buy a Mac ?
But first of all, let’s make a quick reminder :
- In order to develop an iOS application you need to have a Mac somewhere.
- You cannot legally have a MacOS virtual machine on a Windows PC
So yes, unless you only write Xamarin Android apps you will need a Mac at some point.
When exactly a Mac is needed really depends on your project, your organization and whether you are only using Xamarin Forms or not. There’s a lot of possible answers which I’ll explore in an upcoming post.
My daily workstation is a Macbook Pro Retina mid-2014. It has 16Gb of ram and 512 SSD. My main OS is MacOS but I have Parallels installed with a Windows 10 virtual machine with Visual Studio 2017 and Resharper because it’s just awesome.
I use Office 365 and have all the software installed on the Mac itself.
I use the standard Android emulators and have them run on the Mac itself even if I am coding inside Parallels. The learn more about this read this other post I have written.
I love parallels for the following reasons :
- Awesome integration between the Windows virtual machine and the MacOS host
- The “My Documents/My Downloads” folders are the ones on the Mac
- Being able to open a solution inside Visual Studio directly from the Mac (if the virtual machine is not started, it will start)
- Being able to open software in the Mac directly from Windows
- Great snapshot handling
- Great performance, it is fast, really fast
- Energy efficiency (I can use the Windows for hours while on battery and coding)
Why this setup
As I’m often on the move, I need a powerful and relatively light machine that can allow me to always have a Mac with me while still being able me to run Windows and Visual Studio when needed.
I mostly develop mobile apps. I almost never touch Azure or any server-side related frameworks myself.
I mainly use Visual Studio for Mac using the native approach. On iOS, I use Storyboards which I like to edit using XCode directly. I’m confortable with MacOS, Unix and of course Windows. I am able to switch between them very quickly depending on my work.
Here is a list of the other piece of software I like to use on the Mac :
- Vysor Pro to project and control an android phone on my laptop
- SourceTree as a git client
- CharlesProxy an awesome replacement for Fiddler on MacOS.
- Postman to test api
- Sqlitebrowser to browse and edit sqlite database
There is no single correct Xamarin development machine. In the end it always depends on your needs. Just carefuly review them before buying anything.