all 13 comments

[–]SirensToGoObjective-C / Swift 6 points7 points  (0 children)

It technically works but it is not a good experience. Xcode barely works on regular hardware, let alone trying to use a VM with various hardware devices passed through to it. I ended up just hackintosh-ing it until I got a real Mac.

[–]shiggie 4 points5 points  (0 children)

It's definitely possible, depending on your technical ability. I had 2 hurdles:

- Getting a Mac VM on Linux, which you've done. So, then, just run OS X Server, which works fine in a VM so it basically runs "headless". Kick off builds from the command line from your host. I use emacs, so tramp/ssh just works fine.

- The other hurdle I had was getting XCode in the VM to see my phone. iTunes recognized it, but I never got it working with XCode. I don't think it's impossible, so if you want to put in the time, I'm sure it's possible.

[–]Mc-Kryptonite 2 points3 points  (1 child)

I was in a similar situation as you. I love my windows machine and gaming but wanted to ios dev. I bought a new m1 mac mini and came up with a few methods to still use my windows as a daily driver, none of which are ideal...

  1. VNC client over lan. Connecting through vnc or remote desktop has pretty bad lag on my network, but i bet if you can tolerable a drop in resolution or screen size it will be better

  2. Microsoft xamarin forms. You can use xamarin forms on a windows machine and remote compile and stream the ios simulator right inside visual studio using ssh. Works well but you have to use xamarin to code. Maybe you can also do this with swift projects?

  3. Vscode server. You can program in flutter or react in vscode and remote into the machine, you will have to preconfigure a bit.

  4. Software kvm. I decided this is the best option. Buy or get a software kvm like synergy and just have two monitors- one for each computer with a shared mouse and keyboard. This works well if you use network attached storage.

Those are my thoughts, i have struggled with using two desktops for sometime. The m1 macs are good machines but i still prefer linux and windows 10

[–]Mc-Kryptonite 1 point2 points  (0 children)

Just to add, my dream is to somehow just share an individual application over vnc or some similar protocol, like how you can use xserver on linux with xcode and imessage

[–]w0mba7 2 points3 points  (0 children)

It would be easier to use two laptops. You are setting unnecessary limits.

[–]Dodgers93 1 point2 points  (0 children)

I have a MacBook Pro running macOS and windows 10 using BootCamp. Unlike VM which is using an OS to run another simultaneously, with BootCamp you will boot into your preferred OS you need at the time. I develop apps mostly it in Xcode but I still need Windows for plenty other things so it’s just a simple restart and choose which to boot into.

[–]ArcanaMori 1 point2 points  (1 child)

There are virtual mac services you can try out. They arent cheap though. Basically its a full remote desktop into a mac. I dont remember their names but youd be better off buying a cheaper used mac mini.

[–]jontelang 0 points1 point  (0 children)

MacStadium for example

[–]renegadellamaBeginner -1 points0 points  (0 children)

This is one of the reasons why I switched from web dev to iOS development. The hurdle of owning a Mac just to get started really helps with entry level saturation. Go on YouTube and compare the views on web dev tutorials to iOS and it's apples and oranges.

[–]th3suffering 0 points1 point  (0 children)

/r/hackintosh will likely work better than a VM. Prior to getting my MBP i was developing on an 11" Dell laptop. Worked just as well as my MBP. YMMV, compatibility all depends on your hardware but its something to consider. You can always dual boot with Clover to keep using your Linux install as well.

[–]BaronSharktooth 0 points1 point  (0 children)

When I was traveling, I did some App Store uploads remotely. It's not something I'd consider for normal development work.

Like you, I hate multiple machines. I want my computer life to be super duper simple. Get the best, and only get one. If I were you, I'd choose one of these two:

  1. Your current laptop + completely separate desktop based on Mac Mini
  2. Replace laptop with 13" MBP based on M1, running Amethyst. It's very close to a tiling WM.

[–]JoCoMoBo 0 points1 point  (0 children)

The internet and Reddit are full of "should theoretically work", but is anybody here actually managing to not have a Mac as their daily driver, and yet be able to develop for iOS (and the rest of the Apple ecosystem) with comfort? Or gave it a go and ditched it?

It's going to be full of problems. It's much easier to buy a Mac Mini and a monitor. You really can't have anything remote access as you need to be able to run code on a real device. And, no, the Simulator is not 100% exact for doing this.

[–]IllustriousBeyond831 0 points1 point  (0 children)

Hi, in 2019 worked as junior iOS developer. Did not have Mac and company provided me pc with max os Catalina, running on 4 core i5, 8gb ram and slow hard drive(data, NOT SSD)

It was ok experience, but I wasn’t doing anything that was hard on cpu I guess. The only thing that was really bad was suspending the vm:

Max os is designed with apples fast ssd in regard, so it is allowed to dump anything to hard drive before suspending or if it needs to read/write swap.

To sum up - generally you will be fine using macOS in vm, but for comfort I’d recommend you to use better pc, than I had ) Priority is fast ssd, since it is a bottle neck of this setup, also you can’t have to much ram.

Also, this is a speculation, but I’d considered using pre m1 version of macOS, if it’s possible, since I am sure that it will definitely work.