@titanium/turbo
Version:
š Turbo is the awesome framework for turbo charging your Titanium cross-platform native mobile app development!
246 lines (173 loc) ⢠23.9 kB
Markdown
<p align="center">
<img src="https://cdn.secure-api.org/images/turbo-logo-1.png" width="100%" />
</p>
# Titanium Turbo
The awesome framework for turbo charging your Titanium cross-platform native mobile app development!
<span align="center">
<img src="https://cdn.secure-api.org/images/rocket-launch.gif" height="100" />
<img src="https://cdn.secure-api.org/images/rocket-launch.gif" height="100" />
<img src="https://cdn.secure-api.org/images/rocket-launch.gif" height="100" />
</span>
-----------
[](https://twitter.com/intent/tweet?text=Check%20out%20Titanium%20Turbo%20on%20GitHub!!%20%20Seriously%20fast%20cross-platform%20native%20mobile%20app%20development!&url=https://github.com/brentonhouse/turbo&via=š%20Titanium%20Turbo&hashtags=axwaydev)



[](https://www.npmjs.com/package/@titanium/turbo)
[](https://dependabot.com)


[](https://github.com/brentonhouse/titanium-turbo/graphs/contributors/)
[]()
> _**ā¹ļø Disclaimer:**
> This project is not an official Axway product. It is managed by [Brenton House](https://brenton.house) using open-source modules, libraries, and tools. Try it out and [let us know what you think](https://github.com/brentonhouse/titanium-turbo/issues)!_
-----------
* [š Description](#--description)
* [š Getting Started](#--getting-started)
* [Simple Method](#simple-method)
* [Manual Method](#manual-method)
* [⨠Features](#--features)
* [š Learn More](#-learn-more)
* [š Related projects](#--related-projects)
* [šļø Modules for Titanium Mobile](#ļø--modules-for-titanium-mobile)
* [šļø Modules for Node.js and Titanium Mobile](#ļø--modules-for-nodejs-and-titanium-mobile)
* [š¦ Project Starter Kits](#--project-starter-kits)
* [š£ Feedback](#--feedback)
* [Follow Brenton House](#follow-brenton-house)
* [Ā©ļø Legal](#ļø--legal)
-----------
## š Description
Titanium Turbo is a fork of **`Titanium Alloy`** that adds a lot of enhancements and customizations for rapid development.
> **Starting with `Turbo v2`, version number of Turbo will no longer be tied to versions of Titanium Alloy.**
This version of Titanium Turbo is based on **`Titanium Alloy 1.15.1`**
## š Getting Started
### Simple Method
<image align="left" src="https://cdn.secure-api.org/images/01_circled_100.png" height="30" width="30" />
Create new Titanium Turbo project
```
npx @geek/mobile app:create my-new-app
```
<image align="left" src="https://cdn.secure-api.org/images/02_circled_100.png" height="30" width="30" />
Build or Run app as you would normally.
-----------
### Manual Method
<image align="left" src="https://cdn.secure-api.org/images/01_circled_100.png" height="30" width="30" />
Create new Titanium Alloy project
<image align="left" src="https://cdn.secure-api.org/images/02_circled_100.png" height="30" width="30" />
Install `Titanium Turbo` in root of project
```
npm install --save-dev @titanium/turbo
```
<image align="left" src="https://cdn.secure-api.org/images/03_circled_100.png" height="30" width="30" />
Install `Titanium Turbo Plugin` in root of project
```
npm install --save-dev @titanium/plugin-turbo
```
<image align="left" src="https://cdn.secure-api.org/images/04_circled_100.png" height="30" width="30" />
Build or Run app as you would normally.
-----------
## ⨠Features
> See `changelog.md` for history of changes
* [x] Supports installing npm packages in root of project for use in mobile [[TIMOB-26352]](https://jira.appcelerator.org/browse/TIMOB-26352) [[Alloy PR]](https://github.com/appcelerator/alloy/pull/950) 
* [x] Support for the following XML attributes in `textField`, `label`, and `textArea`: [[ALOY-1547]](https://jira.appcelerator.org/browse/ALOY-1547) 
- fontSize
- fontFamily
- fontStyle
- fontWeight
- textStyle
* [x] Replaced Underscore.js with Lodash 4.17.12 [[ALOY-1168]](https://jira.appcelerator.org/browse/ALOY-1168)
* [x] Updated babel.js to 7.x [[ALOY-1629]](https://jira.appcelerator.org/browse/ALOY-1629) 
* [x] Enhanced support for babel config files: `.babelrc`, `.babelrc.js` and `babel.config.js` 
* [x] Added support for `camelCase`, `snake_case`, and `kabab-case` in XML views. [[ALOY-1647]](https://jira.appcelerator.org/browse/ALOY-1647) 
* [x] Added plugin property `compileConfig.dir.resourcesAlloy` 
* [x] Updated moment to 2.24.0 [[ALOY-1682]](https://jira.appcelerator.org/browse/ALOY-1682) 
* [x] Added backbone 1.4.0 [[ALOY-1648]](https://jira.appcelerator.org/browse/ALOY-1648) 
* [x] Made default backbone version: 1.4.0
* [x] Added support for xml namespaced attributes per platform (e.g. `ios:text` or `android:text`) [[ALOY-1646]](https://jira.appcelerator.org/browse/ALOY-1646) 
* [x] Added support for xml attributes with dotted notation (e.g. `font.fontSize`) [[ALOY-1363]](https://jira.appcelerator.org/browse/ALOY-1363) 
* [x] Added support for using `$.args` in XML views. [[ALOY-1316]](https://jira.appcelerator.org/browse/ALOY-1316) 
* [x] Added support for using `$.*` in XML views. -- Anything that starts with "$." in an Alloy XML View will be used literally and not treated as a string. 
* [x] Added support for using `turbo.*` in XML views. -- Anything that starts with "turbo." in an Alloy XML View will be used literally and not treated as a string. **[Required workaround for `node_modules` support to LiveView]** [[TIMOB-27206]](https://jira.appcelerator.org/browse/TIMOB-27206) 
* [x] Added support for `__init()` function in controller that will be called before view is built. -- Allows `$.*` variables to be created and used in XML views. 
* [x] Added support for `visibility` property in XML Views with possible values of: `collapse`, `expand`, and `visible`, `hidden` -- Allows collapsing of view in XML. [[TIMOB-27307]](https://jira.appcelerator.org/browse/TIMOB-27307) 
* [x] Added constants: `Ti.UI.VISIBILITY_COLLAPSE`, `Ti.UI.VISIBILITY_EXPAND`, `Ti.UI.VISIBILITY_HIDDEN`, and `Ti.UI.VISIBILITY_VISIBLE` 
* [x] Added support for `modelName` XML attribute to be used with with `dataCollection` to assign variable name to current model [Defaults to `__currentModel`] 
* [x] Added support for `dataName` XML attribute to be used with with `dataCollection` to assign variable name to `model.__transform` [Defaults to `$model`] -- Allows developer to reference current model properties like `$model.myproperty` 
* [x] Added support for adding code to XML View attributes when surrounded by '~' [[ALOY-1699]](https://jira.appcelerator.org/browse/ALOY-1699) 
* [x] Added support for `script` element in XML View. Add code by body or `src` attribute. [[ALOY-1700]](https://jira.appcelerator.org/browse/ALOY-1700) [[Alloy PR]](https://github.com/appcelerator/alloy/pull/937) 
* [x] Added value alias `center` for `Ti.UI.TEXT_VERTICAL_ALIGNMENT_CENTER` when used with `verticalAlign` XML attribute [[ALOY-1703]](https://jira.appcelerator.org/browse/ALOY-1703) 
* [x] Added property alias `text` for `Ti.UI.Button.title` when used as XML attribute 
* [x] Added property alias `src` for `Ti.UI.ImageView.image` when used as XML attribute 
* [x] Added support for using underscore (instead of lodash) with this tiapp.xml property: `<property name="use-underscore"type="bool">true</property>` 
* [x] Added support for installing widgets via npm (without naming restrictions) [[ALOY-1704]](https://jira.appcelerator.org/browse/ALOY-1704) 
* [x] Added support for using `WPATH()` in xml view attributes: [[ALOY-1253]](https://jira.appcelerator.org/browse/ALOY-1253) [[Alloy PR]](https://github.com/appcelerator/alloy/pull/948) 
* [x] Added support for using `~/` as a shortcut for WPATH() in xml view attributes: [[ALOY-1714]](https://jira.appcelerator.org/browse/ALOY-1714) [[Alloy PR]](https://github.com/appcelerator/alloy/pull/951) 
* [x] Added support for using widget as primary control in xml view [[ALOY-1256]](https://jira.appcelerator.org/browse/ALOY-1256) [[Alloy PR]](https://github.com/appcelerator/alloy/pull/949) 
* [x] Added support for StackLayout control (with shortcut alias of `stack` and orientation property that defaults to `vertical`) in JavaScript and xml views 
* [x] Added support for VerticalLayout control (with shortcut alias of `vertical`) in JavaScript and xml views 
* [x] Added support for HorizontalLayout control (with shortcut alias of `horizontal`) in JavaScript and xml views 
* [x] Added support for AbsoluteLayout control (with shortcut alias of `absolute`) in JavaScript and xml views 
* [x] Added support for defining the primary entry point for the application (defaults to `index`). Currently search order: `Alloy.main` ā `Alloy.CFG.main` ā Titanium Property: `app.main`. [[ALOY-1549]](https://jira.appcelerator.org/browse/ALOY-1549) 
* [x] Added support for `<style>` tag in XML views. Also supports the `src` attribute (like the `<script>` tag) which allows users to reference a widget-wide `app.tss` file! [[ALOY-1729]](https://jira.appcelerator.org/browse/ALOY-1729) 
* [x] Partial workaround for Titanium and Alloy issue where relative path require statements are broken. This only fixes static paths. Fix for dynamic paths will be coming in upcoming release of `Turbo`. [[TIMOB-28037]](https://jira.appcelerator.org/browse/TIMOB-28037) 
* [x] Added support for static script blocks in Alloy `<script static="true" />` [[ALOY-1742]](https://jira.appcelerator.org/browse/ALOY-1742) 
## š Learn More
ā [Axway Developer Blog](https://devblog.axway.com)
ā [Axway Developer YouTube Channel](https://youtube.com/axwaydev)
ā [Axway Developer Portal](https://developer.axway.com)
ā [AMPLIFY Titanium GitHub Repo](https://github.com/appcelerator/titanium_mobile)
ā [Titanium Alloy GitHub Repo](https://github.com/appcelerator/alloy)
ā [Titanium Turbo GitHub Repo](https://github.com/brentonhouse/titanium-turbo)
### š Related projects
ā [Geek Mobile Toolkit](https://www.npmjs.com/package/@geek/mobile) - Toolkit for creating, building, and managing mobile app projects.
ā [Titanium Mobile](https://www.npmjs.com/package/titanium) - Open-source tool for building powerful, cross-platform native apps with JavaScript.
ā [Titanium Alloy](https://www.npmjs.com/package/alloy) - MVC framework built on top of Titanium Mobile.
ā [Appcelerator](https://www.npmjs.com/package/appcelerator) - Installer for the Appcelerator Platform tool
#### šļø Modules for Titanium Mobile
| project | description | npm |
|--- |--- |--- |
| [@titanium/applesignin](https://www.npmjs.com/package/@titanium/applesignin) | Native modules that allows you to use the iOS 13+ Apple Sign In API with Axway Titanium native mobile apps. | [](https://www.npmjs.com/package/@titanium/applesignin) |
| [@titanium/authentication](https://www.npmjs.com/package/@titanium/authentication) | Titanium native mobile authentication manager | [](https://www.npmjs.com/package/@titanium/authentication) |
| [@titanium/authentication-oauth](https://www.npmjs.com/package/@titanium/authentication-oauth) | Titanium native mobile OAuth plugin for authentication manager | [](https://www.npmjs.com/package/@titanium/authentication-oauth) |
| [@titanium/calendar-picker](https://www.npmjs.com/package/@titanium/calendar-picker) | urbo widget that allows you to pick dates from a calendar with Axway Titanium. | [](https://www.npmjs.com/package/@titanium/calendar-picker) |
| [@titanium/coremotion](https://www.npmjs.com/package/@titanium/coremotion) | Native modules that allows you to use iOS CoreMotion framework with Axway Titanium native mobile apps. | [](https://www.npmjs.com/package/@titanium/coremotion) |
| [@titanium/essentials](https://www.npmjs.com/package/@titanium/essentials) | The <u>Essential Toolkit</u> for Titanium Turbo Native Mobile Apps | [](https://www.npmjs.com/package/@titanium/essentials) |
| [@titanium/icloud](https://www.npmjs.com/package/@titanium/icloud) | Native module that allows you to use the Apple iCloud framework with Axway Titanium native mobile apps. | [](https://www.npmjs.com/package/@titanium/icloud) |
| [@titanium/identity](https://www.npmjs.com/package/@titanium/identity) | Native modules to add Fingerprint/FaceId/keychain access to Titanium native mobile apps | [](https://www.npmjs.com/package/@titanium/identity) |
| [@titanium/facebook](https://www.npmjs.com/package/@titanium/facebook) | Native modules that allows you to use Facebook SDK with Axway Titanium native mobile apps. | [](https://www.npmjs.com/package/@titanium/facebook) |
| [@titanium/googlesignin](https://www.npmjs.com/package/@titanium/googlesignin) | Native modules that allows you to use the Google Sign-in SDK with Axway Titanium native mobile apps. | [](https://www.npmjs.com/package/@titanium/googlesignin) |
| [@titanium/lottie](https://www.npmjs.com/package/@titanium/lottie) | Native modules that allows you to use Airbnb Lottie animations with Axway Titanium native mobile apps. | [](https://www.npmjs.com/package/@titanium/lottie) |
| [@titanium/observer](https://www.npmjs.com/package/@titanium/observer) | Repackaging of nx-js/observer-util for Titanium Native Mobile | [](https://www.npmjs.com/package/@titanium/observer) |
| [@titanium/please](https://www.npmjs.com/package/@titanium/please) | Titanium native mobile library for politely requesting stuff from the internets | [](https://www.npmjs.com/package/@titanium/please) |
| [@titanium/polyfill](https://www.npmjs.com/package/@titanium/polyfill) | Titanium native mobile polyfills necessary to use packages that depend on Node.js modules | [](https://www.npmjs.com/package/@titanium/polyfill) |
| [@titanium/turbo](https://www.npmjs.com/package/@titanium/turbo) | š Turbo is the awesome framework for turbo charging your Titanium cross-platform native mobile app development! | [](https://www.npmjs.com/package/@titanium/turbo) |
| [@titanium/updater](https://www.npmjs.com/package/@titanium/updater) | Titanium native mobile widget to check for app updates | [](https://www.npmjs.com/package/@titanium/updater) |
| [@titanium/webdialog](https://www.npmjs.com/package/@titanium/webdialog) | Native modules that allows you to use native SFSafariViewController (iOS) and Chrome Pages (Android) with Axway Titanium native mobile apps. | [](https://www.npmjs.com/package/@titanium/webdialog) |
#### šļø Modules for Node.js and Titanium Mobile
| project | description | npm |
|--- |--- |--- |
| [@geek/cache](https://www.npmjs.com/package/@geek/cache) | Caching module for Node.js and Axway Titanium | [](https://www.npmjs.com/package/@geek/cache) |
| [@geek/jsonc](https://www.npmjs.com/package/@geek/cache) | JSONC and JSON utilities for JavaScript with Node.js and Axway Titanium. | [](https://www.npmjs.com/package/@geek/jsonc) |
| [@geek/jwt](https://www.npmjs.com/package/@geek/jwt) | JWT parser for JavaScript Node.js and Titanium native mobile | [](https://www.npmjs.com/package/@geek/jwt) |
| [@geek/logger](https://www.npmjs.com/package/@geek/logger) | Logging module for Node.js and Axway Titanium | [](https://www.npmjs.com/package/@geek/logger) |
| [@geek/mobile](https://www.npmjs.com/package/@geek/mobile) | Toolkit for creating, building, and managing mobile app projects. | [](https://www.npmjs.com/package/@geek/mobile) |
| [@geek/retry](https://www.npmjs.com/package/@geek/retry) | Retry JavaScript functions and promises in Node.js and Axway Titanium | [](https://www.npmjs.com/package/@geek/retry) |
#### š¦ Project Starter Kits
| project | description | npm |
|--- |--- |--- |
| [Titanium Turbo Template (Default)](https://www.npmjs.com/package/@titanium/template-turbo-default) | Template for default Turbo app. Based on the basic Alloy Template + some extra goodies. | [](https://www.npmjs.com/package/@titanium/template-turbo-default) |
| [Titanium Turbo Template (Next)](https://www.npmjs.com/package/@titanium/template-turbo-next) | Template for Titanium Turbo app (with extras). Based on the default Turbo Template + some extras. | [](https://www.npmjs.com/package/@titanium/template-turbo-next) |
| [Titanium Turbo Template (Fully Loaded)](https://www.npmjs.com/package/@titanium/template-turbo-fully-loaded) | Template for Titanium Turbo app with all the bells and whistles! | [](https://www.npmjs.com/package/@titanium/template-turbo-fully-loaded) |
## š£ Feedback
Have an idea or a comment? [Join in the conversation here](https://github.com/brentonhouse/titanium-turbo/issues)!
-----
## Follow Brenton House
> Follow [`Brenton House`](https://brenton.house) for the latest on great modules and libraries!
[](https://twitter.com/brentonhouse)
[](https://www.linkedin.com/in/brentonhouse/)

-----
## Ā©ļø Legal
Alloy is developed by Appcelerator and the community and is Copyright Ā© 2012-Present by Appcelerator, Inc. All Rights Reserved.
Alloy is made available under the Apache Public License, version 2. See their license file for more information.
Appcelerator is a registered trademark of Appcelerator, Inc. Titanium is a registered trademark of Appcelerator, Inc. Please see the LEGAL information about using trademarks, privacy policy, terms of usage and other legal information at http://www.appcelerator.com/legal.