Giter Site home page Giter Site logo

mobilehero-archive / titanium-turbo Goto Github PK

View Code? Open in Web Editor NEW
15.0 3.0 4.0 49.11 MB

Axway Amplify module that adds some enhancements for Appcelerator Titanium Alloy

Home Page: https://brenton.house/saying-goodbye-to-axway-amplify-titanium-31a44f3671de

License: Other

JavaScript 99.49% Python 0.13% CSS 0.06% CoffeeScript 0.02% HTML 0.13% PEG.js 0.17%
titanium mobile appcelerator appcelerator-titanium alloy turbo native cli plugins brenton-house

titanium-turbo's Introduction

👇   support for Amplify Cloud and Mobile   👇

RIP Axway Amplify Titanium (2010 - 2022)

🪦   RIP Axway Amplify Titanium (2010 - 2022)

🪦   RIP Axway Amplify Cloud Services (2012 - 2022)

🪦   RIP Axway Amplify Crash Analytics (2015 - 2022)


🛑    Axway support for Amplify products has ended for most products related to mobile and cloud.

A few of the open-source versions of Axway Amplify products will live on after Axway Amplify End-of-Life (EOL) announcements. However, all closed-source projects and most open-source projects are now dead.

 

👉    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.

 


API FAQ:

 

Click to watch on Youtube

  ↑ Watch video on YouTube ↑

 

 


 

 

Titanium Turbo

The awesome framework for turbo charging your Titanium cross-platform native mobile app development!


@titanium/turbo version @titanium/turbo downloads @titanium/turbo dependencies

ℹ️   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!



📓   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

Create new Titanium Turbo project

npx @geek/mobile app:create my-new-app

Build or Run app as you would normally.


Manual Method

Create new Titanium Alloy project

Install Titanium Turbo in root of project

npm install --save-dev @titanium/turbo

Install Titanium Turbo Plugin in root of project

npm install --save-dev @titanium/plugin-turbo

Build or Run app as you would normally.


✨   Features

See changelog.md for history of changes

  • Supports installing npm packages in root of project for use in mobile [TIMOB-26352] [Alloy PR] Exclusive Turbo Feature
  • Support for the following XML attributes in textField, label, and textArea: [ALOY-1547] Exclusive Turbo Feature
    • fontSize
    • fontFamily
    • fontStyle
    • fontWeight
    • textStyle
  • Replaced Underscore.js with Lodash 4.17.12 [ALOY-1168]
  • Updated babel.js to 7.x [ALOY-1629] Has been merged into Alloy
  • Enhanced support for babel config files: .babelrc, .babelrc.js and babel.config.js Exclusive Turbo Feature
  • Added support for camelCase, snake_case, and kabab-case in XML views. [ALOY-1647] Exclusive Turbo Feature
  • Added plugin property compileConfig.dir.resourcesAlloy Exclusive Turbo Feature
  • Updated moment to 2.24.0 [ALOY-1682] Has been merged into Alloy
  • Added backbone 1.4.0 [ALOY-1648] Has been merged into Alloy
  • Made default backbone version: 1.4.0
  • Added support for xml namespaced attributes per platform (e.g. ios:text or android:text) [ALOY-1646] Has been merged into Alloy
  • Added support for xml attributes with dotted notation (e.g. font.fontSize) [ALOY-1363] Has been merged into Alloy
  • Added support for using $.args in XML views. [ALOY-1316] Has been merged into Alloy
  • 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. Exclusive Turbo Feature
  • 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] Exclusive Turbo Feature
  • 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. Exclusive Turbo Feature
  • 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] Exclusive Turbo Feature
  • Added constants: Ti.UI.VISIBILITY_COLLAPSE, Ti.UI.VISIBILITY_EXPAND, Ti.UI.VISIBILITY_HIDDEN, and Ti.UI.VISIBILITY_VISIBLE Exclusive Turbo Feature
  • Added support for modelName XML attribute to be used with with dataCollection to assign variable name to current model [Defaults to __currentModel] Exclusive Turbo Feature
  • 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 Exclusive Turbo Feature
  • Added support for adding code to XML View attributes when surrounded by '~' [ALOY-1699] Exclusive Turbo Feature
  • Added support for script element in XML View. Add code by body or src attribute. [ALOY-1700] [Alloy PR] Exclusive Turbo Feature
  • Added value alias center for Ti.UI.TEXT_VERTICAL_ALIGNMENT_CENTER when used with verticalAlign XML attribute [ALOY-1703] Exclusive Turbo Feature
  • Added property alias text for Ti.UI.Button.title when used as XML attribute Exclusive Turbo Feature
  • Added property alias src for Ti.UI.ImageView.image when used as XML attribute Exclusive Turbo Feature
  • Added support for using underscore (instead of lodash) with this tiapp.xml property: <property name="use-underscore"type="bool">true</property> Exclusive Turbo Feature
  • Added support for installing widgets via npm (without naming restrictions) [ALOY-1704] Exclusive Turbo Feature
  • Added support for using WPATH() in xml view attributes: [ALOY-1253] [Alloy PR] Exclusive Turbo Feature
  • Added support for using ~/ as a shortcut for WPATH() in xml view attributes: [ALOY-1714] [Alloy PR] Exclusive Turbo Feature
  • Added support for using widget as primary control in xml view [ALOY-1256] [Alloy PR] Exclusive Turbo Feature
  • Added support for StackLayout control (with shortcut alias of stack and orientation property that defaults to vertical) in JavaScript and xml views Exclusive Turbo Feature
  • Added support for VerticalLayout control (with shortcut alias of vertical) in JavaScript and xml views Exclusive Turbo Feature
  • Added support for HorizontalLayout control (with shortcut alias of horizontal) in JavaScript and xml views Exclusive Turbo Feature
  • Added support for AbsoluteLayout control (with shortcut alias of absolute) in JavaScript and xml views Exclusive Turbo Feature
  • Added support for defining the primary entry point for the application (defaults to index). Currently search order: Alloy.mainAlloy.CFG.main → Titanium Property: app.main. [ALOY-1549] Exclusive Turbo Feature
  • 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] Exclusive Turbo Feature
  • 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] Exclusive Turbo Feature
  • Added support for static script blocks in Alloy <script static="true" /> [ALOY-1742] Exclusive Turbo Feature

