Building the best cross platform application

        Introduction

For the last few years amount of people who use smartphones and tablets has increased in few times. Nowadays companies are spending a lot of money to adapt their businesses to the mobile world. The reason is that they realize the benefits of mobile applications and profits this solution can bring to them. Such a pace of growth made its influence on the ability of rapid apps development. To build a simple app for the iPhone is not enough anymore. Now you have to think how to cover all the users with your service no matter what they use – Mac OS, Windows or Android.

The value of cross-platform mobile development has become evident. That’s why we’d like to share with you a useful and extracted info about the key players in the mobile enterprise cross-platform development market. Who are they? And what are the main cons and pros of using frameworks for cross-platform development?

First of all, you should realize what are the purposes of using cross-platform frameworks. They’re needed when you’re looking for the best way for fast ‘prototype’ application development or want to create a simple and small app. Frameworks for cross-platform mobile development give you an opportunity to cut expenses down and create a functional and useful app for different platforms. It means that you don’t have to spend weeks to create an app for iOS and then two weeks more to create the same app but for Windows. And sometimes the only thing needed is strong knowledge of HTML, CSS and JS. You would say: “Wow! That’s what I was looking for!”. But first let’s see what are the pros and cons of each framework.

AppBuilder from Telerik

Probably, you’ve heard about Telerik before. This company created numerous backend services for mobile and desktop apps. But one of the latest tools launched by Telerik is AppBuilder (formerly Icenium). It was created purposely for cross-platform mobile development. The main purpose of creating AppBuilder was an attempt to help developers to build hybrid mobile apps using a lightweight, cloud-based toolset that is available everywhere. “With so many new technology choices over the past few years, enterprise developers were patching together apps with technology from multiple stacks and vendors,” – said Steve Forte, the company’s chief strategy officer.

Now Telerik AppBuilder really solves the common problems of all developers who have ever tried creating cross-platform apps. First of all, it saves time, because there is no need to create an app for different platform separately anymore. And the most attractive point – you don’t have to learn Swift or C#.

Telerik

