Share:
Subscribe and receive the latest news directly in your email.

New technologies

Solutions for creating cross-platform apps (War is coming)

Appcelerator, PhoneGap, Unity 3D, Cocos-2dx, etc. A new path opens before us, and we have many vehicles to travel it… Choose which one is yours.

We all know that mobile devices are taking another step forward every day compared to other types of devices, and if you're a developer, you know that sooner or later you'll have to learn what this is all about, whether by choice, by necessity, or both.

When faced with this situation, we encounter the following dilemmas: Should we develop directly on the native SDK? Which system should we use in this case (Android, iOS, etc.)? Recently, and with increasing momentum, solutions to these problems are being implemented. They perfectly meet the needs practically any application and in some cases they improve them, so why should we settle and limit ourselves to developing only for one type of system?

Yes, it is clear that it is possible to develop our application natively for all systems, but the cost in resources and time does not compensate when there are frameworks in which with a single click we can have our application for any system and by developing only one project, so the resources and time needed for it are practically reduced a lot.

The solutions for creating cross-platform apps the code we have available today is sufficient for 95% of the needs of any application. Clearly, there are specific cases where we'll need to use native code in an application, whether for efficiency, to incorporate native elements, etc. But in most cases, it's unnecessary and a waste of time.

Once we are clear that this is the best option to develop our application, we realize that there are not just one or two platforms (blessed dilemma) that offer us a good solution to develop our app.

Of course, before all this, we need to have a clear idea of ​​what we're going to develop, and based on our idea, we'll have one or more alternatives that will allow us to build our application. From my point of view, it could be divided into two main categories, considering that for application development, the two most important platforms are PhoneGap and Appcelerator, and for game development, I'll mention Unity 3D, although there are many more such as Unreal Engine 4, Cocos 2D-X, etc.

Let's break down each one of them:

 

appcelerator

Appcelerator

It has an IDE called Titanium which is a modification of the well-known Eclipse, uses the SDKs of the different systems to generate native code, so this is a great advantage over its most direct competitor (PhoneGap),The graphical interface is created and the behavior is programmed from the Titanium development environment. javascriptAnd based on this, the Titanium engine generates a native project, so we always have the look and use of the native controls available to us.

Another major advantage of Titanium is that it is free, both for personal and commercial use, and is also open source.

Other strengths:

  • They have a spectacular asset library, with hundreds of ready-to-use plugins and resources; practically anything you want to do will already be done and you can use it to your advantage.
  • For beginners and those who like to work on a base project, their Dashboard gives you the possibility to download many examples as well as many videos and documentation
  • It combines the features of the Eclipse Marketplace with its own plugin download and update manager.
  • It offers great ease of downloading and configuring SDKs for all platforms
  • It has a framework that makes things much easier called Alloy.

Let's talk about Alloy

It's a free and open-source MVC framework that makes app development as easy as web development. It uses tags for the visual elements, and thanks to its MVC architecture, all elements are clearly differentiated, making things much simpler.

It has a wide variety of widgets and themes available.

Apps created with Appcelerator:

There are many famous apps developed with this platform such as Citi Network Direct, Ebay, Gamestop or VMWare.

http://www.appcelerator.com/customers/app-showcase/

 

Link API reference: http://docs.appcelerator.com/titanium/latest/

Alloy's official repository on GitHub: https://github.com/appcelerator/alloy

 

PhoneGap

 