🎓 Learn More

⭐   Axway Developer Blog
⭐   Axway Developer YouTube Channel
⭐   Axway Developer Portal
⭐   AMPLIFY Titanium GitHub Repo
⭐   Titanium Alloy GitHub Repo
⭐   Titanium Turbo GitHub Repo

📚   Related projects

⭐   Geek Mobile Toolkit - Toolkit for creating, building, and managing mobile app projects.
⭐   Titanium Mobile - Open-source tool for building powerful, cross-platform native apps with JavaScript.
⭐   Titanium Alloy - MVC framework built on top of Titanium Mobile.
⭐   Appcelerator - Installer for the Appcelerator Platform tool

🎟️   Modules for Titanium Mobile

project description npm
@titanium/applesignin Native modules that allows you to use the iOS 13+ Apple Sign In API with Axway Titanium native mobile apps. @@titanium/applesignin
@titanium/authentication Titanium native mobile authentication manager @titanium/authentication
@titanium/authentication-oauth Titanium native mobile OAuth plugin for authentication manager @titanium/authentication-oauth
@titanium/calendar-picker urbo widget that allows you to pick dates from a calendar with Axway Titanium. @titanium/calendar-picker
@titanium/coremotion Native modules that allows you to use iOS CoreMotion framework with Axway Titanium native mobile apps. @titanium/coremotion
@titanium/essentials The Essential Toolkit for Titanium Turbo Native Mobile Apps @titanium/essentials
@titanium/icloud Native module that allows you to use the Apple iCloud framework with Axway Titanium native mobile apps. @titanium/icloud
@titanium/identity Native modules to add Fingerprint/FaceId/keychain access to Titanium native mobile apps @titanium/identity
@titanium/facebook Native modules that allows you to use Facebook SDK with Axway Titanium native mobile apps. @titanium/facebook
@titanium/googlesignin Native modules that allows you to use the Google Sign-in SDK with Axway Titanium native mobile apps. @titanium/googlesignin
@titanium/lottie Native modules that allows you to use Airbnb Lottie animations with Axway Titanium native mobile apps. @titanium/lottie
@titanium/observer Repackaging of nx-js/observer-util for Titanium Native Mobile @titanium/observer
@titanium/please Titanium native mobile library for politely requesting stuff from the internets @titanium/please
@titanium/polyfill Titanium native mobile polyfills necessary to use packages that depend on Node.js modules @titanium/polyfill
@titanium/turbo 🚀 Turbo is the awesome framework for turbo charging your Titanium cross-platform native mobile app development! @titanium/turbo
@titanium/updater Titanium native mobile widget to check for app updates @titanium/updater
@titanium/webdialog Native modules that allows you to use native SFSafariViewController (iOS) and Chrome Pages (Android) with Axway Titanium native mobile apps. @titanium/webdialog

