Ask HN: 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.
51 comments
[ 2.7 ms ] story [ 129 ms ] thread1) 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.
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.
Overall I would still prefer an Apple Silicon Mac especially if it's just for testing purposes. It's not like one Electron app will require constant swapping. An M1 Mac mini with 8 GB of RAM is perfectly fine for that.
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.
This or one of the MacBook Airs is more than enough for testing. Unless OPs electron app is doing something seriously computational that would want the best hardware possible. Ie a new AAA game. Doesn’t sound like it.
1) While plenty are still in the wild, Intel Macs have been discontinued. OP already has an x86 build, and ARM64 is a unified future for all Apple devices. At least also get a $569 M1 Mac Mini from Costco or something. M1 Airs can be had new for around $800 at Microcenter.
2) That particular Mac Mini suffers from several design issues. Due to chipset placement, running certain USB devices from the rear ports will prevent Bluetooth from working and cause frustration with wireless peripherals and audio. It's a T2 Intel Mac, which was designed adversarially against security flaws, so it's got some quirks and performance issues to contend with that Apple has ended support for. The official guidance, for instance, for both displays not being detected on that model is "power cycle until they both appear". They also run unusually loud and hot, which means they can't be pushed as hard before they throttle.
The good is that an Intel Mac will inform better design by showing you the greatest % lows your app will ever experience. Because hardware mitigations weren't added by Intel until the 10th gen, they suffer from the poorest syscall and apfs performance.
I agree with the M1 Mac mini 8/256 recommendation, though it represents a plateau of performance that many of the remaining (and many) Intel macOS devices cannot reach. The M1 is faster, therefore perhaps not as representative of currently-supported legacy macOS-on-Intel devices.
Edit: yep, here's the error I get trying to sign on to the Apple Developer Program, after I logged in (which involved getting a code via SMS):
> Your Apple ID currently has two-step verification turned on, but two-factor authentication is required. After you turn on two-factor authentication, signing in to your developer account will require both your password and access to your trusted devices or trusted phone number.
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
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.
Haven't tried it with macOS myself, but it worked great for Windows.
Historically there's always been some messiness with licensing etc that's, depending on your hardware choices, difficult to bypass.
How different is the scene now?
I've done the "hackintosh" route in the past, but this "one script" was so much easier.
The messiness around licensing and "terms of use" still exist but it would seem Apple is not very interested in going after people for it?
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.
I didn’t pass through the gpu, only because I’ve got an NVIDIA one right now. To use the newer OSX you need AMD.
(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.
There isn’t another answer, here. Definitely do not buy an Intel Mac at this point.
Well. Thats an interestingly arrogant take. A lot of Mac users are still using older hardware...a side effect of either Apple's device longevity and quality or painful price point.
There are other answers.
https://appletoolbox.com/what-macos-ventura-features-are-lim...
How is voicing an opinion of "dont buy an intel mac" arrogant?
How presumptious.
OP said nothing about new features available on mac only.
thankfully this does not come across as equally arrogant?
i think you mean presumptuous?
yes.
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)