iOS sans Mac

If you don’t have a Mac and can’t get a loaner laptop from ITS and don’t want to use the iMacs in the ITS or Groundworks labs, you have three options:

  1. Develop for Android and run the labs on the Android emulator (see Getting Started with Android Development). This would require a development host with adequate computing power.

  2. Team up with someone with a Mac and an iPhone, for pair programming. For remote pair programming using VSCode, check out:
  3. buy a Mac.

As far as I know, these are your only three options. We have considered the following alternatives and found them wanting:

Cloud-based Macs

If you don’t want to buy a (used) Mac, the most “legal” alternative would be to rent (not free) Mac time in the cloud from any one of the following vendors:

If your project doesn’t need access to a phone’s physical components (such as camera, mic/speaker, magnetometer, etc.), you could use the iOS simulator remotely. Otherwise, by itself a cloud-based Mac is not a solution to having access to a physical device for testing. For that, you could try a cloud-based mobile device farm to test your code, or perhaps a remote USB solution could work. We haven’t tested any remote USB solution as we’re not aware of any free one that is macOS compatible.

Cloud-based mobile device farms

Here are some cloud-based mobile device farms (see also 7 Top Device Clouds for Mobile App Testing):

Unfortunately, without physical access to the iOS device, you can’t record audio, take photo/video, read the magnetometer, or perform biometric check, which our labs have you do.

Cross-platform development

Except for PWA (progressive webapp), to develop a cross-platform app for iOS still requires access to Xcode and therefore macOS. If you are contemplating cross-platform mobile development, please consult our collection of articles on industry experiences with cross-platform solutions.


Prepared for EECS 441 by Sugih Jamin Last updated: January 9th, 2024