🎟️   Modules for Node.js and Titanium Mobile

project description npm
@geek/cache Caching module for Node.js and Axway Titanium @geek/cache
@geek/jsonc JSONC and JSON utilities for JavaScript with Node.js and Axway Titanium. @geek/jsonc
@geek/jwt JWT parser for JavaScript Node.js and Titanium native mobile @geek/jwt
@geek/logger Logging module for Node.js and Axway Titanium @geek/logger
@geek/mobile Toolkit for creating, building, and managing mobile app projects. @geek/mobile
@geek/retry Retry JavaScript functions and promises in Node.js and Axway Titanium @geek/retry

📦   Project Starter Kits

project description npm
Titanium Turbo Template (Default) Template for default Turbo app. Based on the basic Alloy Template + some extra goodies. @titanium/template-turbo-default
Titanium Turbo Template (Next) Template for Titanium Turbo app (with extras). Based on the default Turbo Template + some extras. @titanium/template-turbo-next
Titanium Turbo Template (Fully Loaded) Template for Titanium Turbo app with all the bells and whistles! @titanium/template-turbo-fully-loaded

📣   Feedback

Have an idea or a comment? Join in the conversation here!


Follow Brenton House

Follow Brenton House for the latest on great modules and libraries!

Twitter Follow LinkedIn Follow Github Followers


©️   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.

titanium-turbo's People

Contributors

brentonhouse avatar cb1kenobi avatar cheekiatng avatar dbankier avatar dependabot-preview[bot] avatar dependabot[bot] avatar ewanharris avatar feons avatar fokkezb avatar hansemannn avatar hazemkhaled avatar ingo avatar jawa9000 avatar jhaynie avatar k0sukey avatar killix avatar kwhinnery avatar m1ga avatar martintietz avatar mobilehero-bot avatar mukherjee2 avatar orthlieb avatar pegli avatar sgtcoolguy avatar skypanther avatar tonylukasavage avatar topener avatar xavierlacot avatar yomybaby avatar ypbnv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

titanium-turbo's Issues

Add ability to understand more modules from view xml files

Currently, in Alloy View XML files, you can reference $.args.someProperty, Alloy.Globals.someProperty, or Alloy.CFG.someProperty from inside the attribute value of an XML element.

For example,

<Label text="Alloy.Globals.firstName" />

While this works fine for most compiled apps, there is something that is handled differently when your app is compiled and using LiveView during development. The contents of the alloy.js file are not used in the same way that other commonJS modules are used and ends up causing some issues.

To work around this, I am proposing adding a turbo.js file that can be loaded using require('turbo') from any other module but will also be available for use in Alloy XML Views the same way that Alloy.Globals and the other examples from above.

For example,

<Label text="turbo.firstName" />

Add support for using code in View XML attributes

This would allow a developer to do something like this:

<Label id="label2b" color="#999" text="~true ? 'this is true' : 'this is false'~" />

and the generated code would look something like this:

$.__views.label2b = Ti.UI.createLabel(
  { 
      width: Ti.UI.SIZE, 
      height: Ti.UI.SIZE, 
      color: "#999", 
      id: "label2b", 
      text: true ? 'this is true' : 'this is false',
   });

Add ability to install npm packages in project root directory

As a Developer,
I want to be be able to use npm to install packages in project root directory,
So that I can have consistency across Node.js and Titanium projects and one place for node modules.

Currently, if you want to be able to use npm to install packages for Titanium, you need to do it from /app/lib, /app/vendor, or /app/assets.

Currently, there is often already a package.json file in the project root directory since a developer is using npm to install packages needed for building and compiling. A developer would then just install their Titanium packages in root as well.

There would need to be rules in place for this to work correctly.

  1. If you want to install a package for use outside of Titanium (i.e. this package does not contain code you need to be included in the app), you will need to install the package as a devDependency.
npm install -D eslint
  1. If you want to install a package for use inside of Titanium (i.e. this package does contain code you need to be included in the app), you will need to install the package as a regular dependency.
npm install lodash

Add support for <Code> tag in View XML files

Add support for tag in View XML files that would simply output the code from the body of the element into the auto-generated controller.

JIRA Ticket: https://jira.appcelerator.org/browse/ALOY-1700

Code can be added by src attribute:

<Code src="/code/myfile.js" />

By body text:

<Code>
// this is a test
var a = 123;
</Code>

Or by both:

<Code src="/code/myfile.js">
// this is a test
var a = 123;
</Code>

In the last case, it will put the code from the source file above the code from the body text.

The code will then be added to the auto-generated code that is put into the JavaScript controller.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.