HACKER Q&A
📣 DarrenDev

As a Windows developer and user, can anyone recommend a Mac for testing?


I'm building a cross platform app using Electron with a .NET 6 backend. I don't use Macs - never have - and I've never built for Macs before.

What I need is a Mac that will run the Electron app that I built. I don't need a dev machine - I just need to be able to install and test the app on a Mac. Is a cheaper Macbook Air enough for this or should I fork out for a more expensive Macbook Pro?

And if I test on a Macbook Air can I be sure it will run ok on a Macbook Pro?

Pretty basic questions I know, but I have zero exposure and experience with Macs but need to be sure my app will run ok on one.


  👤 daviddever23box Accepted Answer ✓
Grab yourself a Mac mini Core i5-8500B (Late 2018): https://everymac.com/systems/apple/mac_mini/specs/mac-mini-c...

It's an hexa-core 8th-generation Intel Coffee Lake processor with 65W TDP, has USB-C / Thunderbolt 3, as well as upgradeable DDR4-2666 SO-DIMM memory modules. It's also one of the last Macs to support dual-boot via Boot Camp, which will provide you a nice sanity check if you need to go deeper into performance profiling (i.e., Windows 10 vs latest macOS).

Also - make sure you have an Apple Developer account, as you will want to be able to appropriately package the application, including signing.

This machine will last a while.


👤 whb07
Dual boot into a linux OS and run :

https://github.com/kholia/OSX-KVM

The repo works well. Tweak the CPU cores and type for emulation. If you're running an Intel CPU you're pretty set as you wont be required to emulate as if you were one (aka running a Ryzen perhaps).

On my Ryzen 16cores, I get about 90%+ performance inside the OSX vs my native machine.

If not going with dual boot, while you can run QEMU with windows, you won't have the KVM accelerator which is how I got high performance. You might want to try nesting a Linux inside Hyper-V and then running Qemu inside of that.


👤 kennend3
What about running MacOS in a Virtual Machine?

There are "one click" options out there for VirtualBox. Basically run a script, come back later and have a fully functional MacOS VM?

You can run this on your windows DEV machine and therefor your costs are zero.


👤 andrewf
The question might be: which Macbook might your prospective usershave? For that reason I'd go with something low spec, maybe even a refurb from https://www.apple.com/shop/refurbished/mac .

(To translate back to the Windows world - if you were making an app for Windows you'd want to make sure it works on the cheap stuff at Best Buy, not just a high-end Dell XPS with 16G RAM, because most users have a cheap thing).

If your app works on a lower-end machine it should work on a higher-end one. You can run and test an Intel build on an ARM machine, you can't run and test an ARM build on an Intel machine.

In the event that your app only runs on high-end Macs - for example if it's an opportunistic port but you don't have the resources to work on Mac performance - you'll probably want to think about how to message that, before you reach the point of people downloading it and becoming loudly disappointed.


👤 lagrange77
I would propose to get a M1 Mac mini. Additionally, if you want to support x86, i would virtualize MacOS on a (your) regular PC, for example with Qemu/KVM or Proxmox, since it will eventually fade away.

👤 runjake
M1 MacBook Air or a low-end M1 Mac Mini.

There isn’t another answer, here. Definitely do not buy an Intel Mac at this point.


👤 nesk_
You can go for a Macbook Air without any issues, everything will work the same between the Air and the Pro (and iMac, and Mac Mini, etc.) since they all operate under the same operating system, macOS.

As a personal advice, you can go with a M1 or M2, depending on your budget, either are really fast processors. However, the standard 8 GiB of RAM really bothers me and I hate the fact Apple still sells some computers with so little memory. I you plan to use this computer ONLY for testing your Electron app, you can go with the basic 8 GiB of RAM, but I REALLY recommend you to upgrade to 16 GiB.

Also, if you're on a budget, check out Apple's refurb or Backmarket, but go with a M1/M2 processor anyway, there is no point to use a Intel chip today.


👤 255kb
I'm building https:/mockoon.com on Windows since 5 years, testing in a Mac VM. So far so good. Never encountered a bug report that wasn't detectable in the VM. Only caveat, testing their new architecture. For this, I kindly asked a friend :)

👤 stop50
I think you can also use a mac from amazon and others that reset the macs after usage.


👤 Nextgrid
The only differences you need to worry about:

1) OS version

2) CPU architecture - M1 vs x86

Besides that, the different models only differ in terms of processing power and specific peripherals (extra cores for hardware-accelerated ML, etc). You'd already know if any of those specific mattered to you.


👤 mardiyah
simply google both H/W's MacOS comparison

if little/no difference or downward compatible, it'll simply work

workable app. in a OS was already guaranteed by and in electron's cross compile / build time


👤 fuweichin
Option 1: macOS Virtual Machine Option 2: Hackintosh Option 3: used MacBook Pro (if you need to support/test @2x Retina Display, Display P3 color space, smooth scroll, …)

👤 AnthonBerg
I’m probably in the minority but I’d do this in a qemu-kvm virtual machine running on Linux and give the macOS VM a real GPU with passthrough. Super snappy.

👤 sys_64738
Proxmox can usually tun the latest Mac OS distro.

👤 futhey
I would get the original M1 MacBook Air from 2020, cheapest deal you can find, something used / refurb / etc. ($700-$850).

Why? It's the cheapest product w/ a full Mac experience. You don't want to plug in a mouse and windows keyboard w/ a random Monitor and save $200, if you've never used a Mac before. You're not going to experience using a MacBook w/ gestures and all the bells and whistles a normal user would have, and that might end up holding you back.

It's like not having a real iOS / Android test device & testing in emulators – you can verify the buttons do what you expect, but you'll never discover the app "feels broken" without Android back button support.

I'm assuming you have enough traction or a serious reason to pursue working on this app, and you're looking to support it long-term, not just a quick port for a project or contract work. If this is starting to sound like too much work for your project, obviously my experience doesn't apply. MacInCloud is a good service if this is like, a contract gig or something minor, or you're not ready to buy an expensive test device.

At the price point though, it's hard to find a fast, Retina Intel model that saves you enough money to be worth it.

There's also some minor packaging quirks for an Electron "universal" installer that will work on both an Intel and M1 Mac. If you get it to build for universal it'll also run on an Intel Mac.

If it feels like a solid app on the 2020 M1 Air, it'll feel right at home on the latest unannounced $4,000 MacBook Pro coming out next month as well. You just have to imagine the notch.

USB-C charging too, so you won't have to worry about replacing a proprietary charger someday, or buying accessories that won't work on your other devices.

Here's some common OS differences to look out for, as well, during development:

- Test your app full-screen and in windowed mode. There's some interaction quirks you might not be used to when you go full-screen and end up with multiple workspaces

- Understand the drag and drop app installation experience, if you've never seen that before. Counterintuitively, most people probably won't prefer to get your app from the macOS App Store (but you probably want to avoid an unsigned app from an "unidentified developer" – could impact your conversion rates)

- If you use menubar functionality test a few other apps to get a feel for the norms around this – people seem to hate electron-looking apps that look non-native in the menubar. Might be a nice thing to add, if it improves your app experience (seems like a mostly unused feature on Windows)


👤 sexy_seedbox
Macincloud