The amazing evolution of mobile platforms and frameworks can make it difficult to understand where to get started if you want to try creating your own. You also have to decide if you want to focus on one platform to start with, or develop for multiple on day one. If going for just one platform, you might find great advantages for native code*, but then need to know that the languages used are quite different if comparing iOS, Android, Windows and other devices – and with for example smart watches there are even a couple of new platforms popping up. However, if you have limited resources and want to create something which works on multiple platforms and devices from day one, having experts for each platform might not be in the budget. After all, even with the similarities between iOS, Android or Windows devices, there are also important differences making it difficult for any developer to be an expert for all platforms (and any developer who is able to create for multiple platforms will be quite expensive to hire). Besides the initial developer costs, going native would also mean having to keep multiple code bases up to date, which could mean 3-5 different places to update for each new feature or change in an app.
* Native code is basically the programming language the platform creators want you to use when creating something for devices based on their systems. This leads to native code being quite fast and usually the most stable compared to other options, but also more complex for most scenarios and developers. Deciding whether going native or cross platform means weighing various factors before getting started with development.
Cross platform apps with web languages
Deciding on which framework to use can be a jungle. A few years ago, when cross platform options started becoming available with for example PhoneGap and Titanium Appcelerator “translating the code to native”, you would use their specific standards to create apps. Nowadays, there are multiple frameworks built on top of those “translators”, letting you decide a strategy based both on your strengths and how you believe your app should work – in other words letting the product needs decide what you use.
Popular platforms, IDEs and SDKs
Since mentioning options for developers and designers with a web background, it’s only fair to mention alternatives for developers with other backgrounds, as compared to the three mentioned above. In a way, this is like comparing apples and pears, since mixing hybrids with native app creators, platforms, SDKs and IDE options, but as an introduction and summary it gives you an idea of where to get started. Some of these can actually be combined, although for a beginner some combination can and will often be a task in itself.
- Titanium Appcelerator: Level of difficulty slightly higher than PhoneGap, but gives more access to native components. Probably best support and largest community among the ones listed, in contest primarily with PhoneGap. Like other hybrid solutions, downsides include laggy animations and
- Xamarin: C# development for iOS, Android Windows and Mac with testing and monitoring included. Native access, performance and behavior. Probably the most expensive option, at $25 per month for an indie developer or $999 monthly for a business.
- AirPlay/Marmalade SDK: C++ core with native performance and low level hardware access for most devices you can think of. Great for creating games and other apps needing intense processing. Used by quite a few of the big game companies. Creates an extra layer instead of compiling to native. Deploys to iOS without a Mac. Solutions to use Lua, HTML or Objective-C.
- Rhomobile: Ruby development for cross platform apps. Popular among Ruby on Rails developers.
- Corona SDK: Using Lua, similar to Actionscript 2.0, for iOS, Android, Kindle and Windows Phone 8. One of the easiest languages to learn for non-developers.
- Telerik Platform: Can be used together with PhoneGap or Cordoba, or on its own. Combines UI tools and Cloud services. Used by NASA, Dell, IBM and many more leading companies.
There are quite a few more IDE’s, SDK’s, frameworks etc, but most of the others are quite small in comparison, and an extensive list would probably only add confusion.
What we looked at so far was primarily what creates the actual phone apps, but as mentioned there are frameworks built to be used together with some of those, especially with hybrids such as PhoneGap and Corona, where you can use web techniques. Considering the ones which basically put a web page in a “browser”, you might be aware of how many languages there are when creating a website. This being the case, there are at least as many mobile frameworks as there are popular web frameworks and libraries. To mention a few good ones to use with for example PhoneGap or Corona:
- jQuery Mobile: HTML5 based. Doesn’t have the popularity of the jQuery web library, and many find it bloated and slow for mobile. Even if you’re an expert when it comes to jQuery we suggest at least trying out other options.
- Ionic: Utilizes AngularJS and Sass with mobile optimized HTML, CSS and JS components. One of the most popular options for web developers going mobile.
- Intel XDK: Design, debug, build and deploy cross-platform hybrid apps. Another popular HTML5 development tool.
- Sencha Touch: Built-in MVC system helping you create powerful apps.
- Kendo UI: Light and fast alternative for people who like Bootstrap and AngularJS. Works great with Telerik Platform.