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

Check out the best cross-platform development SDKs

That's a good reason why app developers often 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 shouldn't be ignored. The Android app industry predicted it would catch up to iOS app sales in 2017. A successful Android app on Google Play can be as profitable as an iOS app on the App Store.

The popularity of apps on both iOS and Android devices makes cross-platform development an important consideration. The ability to code once and build everywhere saves a lot of time even if you only plan on developing for iOS and Android. When you add Windows, Mac and other platforms into the mix, it can be an extreme ​time saver. However, cross-platform development comes with a caveat. You are often locked into a third-party toolkit, which may provide limitations on what you can do with an app, such as not being able to use the latest features of an operating system until your toolkit supports them.

Here is a selection of toolkits that allow you to do cross-platform development. 

Corona SDK

Screenshot of Save Our Village


What We Like
  • Extensive documentation and support for third party plugins.

  • Corona Simulator allows you to instantly see your changes, which significantly speed ups the prototyping process.

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

  • Internet connection required to make a device build.

Corona Labs' popular Corona cross-platform software development kit (SDK) supports Windows and Mac computers and is a great 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 some 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 already 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 great if you need a lot of text input from the user, but it is solid for most other productivity uses and outstanding for 2D graphics.

Primary Uses: 2D Games, Productivity



What We Like
  • Lower learning curve than rivals like Unreal and CryEngine.

  • Larger community support than perhaps any other engine.

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

  • Exporting to iOS or OSX requires the xCode compiler and a Mac computer.

The Corona SDK is great at 2D graphics, but if you need to go 3D, you need Unity. In fact, 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, but Unity supports almost every platform out there, including consoles and web gaming, which is supported by the WebGL engine.

The 2018 release of Unity added templates to get you started on various types of projects including 2D and 3D games. Other template options include a VR template and High-End and Lightweight templates. The new Scriptable Render Pipeline (SRP) means developers and technical artists can get started in Unity without needed to master C++. Instead, SRP uses C# and material shaders. 

Primary Use: 3D Games




What We Like
  • Built-in Python 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 many users have moved on.

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. Rather, it is a library that can be inserted into different platforms that will 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 of the device's APIs without waiting for a third-party to include them.

Different versions of Cocos2D are available for C++, JavaScript, C#, Xcode and Objective C, and Python. 

Primary Use: 2D Games




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

  • Accompanying smartphone app lets you test your app on multiple devices.

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

  • Limited API functionality results in unreliable geolocation features.

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 this as a web app that is running 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 plugin 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 represent some of the most popular cross-platform development packages, but there are many other options. Some of these 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 great choice for nongaming solutions, Xamarin uses C# as a programming language. Xamarin specializes in using native UI elements, so apps look like they are designed for each particular device.
  • Marmalade: Primarily a gaming platform, Marmalade has both a C tool and Marmalade Quick, a LUA tool. It is handy for recompiling iOS games for Android.
  • 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 claims you can develop for every device with no hybrid compromises.