It differs significantly from Appcelerator. For example, it doesn't have a development IDE; everything is developed in a native web browser. Another difference is that it uses HTML5, CSS3, and JavaScript, as well as front-end user interface frameworks like jQuery Mobile, Sencha, etc. The code isn't converted to native code when the application is compiled, resulting in a hybrid application. These aren't truly native applications for the device (since rendering is done using web views rather than system-specific graphical interfaces), but they aren't web applications either (given that they are packaged for deployment on the device, even working with the native system's API). It's true that there are APIs that allow access to elements like the accelerometer, camera, device contacts, network, storage, notifications, and so on.

phonegap

One of the advantages of PhoneGap is that it allows the application to run in a web browser, thus expanding its catalog of elements where it can be run, and when developing, it can be tested without the need to use an emulator, by testing the application directly in the web browser.

 

Apps created with PhoneGap:

BBC Olympics

http://phonegap.com/app/bbc-olympics/

BrowserQuest

http://phonegap.com/app/browserquest/

Appcelerator vs. PhoneGap

AppceleratorPhoneGap
UIThe UI is not scalable. scalable UI.
User interfaceIt uses Javascript as a user interface that is mapped to the native code.It doesn't have one.
Native codeCompile to native code. Package the app in your own framework.
Access to hardwareIt allows it.It allows it.
LicenseProprietary software (allows the development of Open Source apps).Free Software (GPL) endorsed by Adobe.

When should we use each one?

We want to reuse the same HTML 5 codebase via mobile, tablet, desktop and TV.

For this option, the best alternative is to use PhoneGap, since Appcelerator is for writing a native application with Javascript code.

 

We want stability.

For this, we'll definitely use Appcelerator. It provides a fully native application using each platform's SDK.

We want ease of development.

Debugging applications in Appcelerator is quite easy. Appcelerator is part of an SDK, which is an Eclipse-based security environment. Therefore, the easiest way to debug applications is through JSON.string, which prints the contents of an object. There are also web-based debugging tools such as cloudbug.com, which offers a very useful debugging console in some cases.

PhoneGap apps can be tested in many ways because they are HTML-based. Some of these apps don't require access to the device's API and can be tested using a browser-based webkit.

We want a certain language.

If you like Javascript, Appcelerator is your option; if you prefer the HTML5, CSS3 and JavaScript package, your option is PhoneGap.

Conclusion.

Appcelerator It's a great framework that allows you to develop a native application for the most important platforms in a simple and very stable way, but it requires extensive knowledge of Javascript.

Phonegap It is a lightweight JavaScript code library, written to access device hardware and software APIs.

Unity 3D

And since the mobile gaming business is something we should never overlook because it generates a lot of money, we're also going to talk about Unity 3D, which could be considered the most important and widespread of all its kind.

We are looking at a framework with one of the most complete development IDEs I have seen, from the visual editing of the video game with an environment to edit animations, positions, sprites and more in a very easy and dynamic way, to the code editing with MonoDevelop also in a very intuitive way.

unity

Unity gives you the ability to use Javascript or C# code to create your application, which will ultimately be converted to native code upon compilation. You can configure many options, including choosing the Android version you want to work with, creating or using a keystore, and more.

We can compile our code for different platforms including Android, iOS, OSX, Windows, Windows Phone, PS3, Xbox 360… although not all of them are available in the Free version.

Differences between licenses:

Logically, there are several differences between the free license and the others, but you can develop practically anything for Android, Windows Phone, Windows, BlackBerry, and iOS, which are the most important platforms today. If we want to develop for PS3 or Xbox 360, we need a license.

It also has additional features, such as texture rendering, hidden face detection, global illumination, and post-processing effects. The free version, on the other hand, displays a welcome screen (in standalone games) and a watermark (in web games) that cannot be customized or disabled.

You can find a license comparison tool at this link: https://store.unity3d.com/es/products

In summary, the following features can be highlighted about Unity 3D:

  • Store assets.
  • Very large repository of documentation.
  • Great possibilities for developing 2D and 3D.
  • Ease of project compilation.
  • MonoDevelop Code Editor
 
monodevelop
 

In Soltel Group We have been developing mobile applications since 2007, both for end users such as business applications.

Tags:
Alloyandroidandroid gamesappceleratorappsdevelopmenteasy developmentvideo game developmentdevelopeclipsegamesIDEiOSmarketmobilityphonegapstoreTitaniumTitanium appcelerator

Other news