Develop mobile apps with Axway Appcelerator
Tags: appcelerator, apps, mobile, javascript
Published: 2020-01-18 15:12:42

Most developers have been in this situation: you have an idea for an app or a client asks you to create a mobile app for them and you start to search for _"how to develop a mobile app"_. You will find many pages with multiple languages like Java/Kotlin (Android) or Objective-C/Swift (iOS). But learning two languages can be a lot of work and can be expensive. The better solution in most cases is to use a multi-platform app framework where you can create your code and share it on different platforms. One of those frameworks is Appcelerator Titanium from Axway.

Especially beginners or people with a Web development background will find it easy to get along since it is using JavaScript as a main language and the whole SDK is open-source (Apache License) so you can dive deep into the core. The framework was started in 2010 and is still in active development and change a lot over the past few years. You can find the SDK at <a href="https://github.com/appcelerator/titanium_mobile">Github</a> and see which features are planed or even submit a pull request.

## Advantages of Appcelerator Titanium

![appc workspace](https://thepracticaldev.s3.amazonaws.com/i/fasgs13nxh9zcmawfdtd.jpg)
As mentioned in the introduction you will write your apps in JavaScript (ES5 or ES6) and you can reuse up to 90% of your code for both iOS and Android. The other 10% are mostly platform specific code that is only available for one platform (e.g. Androids DrawerLayouts). The framework itself has a very high parity coverage. That means that you can use a UI element in Appcelerator and it will create the matching native Android or iOS component on the phone. So your apps have a native look and feel when you run them. Most of the web or progressive web apps have to emulate native UI elements and can be a bit slower because of this. Those apps will run inside a browser window (e.g. a WebView) in your app. With Appcelerator Titanium you can even create a web app with a few lines of code and can extend this app with native features (like Push).
There are multiple reasons for a web app instead of a native app: if you have an existing web page with a great mobile layout and you already spend a lot of time/money on it you can just "wrap" that page inside a WebView app and you are ready to go!
But for a new project you can go native with Appcelerator Titanium.

To structure your code Appcelerator will use a MVC (Model View Container) framework called Alloy. It will create folders for your code (Controller), UI elements (Views) and styling (TSS/Style). The controllers are JavaScript files, the views are XML files and the TSS files are a CSS-like style. This separation of your files will make it very easy to work with bigger projects or open apps from other people since they'll follow the same structure. Appcelerator is using Backbone.js for the model part.

Since 2018 you can even use Angular or Vue.js to write your JS code.

There are over [250 app functions](https://docs.appcelerator.com/platform/latest/#!/api) you can use like camera, GPS, contacts, databases, buttons, slider,... and if you can't find what you are looking for you can extend the framework with Java/Objective-C/Swift modules. Another solution is to use "Hyperloop" a plugin that allows you to use native API calls inside JavaScript. So you can create Java Code right inside your controllers without the need of creating a custom module. You can even use external libraries (jar, aar, swift,...).

Axway is providing different ways to get/use Appcelerator Titanium: there is the open source version, a free indie version with some useful features like:
* Liveview, a hot reload environment: change a file and it will update your app
* analytics
* Appcelerator Studio: an Eclipse based GUI
* Community Support (e.g. JIRA)

and there is a commercial plan which includes:
* premium support
* additional modules (e.g. encrypted databases)
* multi-user support
* and more

But you can create an app from start to finish with the open source or indie version! No need to pay a cent.

## How do you start?
![Alt Text](https://thepracticaldev.s3.amazonaws.com/i/hq9w7i90100ztwgx5sfp.jpg)

There is the [official documentation](https://docs.appcelerator.com/platform/latest/#!/guide/Titanium_SDK_How-tos) or multiple tutorials like [From zero to app](https://github.com/m1ga/from_zero_to_app/). Some other places to find help are:
* [Ti-Slack](https://tislack.org/)
* [Medium](https://medium.com/all-titanium)
* [Stackoverflow](https://stackoverflow.com/questions/tagged/titanium-mobile/)

## Are there alternatives?
Sure! There are a lot of app frameworks. Especially in the last years there are some new frameworks like Flutter (Dart), React Native (JavaScript) or Xamarin (C#) and many more. They have different advantages or disadvantages but you'll have to try yourself which one is the best for you. I'm an Appcelerator user so I am a bit biased ;-) 

## About me
I'm using Appcelerator Titanium since 2010 and created over 30 apps for multiple clients. In 2017 I've earned the "Titan 2.0" title after many contributions to the Framework, tutorials or help inside the Ti-Slack.
When I'm not working with Titanium I love to do front-end development with HTML/JavaScript/CSS or even backend work with PHP.