4 Ways to Develop for iOS, Android, Windows, and Mac at the Same Time

Check out the best cross-platform development SDKs

There's a good reason why some app developers put the iOS version of their app first. The App Store was first on the scene and is still hugely popular, but the other platforms can't be ignored. With the launch of Google Play, the Android app industry quickly caught up to the iOS App Store. A successful Android app on Google Play can be as profitable as an iOS app on the App Store. Savvy developers produce apps for both platforms.

Developing iOS and Android Apps Simultaneously

Cross-platform development delivers the ability to code once and build everywhere. It saves a lot of time, even if you only plan to develop for iOS and Android. When you add Windows, Mac, and other platforms to the mix, it is an extreme ​time saver.

However, cross-platform development comes with a caveat. You are often locked into a third-party toolkit, which may limit what you can do with an app. You may not be able to use the latest features of an operating system until your toolkit supports them.

Anyone looking to develop for more than one platform has a selection of toolkits to choose from. The best choice for you depends on what you are planning to do with it. Here are some of the cross-platform development options.

01
of 04

Corona SDK

Corona SDK website
What We Like
  • Extensive documentation and support for third-party plug-ins.

  • See changes instantly, which speeds up the prototyping process.

  • Specializes in 2D game development.

What We Don't Like
  • Doesn't include a WYSIWYG editor.

  • Internet connection required to make a device build.

The Corona cross-platform software development kit (SDK) from Corona Labs supports Windows and Mac computers and is an excellent way to develop iOS and Android apps. With Corona SDK, you create a project one time and publish it to multiple devices, including computers, smartphones, tablets, and smart TVs.

Corona SDK is aimed primarily at 2D gaming, but it also has productivity uses. Some developers have been successful in developing nongaming apps using the Corona SDK. The platform uses LUA as a language, which makes coding faster than using the various flavors of C floating around, and it has a graphics engine built into it.

The best part is that the Corona SDK is free for beginners and hobbyists. Serious creators and pros pay a monthly fee. You can download and start developing both games and productivity apps immediately. It isn't the best choice if you need a lot of text input from the user, but it is solid for most other productivity uses and is outstanding for 2D graphics.

Primary Uses: 2D Games, Productivity

02
of 04

Unity

Unity Core Platform website
What We Like
  • Lower learning curve than its rivals.

  • Active community support group.

  • Specialized expansion packs.

What We Don't Like
  • Large build sizes not ideal for developing mobile games.

  • Export to iOS or macOS requires the Xcode compiler and a Mac computer.

The Corona SDK is great for 2D graphics, but if you plan to go 3D, you need Unity. If you plan on going 3D in the future, Unity may be the best choice even if your current project is a 2D game. It's always a good idea to build up a code repository to speed future production.

Unity games may take longer to develop than Corona, but Unity supports almost every platform out there, including consoles and web gaming, which is supported by the WebGL engine.

Unity has templates to get you started on various types of projects, including 2D and 3D games. Other template options include high-end and lightweight templates. The Scriptable Render Pipeline (SRP) means developers and technical artists can get started in Unity without needed to master C++.

Primary Use: 3D Games

03
of 04

Cocos2D

Cocos2D website
What We Like
  • Built-in interpreter facilitates easy debugging.

  • Impressive number of compatible extensions and tools.

What We Don't Like
  • Poor documentation makes things difficult for new users.

  • Community support is withering.

As the name suggests, Cocos2D is a framework for building 2D games. However, unlike Corona SDK, Cocos 2D isn't exactly a code-once, compile-everywhere solution. Instead, it is a library that can be inserted into different platforms and make the actual code the same or similar. This does a lot of the heavy lifting when porting a game from one platform to the next, but it still requires more work than Corona. However, the bonus is that the result is coded in the native language, which gives you full access to all the device's APIs without waiting for a third-party to include them.

Different versions of Cocos2D are available for C++, C#, Swift, Javascript, and Python. 

Primary Use: 2D Games

04
of 04

PhoneGap

PhoneGap

Screenshot

What We Like
  • Easily accessible to anyone with basic HTML5, CSS, and Javascript skills.

  • Smartphone app to test apps on multiple devices.

What We Don't Like
  • Limited built-in support for UI widgets.

  • Limited API functionality results in unreliable geolocation features.

Adobe PhoneGap leverages HTML 5 to develop cross-platform applications. The basic architecture of this platform is an HTML 5 app that runs within a WebView on the native platform. You can think of it as a web app that runs inside a browser on the device, but instead of needing a web server to host the app, the device also acts as the server.

As you can imagine, PhoneGap won't compete well against Unity, Corona SDK, or Cocos in terms of gaming, but it can easily exceed those platforms for business, productivity, and enterprise coding. The HTML 5 base means a company can develop an in-house web app and push it to devices.

PhoneGap developers benefit from a robust plug-in library that extends the abilities of cross-platform mobile apps.

PhoneGap also interacts well with Sencha, which is a platform for building web applications.

Primary Use: Productivity and Business

And More...

Corona SDK, Unity, Cocos, and PhoneGap are a good sampling of cross-platform development packages, but there are many other options. Some aren't quite as robust, require more time going from code to actual build, or are expensive, but they may be just right for your needs.

  • QT: A good choice for enterprise and productivity apps, QT has been around for a while in various forms. The latest build puts a lot of polish around an otherwise solid platform.
  • Xamarin: Another excellent choice for nongaming solutions, Xamarin uses .NET and C# as a programming language. Xamarin specializes in using native UI elements, so apps look like they are designed for each particular device.
  • Appcelerator: If you prefer to build using JavaScript, Appcelerator may be your tool. It isn't a perfect code-once-build-everywhere solution—you still have some work to do getting builds for specific devices—but it can be used to develop for every device with no hybrid compromises.