It has been a while since I implemented my first project using Appcelerator, a useful tool for developing native applications on Android and IOS. Since then, I have read many articles on the use of this tool, its strengths, weaknesses, best practices, bad practices, why, how, when ... but it was very little what I found on experiences from other programmers at the time to implement a project with Appcelerator. This blog is dedicated in describing tips, based on my experience with this tool and that should be considered when deciding to use it to develop mobile applications.
Once you have decided to use *Appcelerator*, the first thing you should do is register yourself; fortunately we have access to very good and official documentation, which you can find here http://docs.appcelerator.com/platform/latest/#!/guide/Quick_Start The Titanium API has everything you need to know about its components. It has examples and interaction guides with Alloy. As a last resource, if the API is not enough, always remember that Google is your friend and websites such as Stackoverflow will have the answers to the questions you may have (https://stackoverflow.com/tags/appcelerator)
This is very important, the platform is not free, but allows you to use their products to develop your projects and when releasing an application you must first obtain a license. This company is committed to the free development, which is why the give support to their proyects Titanium and Alloy, which can be found in Github.
In http://gitt.io you will be able to find a wide variety of modules and widgets which where developed by developers within the community, however, you must be careful because not all have the appropiate documentation which makes its implementation and use much more difficult.
When using Titanium is inevitable to have to make custom components as lists cards, popups, selectors, etc. Try to make exportable components using the MVC model.
- If the design view for Android is very different from IOS, you must create folders for each platform and therefor keep separated the views. Use sentences such as *if (OS_ANDROID)* and *if (OS_IOS)* as to keep the code separated and which will be executed in each platform. - Starting a project only for one platform and then pass it to the other. That is a BIG mistake, you will lose a lot more time if you choose to develop that way.
I like to use Sublime Text 3 to program applications in Titanium, as it has very good plugins that help write the code and to debug the project, and is much faster than Appcelerator Studio. Also, if you complement it with the CLI Appcelerator, you will be able to save a lot more time. TIP: The **LiveView** tool is available with the option *--liveView* from the *appc run* command. It helps to change the code while executing it, without recompiling the project. Me gusta utilizar Sublime Text 3 para programar aplicaciones en Titanium, ya que cuenta con muy buenos plugins que ayudan a escribir el código y hacer Debug del proyecto, además es mucho más rápido que Appcelerator Studio y si lo complementas con el CLI de Appcelerator podrás ahorrar mucho tiempo. TIP: La herramienta **LiveView** está disponible con la opción *--liveview* del comando *appc run*. Sirve para actualizar los cambios del código en tiempo de ejecución, sin necesidad de volver a compilar el proyecto.