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

The Best Cross-Platform Development Toolkits

How popular is the Apple App Store? In the first quarter of 2015, people spent over $1.7 billion on apps. That's a good reason why app developers often put the iOS version of their app first, but the other platforms shouldn't be ignored. And while Android might be a smaller slice of the mobile pie in terms of app sales, a successful app on Google Play can still be quite profitable.

This is what 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-savor.  However, cross-platform development does usually come 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 utilize the latest features of an operating system until your toolkit supports them.

01
of 05
Save Our Village was developed by Red Sprite Studios using the Corona SDK.

Corona Labs recently announced that their popular Corona SDK cross-platform development tool now supports Windows and Mac. The Corona SDK is already a great way to develop iOS and Android apps, and while the ability to build for Windows and Mac is still in beta, many apps will convert right over to those platforms.

Corona SDK is aimed primarily at 2D gaming, but it also has some productivity uses. In fact, some developers have been very successful in developing non-gaming apps using the Corona SDK. The platform uses LUA as a language, which makes coding much faster when compared to the various flavors of C floating around, and it already has a graphics engine built into it.

Read a Review of the Corona SDK

The best part is that the Corona SDK is free. You can download and start developing immediately, and while there is a paid "enterprise" version, most developers will be fine with the free edition of the platform. I've used the Corona SDK to develop both games and utility/productivity apps, and while it isn't great if you need a lot of text input from the user, it is solid for most other productivity uses and outstanding for 2D graphics.

Primary Use: 2D Games, Productivity More »

02
of 05

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 gives the added bonus of supporting almost every platform out there, including consoles and web gaming, which is supported by the WebGL engine.

Primary Use: 3D Games More »

03
of 05

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 very 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 end 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.

Primary Use: 2D Games More »

04
of 05

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 isn't going to 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 also interacts well with Sencha, which is a platform for building web applications.

Primary Use: Productivity, Business More »

05
of 05

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 simply very 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 non-gaming solutions, Xamarin uses C# as a programming language. Xamarin specializes in using native UI elements so apps look like they are designed for the particular device.
  • Marmalade. Primarily a gaming platform, Marmalade has both a C tool and Marmalade Quick, a LUA tool.
  • Appcelerator. If you prefer to build using JavaScript, Appcelerator may be your tool. However, it isn't a perfect code-once-build-everywhere solution, so you will still have some work to do getting builds for specific devices.

How to Develop iPad Apps