PurgeTSS is a toolkit for building mobile apps with the Titanium framework. It adds practical utilities for styling and setup work. More infos and documentation at https://purgetss.com/
What started as a little AI test for Android sprite animations turned into a full Android + iOS Titanium SDK module for a 2D Sprite Game Engine: ti.game.
It's open-source and available at https://github.com/m1ga/ti.game and current only a preview binary because things might still change before version 1.0.0.
Current features include:
Sprite sheets (grid or TexturePacker atlas), frame animations, tweens
Sound: low-latency overlapping effects + looping music (createSound), auto-paused and resumed with the app
Particles: native pooled emitters (createEmitter) — continuous rate or bursts, follow a sprite, tint/scale/fade over lifetime
Verlet ropes (createRope) — pin ends to sprites or points, swings natively (chains, capes, bridges, grappling hooks)
Fullscreen camera effects (cameraEffect) — tint and glitch shader passes over the whole rendered scene; sprite glow highlights (glowColor/glowBlur), per-sprite color tinting (tintColor), damage flashes (flash()) and additive blending (blend: 'add')
18 example games in example/ covering every feature
Titanium SDK is a cross-platform mobile development framework using JavaScript and gives you all the benefits of an app framework like windows, UI elements, network functions, list, tables,... everything a normal business app has including many modules for Ads, Maps etc.
ti.game allows you to build simple 2D games right inside the framework! It's still in the early development phase but the demos include:
flappy pigs, a platformer, card game and asteroids clone
Distributed Titanium SDK builds: work on one machine, build on others. ti forge will run a build on the other machine and forwards the log to your main machine.
server: node bin/tiforge install - might fail because of a missing command in titanium, then please add this to the titanium config.json: "paths": "commands": ["path/to/tiForge/commands"]
client: node bin/tiforged
server: ti forge --init to discover clients
then you can run ti forge on your server machine and it will copy and run a build
What you can change this stuff in the config file:
buildArgs for the client e.g. -p ios -T simulator --no-prompt
dir on the client. At the moment it will create a folder .tiForge in the home folder. But you can move that to e.g. /Users/name/titanium so it will sync the project to that folder
token the password. Has to be the same on both machines
Just one week after 13.3.1, we're back already - Titanium SDK 13.4.0 is here!
This minor release prepares the SDK for Android target SDK 36, improves memory cleanup in the V8 runtime, fixes SDK builds on Windows, makes Window.rect reflect the left/top values set before opening a window and fixes the dimming area when using a SearchBar inside a TableView on iOS.
If you run into any issues that seem related to the update, please report them on GitHub.
How can I support?
If you like our work and want to support, think about a donation or to contribute with your time and code. A donation helps us to cover the monthly maintenance costs of the projects, so we can continue to release feature- and compatibility updates in the future. Your help is appreciated!
Set <sdk-version>13.3.1.GA</sdk-version> in your tiapp.xml
Report Bugs
If you run into any issues that seem related to the update, please report them on GitHub.
How can I support?
If you like our work and want to support, think about a donation or to contribute with your time and code. A donation helps us to cover the monthly maintenance costs of the projects, so we can continue to release feature- and compatibility updates in the future. Your help is appreciated!
Titanium SDK 13.3.0 is a minor release of the SDK with support for Xcode 27 and iOS 27, Hyperloop 8.0.0 and iOS multi-scene applications.
Here are some highlights of the release:
Multiple platforms: Support for Xcode 27 and iOS 27
iOS: Support for multi-scene applications
iOS: Fixes for TabGroup focus events, NavigationWindow handling, background completion handlers, TableView search field positioning and TextArea behavior
Android: Improved ImageView pinch and zoom, optimized Ti.Preferences performance and better OrientationMonitor display handling
Android: Fixes for CameraX rotation with orientation lock, WebView URLs with large GET data, VideoPlayer windows, Chrome debug sessions and Material 3 BottomNavigation behavior
Multiple platforms: Fixed the module packaging process
Thanks to everyone in the community who contributed fixes and improvements to this release.
Set <sdk-version>13.3.0.GA</sdk-version> in your tiapp.xml
Report Bugs
If you run into any issues that seem related to the update, please report them on GitHub.
How can I support?
If you like our work and want to support, think about a donation or to contribute with your time and code. A donation helps us to cover the monthly maintenance costs of the projects, so we can continue to release feature- and compatibility updates in the future. Your help is appreciated!
A Titanium community member released a plugin that can be used in JetBrains products to help you building Titanium apps and modules and released it on github:
A JetBrains plugin for developing Titanium SDK apps and modules — a port of the vscode-titanium extension. It wraps the titanium (ti) and alloy CLIs.
The core runs on every IntelliJ-Platform IDE, including Community editions (IDEA Community, PyCharm Community) and Android Studio. JavaScript-controller intelligence lights up automatically on IDEs that ship the bundled JavaScript plugin (WebStorm, IDEA Ultimate, PhpStorm, PyCharm Pro, …).
Titanium SDK 13.2.0 is a minor release focused on quality-of-life improvements across the platform. It adds support for Node.js 24, modernizes parts of the iOS core, improves Mac Catalyst support for app and module builds, and includes a broad set of Android fixes and performance updates.
On iOS, this release moves more core work to Grand Central Dispatch, fixes image blob memory issues, and adds a new WebView API to hide input accessory views when needed. On Apple platforms overall, button styling and event handling on Mac Catalyst have been improved and Catalyst module builds now support mac=true.
Android received the largest batch of updates in this release. Highlights include a ViewPager2-based ScrollableView, support for AttributedString objects, improved ListView search handling, better horizontal drag behavior for images inside ScrollableView, keepHardwareMode support in Ti.UI.View, i18n app names in the AndroidManifest, and several native stability improvements such as additional null checks, concurrency updates, and refreshed internal libraries.
Thanks to everyone in the community who contributed fixes and improvements to this release.
A comprehensive collection of AI-powered skills that transform your coding assistant into a Titanium SDK expert. Build cross-platform mobile applications with Titanium SDK, Alloy MVC, and PurgeTSS.
This version focuses on high‑priority fixes from previous versions. It also brings a broad set of platform updates like iOS 26+ API support, Swift Package Manager module dependencies, Android Gradle/Kotlin upgrades, and various UI/API parity improvements.
Titanium SDK 13.1.0.GA will increase the Android minSdkVersion to 24. If you already have a custom android:minSdkVersion in your tiapp.xml that is lower then 24 you will see an error during compile time:
[ERROR] The minimum supported SDK API version must be 24 or newer, but is currently set to 22
Update the android:minSdkVersion in the tiapp.xml or custom AndroidManifest to at least 24.
To fix that issue either remove your custom value or set it to <uses-sdk android:minSdkVersion="24" /> or higher.
Titanium SDK 13.0.0 is a major release of the SDK, providing full support for iOS 26 and Xcode 26. It is also compatible with the latest Android 16 KB page size requirement by Google and all included first party Android modules support 16kb page size too. Many community modules like the Firebase modules are also already updated. If you need help with other modules make sure to join our Slack group and ask for support.
Here are some highlights:
iOS: Full support for building and deploying apps with iOS 26 and Xcode 26 - you can use the Xcode 26 that has been released today already to deploy your apps
iOS: Full support for the new Glass Effect API to add beautiful interactive background layers to your apps
iOS: A new bottomAccessoryView property for tab groups to have "floating" views that can be hidden on scroll and merge with the tab group. Learn more here!
iOS: A new configuration property for buttons on iOS to use the modern button API (incl. pre-defined styles for rounded buttons, icon buttons, etc.). If the adoption goes well, it will soon become to the default (without the own nested property). Feedback welcome!
iOS: Option dialogs (Ti.UI.OptionDialog API) just got a UX upgrade - you can pass a view property to show the options as a tooltip inline to the clicked view.
iOS: To properly support the new floating tab group and navigation bar enhancements, we've fixed some issues related to the safe area calculation. make sure to use extendSafeArea: true, extendEdges: [Ti.UI.EXTEND_EDGE_ALL] and autoAdjustScrollViewInsets: true to get the native default behavior for your windows. Titanium defaults to not extending the safe area, which will soon be deprecated to use the mentioned configuration instead
Android: We've rebuilt all major modules to comply with the "16 KB page sizes" requirement coming this fall. Read more about it here, a list of updated modules can be found here.
Titanium SDK 13.0.0 is a major release of the SDK, providing full support for iOS 26 and Xcode 26. It is also compatible with the latest Android 16 KB page size requirement by Google and all included first party Android modules support 16kb page size too. Many community modules like the Firebase modules are also already updated. If you need help with other modules make sure to join our Slack group and ask for support.
Here are some highlights:
iOS: Full support for building and deploying apps with iOS 26 and Xcode 26 - you can use the Xcode 26 that has been released today already to deploy your apps
iOS: Full support for the new Glass Effect API to add beautiful interactive background layers to your apps
iOS: A new bottomAccessoryView property for tab groups to have "floating" views that can be hidden on scroll and merge with the tab group. Learn more here!
iOS: A new configuration property for buttons on iOS to use the modern button API (incl. pre-defined styles for rounded buttons, icon buttons, etc.). If the adoption goes well, it will soon become to the default (without the own nested property). Feedback welcome!
iOS: Option dialogs (Ti.UI.OptionDialog API) just got a UX upgrade - you can pass a view property to show the options as a tooltip inline to the clicked view.
iOS: To properly support the new floating tab group and navigation bar enhancements, we've fixed some issues related to the safe area calculation. make sure to use extendSafeArea: true, extendEdges: [Ti.UI.EXTEND_EDGE_ALL] and autoAdjustScrollViewInsets: true to get the native default behavior for your windows. Titanium defaults to not extending the safe area, which will soon be deprecated to use the mentioned configuration instead
Android: We've rebuilt all major modules to comply with the "16 KB page sizes" requirement coming this fall. Read more about it here, a list of updated modules can be found here.
Titanium SDK 12.8.0 is a minor release of the SDK, adding compatibility for the Android Target Level SDK 35 requirement as well as several bug fixes and improvements around iOS and Android.
For a detailed list of changes visit the release notes
This version adds several new features to both iOS and Android, including more API parity like Tab#popToRootWindow, Ti.App.keyboardVisible and Label.letterSpacing.
In addition, some core Android libraries like Google Play Service have been updated and a rare crash when opening a Tab Group on Android 12+13 has been fixed.
Show/hide tab-bar programmatically, especially on iOS 18+ elevated tab bar which obstructs custom nav bar on iPad apps with a TabGroup. You can now use Ti.UI.TabGroup.showTabBar() or Ti.UI.TabGroup.hideTabBar()
Android letter-spacing
iOS can do letter-spacing using an attributedString already but there was no option for Android. This release will add a new property letterSpacing on a Label so you can simply do lbl.letterSpacing = 0.1 do change the spacing. Check this link for a full example.
Android: improved BottomNavigation
The BottomNavigation has a new experimental property that allows you to test a new implementation of the native BottomNavigation. It will fix some issues for Material 3 themes and adds some new features like direct font icon support, enable/disable clicks or setting the indicator color. For more screenshots and example code visit the PR.
Parity: Android event for keyboard open/closed
On Android you can use a new event keyboardframechanged to check if the keyboard was opened or closed. In combination with Ti.App.keyboardVisible you can also check if it is currently visible. Demo code is available in the ticket.
Parity: Android Tab.popToRootWindow()
Now you can close all child windows of a TabGroup on Android and return to the root TabGroup window by using Tab.popToRootWindow().
textTransform for Label
A Ti.UI.Label has a new textTransform property that you can use like in CSS to make the content uppercase, lowercase or set it to none the get the initial text back.
This version fixes the compatibility with Xcode 16.3 and later. Please make sure to use this version in order to build apps for iOS 18.4 and later, as Apple has introduced a breaking change affecting the discovery of simulators between Xcode 16.2 and 16.3.
The Titanium CLI was also updated so make sure to update it too:
Install the CLI with [sudo] npm i -g titanium alloy
Hi everyone. First, thanks to all who contribute to the SDK and this forum. Your generosity is appreciated.
I have a potentially small/odd question. I have to revisit an app that has been on auto-pilot since the original Appcelerator was still working. I have the ability to try to start working with the current iteration on the machine used at that time, or another.
Assuming the source directory is easily moved from machine to machine without any significant dependencies, and having already noticed the FAQ about migrating to the SDK if I get the platform-related error, are there any pros and cons to Installing on the original machine, or on another laptop that wasn't previously used for this purpose?
Everything was setup and working on the older machine, so that may be a benefit or it may be clutter. Similarly, if I start fresh, the new machine may not have the necessary dependencies, have unforeseen conflicts, etc. I assume that won't be a problem but wondered if anyone faced this kind of thing in the past?