6 Ways to Develop iOS Apps on Windows
Do you have a Windows PC and want to develop iOS apps? It’s not easy, so you might be thinking about giving up and buying a Mac computer instead. Before you do, read this tutorial. We cover six ways to build iOS and iPadOS apps on Windows.
If you are an aspiring Android developer, don’t miss our guide that will help you start developing Android apps on Windows.
Why it’s hard to develop iOS apps on Windows
Apple’s walled garden makes it nearly impossible to develop iOS apps without a Mac. Xcode, the only integrated development environment (IDE) for building iOS apps, is only available on macOS. Important development features, such as simulating an iOS device on the computer, are only possible with Xcode installed.
Unlike Google’s Play Store, which allows app uploads via a website, the only way to upload iOS builds to Apple’s App Store is by using software tools exclusive to macOS: Xcode, Transporter (‘ a macOS-exclusive app), and the Altool command line program. It is literally impossible to publish an app on the App Store without using macOS.
But considering how expensive Macs are, simply buying a Mac isn’t an option for many people. Fortunately, there are a few ways to develop iOS apps using just a Windows PC. One approach is to use Windows to access a macOS machine and develop the entire application with Xcode. Another is to write the code on Windows using cross-platform development tools. Read on to learn the specific options for both of these approaches.
1. React Native and Expo
React Native is even better when you use it with Expo, a collection of useful development features. For development on Windows, the Expo Application Services (EAS) is especially important: it provides a way to build and submit your iOS applications in the cloud. While Expo itself is free, EAS is paid.
2. Flutter and Codemagic
Flutter is Google’s framework for building cross-platform applications using the Dart programming language. The main difference between Flutter and React Native is that Flutter doesn’t use native UI components, instead it compiles to native code, giving it even faster performance.
Codemagic is a paid cloud service that lets you build and publish your Flutter iOS apps without a macOS computer.
Haxe is a programming language that can build applications for a large number of different platforms, including iOS. It’s a good choice if you want your app to run everywhere: desktop, mobile, and web (both front-end and back-end). Although very popular among game developers, Haxe can still be used to build iOS apps with static UI.
Haxe is a master of everything, but a master of nothing. Since its power comes from building apps for many platforms, it won’t have features specifically tailored for iOS app development, so you might not get the native look and feel of iOS that you would with React Native .
Do you have a new interest in programming? Check out the best YouTube channels that can teach you how to code.
4. Adobe AIR
If you have experience developing with Adobe Flash or Actionscript in the past, then Adobe AIR may be right for you. Being based on Flash, AIR makes it easy to build rich and animated experiences, such as 2D games, with a single code base for multiple platforms. AIR’s toolchain lets you generate Android, iOS, and desktop application files directly on Windows. When used with Adobe’s Animate CC, it becomes the fastest way to bring your idea to the screen.
One downside is that AIR’s vector-based graphics lead to high battery and CPU usage. Additionally, to achieve core functionality such as in-app purchases, third-party software called AIR Native Extensions (ANEs) are required. It’s usually not free.
Under Harman, the AIR platform itself can also cost you money. You can use Adobe AIR for free if you earn less than $50K per year in revenue. However, this free tier requires an AIR splash screen to be included in your app. Paid tiers with no splash screen, starting at $199 per year, are required for anyone earning more income.
5. Rent a Mac in the cloud
A legal but expensive option is to pay to access a real MacOS machine in the cloud. You can do this by paying a recurring fee to providers such as MacinCloud, MacCloud or MacStadium. If you use this method, it’s best to rent it for the minimum time you need to build and upload your app, then cancel it once you’re done. You’ll do most of the programming on your Windows machine using one of the development methods listed above, then send the output to the macOS cloud instance for the build/upload.
6. Install a macOS virtual machine
If you still want the full macOS + Xcode development experience, you can install a macOS virtual machine (VM) on your Windows computer. It’s nice because you get all the native development tools that Apple intended you to use to build iOS apps. You can do all the designing, programming, building and uploading to the App Store entirely on macOS with this option.
Good to know: don’t want to wait until the official release of the latest macOS version? Install the beta version and enjoy upcoming features sooner.
Frequently Asked Questions
Is Adobe AIR still functional?
You may recall that Adobe killed Flash and transferred Adobe AIR to another company, Harman, effectively abandoning the AIR platform. While this is true, AIR is surprisingly still viable today.
Harman seems to be doing a good job of actively developing and improving the AIR platform. They are working on an AIR developer site with documentation, tutorials and community discussion. There seems to be a decent amount of community interest, so continued support for AIR is likely. However, AIR is nowhere near as popular as other platforms.
Is it better to develop an app for the iPad or iPhone?
If your development platform doesn’t make it easy to build for both iPhone and iPad, then choose the iPhone. More people carry iPhones with them and are more likely to use your app when they’re out and about. Additionally, an iPhone-designed app can still be used on iPad, but the reverse is not necessarily true.
How do I test an iOS app on Windows without an Apple mobile device?
Using BrowserStack’s App Live service, you can upload any IPA file to a physical Apple mobile device, then use the device directly in your browser to test and debug your application.
How can I share my iOS app without publishing it to the App Store?
You can upload your app file to Diawi for a shareable installation link. Anyone can install your app using the link, although it can only be used 25 times when using a free Diawi account. Although extremely limited, Diawi is the best option on Windows, as uploading to TestFlight is only possible with macOS.
Image credit: Pexels. All screenshots by Brandon Li.
Subscribe to our newsletter!
Our latest tutorials are delivered straight to your inbox