An introduction to creating smartphone apps

With the mobile market and “Internet of Things” (IoT) growing at an amazing pace, and being very much open to innovation, there are plenty of opportunities in the sector both to create a revolutional new app and to improve on existing ones to do something better or more popular.

SmartphonesThe 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

PhonegapIf you want to create a fairly simple app which works across devices, you are in luck with HTML5, CSS3 and Javascript – the most common web languages now being reused to create apps across platforms. Although slightly slower than native code, and not always supporting every single feature of devices, there are multiple frameworks available to let you create an app with similar methods you would if creating a website. In many cases this also means you can reuse all or parts of your code if you want both an app and a website. However, if you aim to have only one single code base, you need to choose wisely when it comes to framework, as some need a completely different approach compared to web development.

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 TitaniumAppcelerator “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.

The most popular IDEs (Integrated Development Environments) such as PhoneGap, Titanium Appcelerator and Xamarin, use quite different approaches. PhoneGap focuses on JavaScript and HTML, Appcelerator goes with JavaScript and cross platform XML to generate or use native components, and XamarinXamarin lets you take advantage of C# and .NET niceties such as LINQ. Further differences include Titanium and Xamarin compiling your code into something closer to native code, while PhoneGap basically puts the JavaScript and HTML into a container which is more or less just like a web browser. This difference means that PhoneGap apps are almost the same as websites, with the same look and feel, but presented in their own “window”, with their own launcher icons and the possibility to charge for the app in the Google Play and iTunes app stores. However, it also means that your average web developer can get started quickly, and also generate apps for more platforms in a shorter amount of time. With solutions such as Titanium and Xamarin you need to think in a different way, but you have access to native UI components, and the final result can be made to look as if written with native  code – and benefit from the same advantages.

Popular platforms, IDEs and SDKs

Marmalade cross platform SDKSince 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.

  • PhoneGap: HTML/JavaScript/CSS encapsulated as an app. Not compiled to native and less integration with native controls. Easy to get started if coming from a web development background.
  • 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.

Mobile frameworks

Sencha TouchWhat 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.
Written 2015-10-30 (Updated 2016-10-10)
emil.hunefalk 150x150 140x1401

Written by Emil Hunefalk

Emil has been a blogger and web developer since the late 1990's. He has web, mobile and desktop experience from both large and small projects, in some cases handling everything from user experience to development.

Share your thoughts

Show all related articles..

Best Value Hosting 2016

Why wait? Get today's best deals now!