Use Vue.js to easily create native mobile apps with Axway Appcelerator Titanium.
Use Vue.js to easily create native mobile apps with Axway Appcelerator Titanium.
⚠️ This platform is currently in an early beta stage. Expect things to be broken or APIs to change as this project matures. DO NOT USE IN PRODUCTION!
First integration of Vue.js and Titanium. It works by replacing the virtual dom in Vue.js with a custom implementation that manages Ti.UI.*
components.
Checkout titanium-vue-sample for sample usage!
Features that are currently working are most of the base views from the Ti.UI.* namespace as well as applying inline styles, attributes and event handlers to those elements.
There are Vue plugins for every modern editor that add syntax highlighting, code snippets and auto completion:
Clone the repo and run npm run dev
to run an initial build to the dist directory and start watching for changes for easy development.
npm install
in each titanium-webpack-devkit
and titanium-vue
.npm install
in the titanium-vue-sample/app
directoryti build
in titanium-vue-sample
All Ti.UI.*
views can be exposed by registering their create factory inside the element registry via registerElement
.
registerElement(tagName, createFactoryResolver, [meta])
Basic elements like a Button can be exposed directly:
registerElement('button', () => Ti.UI.createButton)
More complex elements may require to be wrapped in a Vue component. To avoid naming collision expose those elements with a Titanium
prefix.
registerElement('titanium-tab-group', () => Ti.UI.createTabGroup);
Take a look at the platform components to see existing implementations of Vue.js components wrapping Titanium views.
Open source contributions are greatly appreciated! If you have a bugfix, improvement or new feature, please create an issue first and submit a pull request against master.
If you have questions about the Vue platform on Titanium, feel free to reach out on Stackoverflow or the
#titanium-vue
channel on TiSlack. In case you find a bug, create a new issue
or open a new JIRA ticket.
Apache 2