(source: http://www.telerik.com/appbuilder)

With Telerik AppBuilder you can build native-running hybrid mobile apps for different mobile platforms with HTML5, CSS, and JavaScript. Sounds attractive, doesn’t it? Actually, this is not all the advantages of the Telerik AppBuilder. Let’s see what are the others.

While creating an app, developers can use company’s own web-based IDE as well as Visual Studio (AppBuilder has extension for VS). The online version of the tool features set of tools that are online simulators for iOS and Android, version control tools and built-in git support. There is no need to explain that device simulator is a great advantage for developers. It enables you to test your application the same way like you would test an app for web in your browser. There are special options for simulating iPhone, iPad, Android phone and Android tablet. It means that with Telerik AppBuilder you can test your app on devices without configuring your Apple certificates or provisioning profiles.

The next really attractive thing about AppBuilder is that you can edit and debug an app in real-time as well as publish it in App Store or Google Play with help of the built-in Publish wizard. As a result, you can measure your app using the powerful cloud analytics service.

Appbuilder_IDE

telerik appbuilder

Telerik AppBuilder IDEs
But using AppBuilder has a ‘dark’ side as well. So, before starting work with this tool you have to realize that your app would be just a website that runs in an application. That’s why you have to deal with browser issues such as limitation in Android up to 2.3 version. It doesn’t allow you to use multi touch in these versions of browser.
Most of developers complain on the performance of app built with AppBuilder. They say that when you have to create applications with heavy functionality, their performance is really bad. So bad, that sometimes apps terminate randomly.

Telerik

Pros and cons of using Telerik AppBuilder

So, after covering the main pros and cons of Teletik AppBuilder, we’d like to go on and to tell a little about Xamarin that is also widely used for cross-platform mobile development.

XAMARIN

What is Xamarin? It’s a framework for cross-platform development – for iOS, Android and Windows Phone. Xamarin has been one of the most popular cross-platform frameworks for the last 4 years (it was launched in 2011). Now a lot of popular apps have been built with it (Rdio, for example).

The main purpose of Xamarin is to allow developers to build applications for different platforms using one language. With Xamarin, you can write your apps entirely in C#, sharing the same code on iOS, Android, Windows, Mac and more.

Sencha_pic

(source: http://xamarin.com/)

The framework consists of Xamarin.IOS, Xamarin.Android, iOS and Android compilers; IDE Xamarin Studio and plugin for Visual Studio. Xamarin compiles the code into real native binary code meaning it’s a true native application. The framework also utilizes some of the specific APIs (to iOS or Android) in addition to the APIs that common for all platforms. It is important to mention that Xamarin works through the Mono framework to communicate with the API of common mobile device functions. It allows developers to work with contacts, camera, and geo-location on popular iOS, Android, and Windows operating systems.

So, let’s try to find out what are the benefits of using Xamarin for cross-platform development. As mentioned previously, Xamarin, as well as other cross-platform frameworks, is the best way to cut down money and time wastage. It means that with Xamarin you don’t have to develop a complete application for each system, which increases time and depletes monetary resources. With the framework you can syndicate about two-thirds of a single codebase using C#. So, Xamarin is irreplaceable when it comes to indie development – low costs and possibility to cover a lot of users with your service or solution. And independent developers really appreciate such frameworks for economy and flexibility.

The next and really important benefit Xamarin provide developers with is flexibility in QA process. The framework allows to uncover bugs on thousands of devices to ensure perfect integration. It’s all about saving time, especially after launching your app.

One more point we have to pay attention at is high performance Xamarin delivers when it comes to creating a UI and UX that users of specific platforms are accustomed to. In this case the framework shows its flexibility. And it’s really great benefit! There is no need to change the UI or UX, because Xamarin doesn’t require any changes to be done. So, you can create a needed UI without obstacles.

Xamarin_IDE

Xamarin IDE (Xamarin Studio)

And a little bit more about evident pros. Xamarin is really needed in cases when your team or you don’t want or don’t have time for learning new programing language. With this framework you’ve got an opportunity to create a small app for iOS without knowing ObjectiveC or Swift but with C# that is more common among developers.

But you have to be ready to face some challenges when using Xamarin. For example, there is a lot of operational software overhead. It’s caused by the linking of codes and referencing between .NET frameworks and the target operating systems. So, using such framework will increase download and startup times of an app.

And the main point you have to pay attention at is that code developed in Xamarin cannot be reused for native/HTML5 applications for Android or iOS. That’s why some of the coding must be done for each platform separately. Actually, it means that Xamarin is ”write once run anywhere” just partly.

The other cons that are widely discussed at the Dev Forums are mostly about using Xamarin not for cross-platform development. Developers do not use this framework instead of native one just because most of them are not sure in Xamarin stability. The truth is sometimes developers have to face challenges with mono, monotouch и monodroid. Also, they do not recommend to use Xamarin when you’re working on GUI based app.

Xamarin

Pros and cons of using Xamarin

PhoneGap

PhoneGap also is a framework for mobile development. It enables developers to create apps for mobile devices with HTML5, CSS3 and JavaScript. It means that in result you’ll get a hybrid mobile app. So, using PhoneGap is a great solution for those who don’t want to spend too much time on learning native languages such as Swift or Java. Knowing only HTML, CSS and JavaScript is quite enough.

PhoneGap will work correctly on both iOS and Android, especially with using the Phonegap Libs. It’s a great advantage because in this case all apps made with PhoneGap can be installed much like a native app. It also will help you to distribute and integrate payment through the App store. And one more advantage of using this framework is rapid testing and deployment.

PhoneGap_pic

(source: http://phonegap.com/)

There is no need to repeat ourselves and speak about obvious advantages of using frameworks for cross platform development such as saving money again. So, let’s discuss the cons of PhoneGap. It has some disadvantages, of course. First of all, it shows a low performance. Especially, if your app includes a lot of graphics or native features – compass or camera, for example. Anyway, this issue can be easily solved with using 3rd party solutions for graphic acceleration. But it’s an additional piece of work needed to be done.

The next issue is about UI. There is a lack of pre-built UI widgets and not so clear directions for user-interface. That’s why if you want to create an app with native feel and look your development time can take much longer.

So, PhoneGap is really a good solution for apps that do not use native features of phone extensively. If you need a simple and humble app, don’t think a lot – use PhoneGap!

PhoneGap

Pros and cons of using PhoneGap

Sencha Touch

There is one more popular platform for mobile development. And we cannot avoid saying a few words about it. So, it’s called Sencha Touch, and it’s perfect solution for developing mobile apps for different platforms – Android, iOS, Windows Phone and Blackberry. And those apps will have the same look as native apps! Let’s move further in discovering Sencha’s pros and cons.

Sencha_pic

(source: http://www.sencha.com/products/touch/)

Sencha Touch has an obvious advantage over competitors – it has a set of graphical user interface GUI-based components. They can be used directly within mobile apps. So, you can easily choose between different buttons used in device specific themes and effects as well as text fields, sliders, toolbars, and so on. And surprisingly they’ll work well and fast! With Sencha Touch you can develop the fastest apps, if to compare with productivity of Xamarin or PhoneGaps. Sencha really provides you with better native feelings when using apps. All in all, it works extremely fast and fluid on mobile devices.
Sencha_IDE

Sencha Touch IDE

But what about cons? Of course, they are! And one of them is difficulty with debugging and fixing errors within the framework. In this case other frameworks prevail (with AppBuilder you can easily edit and debug an app in real-time). This point can influence on the decision when choosing the best framework for cross-platform mobile development. And Sencha Touch is definitely not the easiest to understand. It can be really complicated not for inexperienced developers. But even if you have enough of experience, creating app with Sencha Touch will not save your time as much as Xamarin or AppBuilder. And one more unpleasant moment. Sencha’s support is paid. Definitely not the best news for indie developers or beginners.

Sencha

Pros and cons of using Sencha Touch

Conclusion

So, if you’re a developer who’s working on a lightweight app that doesn’t depend on touch gesture or high performance, you should think about choosing between mentioned platforms and frameworks. They will definitely save your time and money. And you should know how important these points are when you’re independent or freelance developer. So, don’t waste your precious time, weigh all the pros and cons and start creating the best app ever! Or good one, at least.

Please, let us know of any comments and suggestions you have for improving the article. We’re waiting for your feedback!