iOS sans Mac

If you don’t want to use the ITCS/Groundworks iMacs to develop your iOS app, 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. If you MUST develop for iOS, buy a Mac.

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

As far as I know, these are your only three options. Aside from these three, the following are alternatives we have considered and found 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: April 1st, 2023