@titanium/turbo
Version:
š Axway Amplify tool to use Turbo for turbo charging your Appcelerator Titanium SDK Framework!
325 lines (228 loc) ⢠26.3 kB
Markdown
[//]: # (header-start)
<h1 align="center">
<a href="https://blog.axway.com/mobile-apps/changes-to-application-development-services">
Preparing for end of Axway
</a>
</h1>
<h2 align="center">
š support for Amplify Cloud and Mobile š
</h2>
<a href="https://brenton.house/saying-goodbye-to-axway-amplify-titanium-31a44f3671de">
<p align="center">
<img src="https://cdn.secure-api.org/images/RIP-Axway-Amplify-Titanium.png" alt="RIP Axway Amplify Titanium (2010 - 2022)" width="80%" />
</p>
</a>
<p align="center">
<a href="https://blog.axway.com/mobile-apps/changes-to-application-development-services">
šŖ¦ RIP Axway Amplify Titanium (2010 - 2022)
</a>
</p>
<p align="center">
<a href="https://blog.axway.com/mobile-apps/prepare-your-apps-for-appcelerator-end-of-support">
šŖ¦ RIP Axway Amplify Cloud Services (2012 - 2022)
</a>
</p>
<p align="center">
<a href="https://blog.axway.com/mobile-apps/prepare-your-apps-for-appcelerator-end-of-support">
šŖ¦ RIP Axway Amplify Crash Analytics (2015 - 2022)
</a>
</p>
<hr>
<h4 align="center">
š <a href="https://blog.axway.com/mobile-apps/prepare-your-apps-for-appcelerator-end-of-support">Axway support for Amplify products has ended</a> for most products related to mobile and cloud.
</h4>
<h4 align="center">
A few of the open-source versions of Axway Amplify products will live on after <a href="">Axway Amplify End-of-Life</a> (EOL) announcements. However, all closed-source projects and most open-source projects are now dead.
</h4>
<p> </p>
> š A group of Axway employees, ex-Axway employees, and some developers from Titanium community have created a legal org and now officially decide all matters related to future of these products.
<p> </p>
<hr>
## API FAQ:
* [API Best Practices](https://brenton.house)
* [What is API Security?](https://brenton.house/what-is-api-security-5ca8117d4911)
* [OWASP Top 10 List for API Security](https://www.youtube.com/watch?v=GLVHDj0Cpg4)
* [What is API Security?](https://brenton.house/what-is-api-security-5ca8117d4911)
* [Top API Trends for 2022](https://brenton.house/top-10-api-integration-trends-for-2022-49b05f2ef299)
* [What is a Frankenstein API?](https://brenton.house/what-is-a-frankenstein-api-4d6e59fca6)
* [What is a Zombie API?](https://brenton.house/what-is-a-zombie-api-6e5427c39b6a)
* [API Developer Experience](https://brenton.house/keys-to-winning-with-an-awesome-api-developer-experience-62dd2fa668f4)
* [API Cybersecurity 101](https://brenton.house/what-is-api-security-5ca8117d4911)
* [YouTube API Videos](https://youtube.com/brentonhouse)
* [YouTube API Shorts Videos](https://youtube.com/apishorts)
[](https://www.youtube.com/watch?v=GLVHDj0Cpg4&list=PLsy9MwYlG1pew6sktCAIFD5tbrXy9HUQ7 "Click to watch on YouTube")
> [ā Watch video on YouTube ā](https://www.youtube.com/watch?v=GLVHDj0Cpg4&list=PLsy9MwYlG1pew6sktCAIFD5tbrXy9HUQ7)
<p> </p>
<hr>
<p> </p>
<p> </p>
[//]: # (header-end)
<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://www.npmjs.com/package/@titanium/turbo)
[](https://www.npmjs.com/package/@titanium/turbo)
[](https://www.npmjs.com/package/@titanium/turbo)
> _**ā¹ļø Disclaimer:**
> This project is not an official Axway product. It is managed by the open-source community using open-source modules, libraries, and tools. Try it out and [let us know what you think](https://github.com/mobilehero-archive/titanium-turbo/issues)!_
-----------
* [API FAQ:](#api-faq)
* [š 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.