Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: As a Windows developer and user, can anyone recommend a Mac for testing?
15 points by DarrenDev on Sept 11, 2022 | hide | past | favorite | 51 comments
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.



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.


A few caveats:

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.


Item 2 would definitely be relevant if one was testing Bluetooth device compatibility or multi-display functionality; for general software testing with a wired keyboard and mouse via HDMI and wired Ethernet (a testing scenario that minimizes any latency), it's not so much of an issue.

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.


Thanks


You can get them with 10g Ethernet too.

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.


Can you make a developer account without owning an iPhone? Last I checked you needed one (or a watch) for 2FA.


Sure. IT can fall back to sms.


I know Apple ID does but last I checked there was a requirement for developer accounts to verify through a device.

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.


Macs are one of the possible trusted devices.


Oh good, thanks for confirming! I am in the same situation as OP and not sure whether I need to buy two devices to start publishing.


Keep in mind you should have some some backup way to access your account in case the mac dies. Dunno if Apple IDs support recovery codes or something similar or if you'd actually need two apple devices.


I have a recovery key for "2-step verification", not sure if it works the same for "2-factor authentication". It's a 14-character string. I also have 3 security questions.


Thanks for that. The developer account I wasn't aware I needed.


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.


You get the 90%+ native performance, when passing through a graphics card, right?


Uh cpu onry I’m afraid. I’m going off of the basic geekbench benchmarks. My qemu instance was near the top of the list for all macs they track. It was even higher than one of the Mac “max” pro machines which was interesting.

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.


Hm okay. I passed 14 of 16 threads of my i9 9900k to MacOS and it was barely usable. After passing through a low end AMD gpu, everything was really fast (faster than the 8 core iMac Pro, benchmark wise, iirc).


Did you use KVM accelerator? I think there’s also another flag to use the native cpu without emulation that you can use in your case. But I’m a newb at qemu


I'm not an expert either, i used VT-x, if that's what you mean.


Thanks, I'm gonna try this one at some point.


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.


Is this a solved problem now?

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 gave it a try a while ago and i was actually shocked at how well it worked.

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?


For example you can use quickemu: https://github.com/wimpysworld/quickemu

Haven't tried it with macOS myself, but it worked great for Windows.


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.


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.


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.


> 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.


I think they are basing their recommendation on Apple's trend of offering new features on apple chips only?

https://appletoolbox.com/what-macos-ventura-features-are-lim...

How is voicing an opinion of "dont buy an intel mac" arrogant?


The arrogance exists in the phrasing -> "there is no other answer"

How presumptious.

OP said nothing about new features available on mac only.


> How presumptious.

thankfully this does not come across as equally arrogant?

i think you mean presumptuous?


> i think you mean presumptuous?

yes.


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.


For testing it might even be beneficial to use an underspec'ed device.


Great - thanks very much.


8 GB on an M1 or M2 is not the same as 8 GB on an Intel-based device; the memory bandwidth is significantly higher. A 2x factor (Apple Silicon 8/16 GB vs Intel 16/32) seems about right.


The RAM that is available is faster and the SSD is also quite fast, but it's a little bit misleading to claim that an Apple Silicon Mac with 8 GB of RAM performs similar to an Intel Mac with 16 GB RAM. The Intel Mac will actually almost always perform worse and run hotter with CPU-heavy (but not memory-constrained) tasks, no matter the amount of RAM it has. But if the Apple Silicon Mac has to read / write constantly to and from swap and the Intel Mac doesn't (assuming whatever you do doesn't require an Intel Mac with 16 GB of RAM to swap), you will still notice a difference.

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.


Under many circumstances, even most, this is generally true-ish. However, experimenting with Stable Diffusion in recent weeks has shown me that when you need to load something in memory that's greater than 8GB, only physical memory greater than 8GB will do!


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 :)


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


You mean as a cloud offering, right?


Yes



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.


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


Perfect - thanks.


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, …)


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.


Proxmox can usually tun the latest Mac OS distro.


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)


Macincloud




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: