A cross-platform API for accessing native UI components such as navigation bars, menus, and dialog boxes and native device functionality including the file system, network, geolocation, accelerometer, and maps.
Transparent access to native functionality covered by Hyperloop and native modules.
MVC-based framework Alloy
All application source code gets deployed to the mobile device where it is interpreted using a JavaScript engine; Mozilla's Rhino is used on Android and BlackBerry, and Apple's JavascriptCore is used on iOS. In 2011 it was announced that a port to Google's V8 JavaScript engine is in development which, when complete, will significantly improve performance. Program loading takes longer than it does for programs developed with the native SDKs, as the interpreter and all required libraries must be loaded before interpreting the source code on the device can begin. Titanium provides APIs for:
Use of hardware-specific features, such as the Android menu button
Use of OS-specific controls, such as the Cocoa UI controls on iOS
Participation in the platform ecosystem, for example using platform-appropriate notification mechanisms
History
When it was introduced in December 2008, Titanium was intended for developing cross-platform desktop applications and was sometimes compared to Adobe Air. However, it added support for developing iPhone and Android mobile applications in June 2009, and in 2012, Titanium Desktop was spun off into a separate, community-driven project named TideSDK. Support for developing iPad-based tablet apps was added in April 2010. BlackBerry support was announced on June 2010, and has been in beta since April 2013. Tizen support was also added in April 2013 with the 3.1.0 Titanium Studio and SDK releases. The latest addition to the platform in 2016 has been Hyperloop, a technology to access native API's on iOS, Android and Windows with JavaScript. In April 2010, Appcelerator expanded the Titanium product line with the Titanium Tablet SDK. The Titanium Tablet SDK draws heavily from the existing support for iPhone, but it also includes native support for iPad-only user interface controls such as split views and popovers. Initially the mobile SDK only supported development for iPad, but support now includes Android-based tablets as well. In June 2011, Appcelerator released Studio and Titanium Mobile 1.7. Studio is a full open standards IDE that is derived from Aptana Studio which Appcelerator acquired in January 2011. In June 2013, Jeff Haynie, Appcelerator's CEO, announced that the company had begun Ti.Next, a project to rewrite the Titanium SDK in Javascript for improved performance and to bring Titanium's end users, who write in Javascript, closer to the internal code. In a blog post, he wrote:
We believe JavaScript should be the right language to build Titanium, not just apps on top of the Titanium SDK. With Ti.Next, we've created a small microkernel design that will allow us to have minimal bootstrap code in the native language that talks to a common set of compilers, tools and a single JavaScript Virtual Machine. We have found a way to make the WebKitKJS work on multiple platforms instead of using different VMs per platform. This means we can heavily optimize the microkernel and maintenance, optimizations and profiling can be greatly simplified. We're talking about vs. 100K LOC per platform.
In January 2016, Appcelerator was acquired by Axway, a global software company with more than 11,000 public- and private-sector customers in 100 countries. Since then, the Indie plans have been made free again, including native API access with Hyperloop.
Titanium supports ES6 features since SDK 6.1.0 like Classes, fat arrow functions and more.
Hyperloop
Hyperloop allows the user to access native code within JavaScript and use 3rd party libraries.
Native apps
With Appcelerator Titanium it is possible to create native apps using JavaScript. The compiled apps use native UI components with a connection layer that is able to connect those native UI elements with your JavaScript code. The benefit is that the user will have the best user-experience on every platform since it uses the correct/native UI elements instead of creating custom elements.
Reusable code
One goal of Titanium is to reuse as much code for both platforms as possible. There is a high parity level of components and using the Alloy MVC framework makes it possible to share up to 90% of your code on both platforms. On the other hand it is to use smart conditions to use platform specific code to integrated platform specific features.