fifty shades of alloy - tips and tools for a great titanium mobile development

65
Alessio Ricco Fifty Shades of Alloy - tips and tools for better Titanium Mobile apps @alessioricco - Wallive ltd MILAN november 28 th /29 th 2014

Upload: alessio-ricco

Post on 12-Jul-2015

2.586 views

Category:

Mobile


0 download

TRANSCRIPT

Page 1: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

Alessio Ricco

Fifty Shades of Alloy - tips and tools for better Titanium Mobile apps

@alessioricco - Wallive ltd

MILAN november 28th/29th 2014

Page 2: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 2

Titanium

Page 3: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 3

Platform

Page 4: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 4

Architecture

Page 5: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 5

Alloy

Page 6: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 6

Views

Page 7: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 7

Styles

Page 8: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 8

Controllers

Page 9: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 9

Models

Page 10: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 10

Media and resources

Page 11: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 11

Appcelerator Blog [web]

http://www.appcelerator.com/blog/

Page 12: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 12

TiDev [web]

http://www.tidev.io/

Page 13: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 13

Prototyping e Frameworks

Page 14: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 14

Ti-Browser [prototyping]

http://www.ti-browser.com/en/ John Anderson

Page 15: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 15

Ti UX Templates [framework]

http://www.uxmobilepatterns.com/ Sonia Villanueva and Javier Rayon

Page 16: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 16

Ti UX Templates [framework]

https://github.com/jaraen/Ti.UX.Templates Sonia Villanueva and Javier Rayon

Page 17: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 17

\ [framework]

https://github.com/TNuzzi/wriststrap Tony Nuzzi

A Twitter Bootstrap inspired framework for Appcelerator Titanium (Alloy)

Page 18: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 18

Repositories and Marketplace

Page 19: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 19

gitTio [repo]

http://gitt.io/

Page 20: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 20

TitaniumControls [repo]

http://www.titaniumcontrols.com/ Autore

Page 21: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 21

Tools and Utilities

Page 22: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 22

grunt plugins [tools]

http://tonylukasavage.com/blog/2014/01/23/automating-appcelerator-tasks-with-grunt-titanium-and-grunt-alloy/

module.exports = function(grunt) {

// configure the plugins grunt.initConfig({ titanium: { all: { options: { command: 'create', name: 'app_name', workspaceDir: '.' } } }, alloy: { new_app: { options: { command: 'new', args: ['app_name'] } }, compile: { options: { command: 'compile', platform: 'ios', outputPath: 'app_name' } } } });

// Actually load this plugin's task(s). grunt.loadTasks('tasks');

// These plugins provide necessary tasks. grunt.loadNpmTasks('grunt-titanium'); grunt.loadNpmTasks('grunt-alloy');

grunt.registerTask('default', ['titanium', 'alloy']);};

“In a natural fusion of my current technological entanglements, I took to creating grunt task plugins for Appcelerator’s core cross-platform mobile development tools. As a result, we now have grunt-titanium for the Titanium CLI and grunt-alloy for the Alloy MVC framework. With these plugins you can now automate all functionality involved by these 2 tools, in turn letting you shift your focus onto your mobile app development, where it should be.” (Tony Lukasavage)

Page 23: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 23

stss [preprocess]

https://github.com/RonaldTreur/STSS Ronald Treur

Page 24: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 24

Titaniumifier [tools]

https://github.com/smclab/titaniumifier Pier Paolo Ramon - SMC

Page 25: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 25

Titanium-jsduck [documentation]

https://www.npmjs.org/package/titanium-jsduck Jamil Hassan Spain

Page 26: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 26

TiCons [training]

http://ticons.fokkezb.nl/ Fokke Zandbergen

Page 27: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 27

Sublime Text [preprocess]

https://github.com/MattTuttle/sublime-ti-build Matt Tuttle

Page 28: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 28

Submodules [preprocess]

http://emanuele.decup.is/articles/reuse-code-alloy-custom/ Emanuele Decupis (a.k.a. Ciccio Balanza)

Page 29: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 29

General Pourpose Libraries

Page 30: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 30

Trimethyl 2 [library]

https://github.com/CaffeinaLab/Trimethyl CaffeinaLab

Page 31: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 31

UTiL [library]

https://github.com/FokkeZB/UTiL Fokke Zandbergen

Page 32: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 32

Titanium Modules [documentation]

https://github.com/appcelerator/titanium_modules Appcelerator

Page 33: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 33

Libraries

Page 34: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 34

ti-soap [library]

https://github.com/smclab/ti-soap SMC

var soap = require('soap');var config = require('config');soap.createClient('http://www.webservicex.net/CurrencyConvertor.asmx?WSDL', function (err, client) { if (err) throw err;

Ti.API.error("Methods:"); Ti.API.error(Object.keys(client));

Ti.API.error(client.ConversionRate);

client.ConversionRate({ FromCurrency: 'USD', ToCurrency: 'CNY' }, function (err, results) { if (err) throw err; Ti.API.error(results); });});

Page 35: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 35

TiWorker [code]

https://github.com/appcelerator-modules/ti.worker Appcelerator

Page 36: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 36

Ti-superagent [training]

https://github.com/smclab/ti-superagent SMC

Page 37: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 37

XHR Http Client [library]

https://github.com/raulriera/XHR Autore

Page 38: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 38

Google Auth (OAuth 2.0) for Titanium [library]

https://github.com/ejci/Google-Auth-for-Titanium Miroslav Magda

Page 39: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 39

RestAPI Sync Adapter for Titanium Alloy [code]

https://github.com/viezel/napp.alloy.adapter.restapi Mads Møller

Page 40: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 40

Code Tips

Page 41: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 41

underscore.js [code]

http://underscorejs.org/

Page 42: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 42

Custom View in Alloy [code]

http://fokkezb.nl/2013/07/14/custom-alloy-view-components/ Fokke Zandbergen

Page 43: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 43

Use Alloy.jmk [documentation]

http://docs.appcelerator.com/titanium/3.0/#!/guide/Build_Configuration_File_(alloy.jmk) Appcelerator

Page 44: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 44

TiIconicFont [code]

https://github.com/k0sukey/TiIconicFont Kosuke Isobe

Page 45: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 45

Slideshare [code]

http://www.slideshare.net/alessioricco/titanium-appcelerator-best-practices?related=1 Alessio Ricco

Page 46: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 46

WebViews

Page 47: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 47

take the best from the Webview [code]

WebView is not only for web pages… Communication between App and Webview (local pages) Lot of powerful js libraries immediately available Easy to implement but… …Pay attention to the performance

Page 48: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 48

Mapbox [code]

https://www.mapbox.com/mapbox.js/api/v2.1.4/

Page 49: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 49

Charts [code]

http://www.appcelerator.com/blog/2013/09/interactive-charts-in-appcelerator-titanium/ L. Brenman

“A simple method of adding high quality, cross device, interactive charts to your Titanium mobile applications by leveraging the Titanium web view control and the Highcharts JavaScript charting engine”

Page 50: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 50

Testing

Page 51: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 51

TiInspector [test]

http://titaniumninja.com/debugging-titanium-apps-with-chrome-devtools/ Olivier Morandi

Page 52: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 52

Tio2 [test]

https://github.com/appcelerator/tio2 Appcelerator

Page 53: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 53

ti-mocha [test]

http://tonylukasavage.com/ti-mocha/ Tony Lukasavage

Simple and reliable support for mocha testing with Appcelerator's Titanium SDK

Page 54: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 54

TiCalabash [test]

https://github.com/appersonlabs/TiCalabash AppersonLabs

picture by Andrew McElroy

Page 55: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 55

TiShadow [test]

http://tishadow.yydigital.com/ David Bankier

TiShadow provides Titanium developers the ability to deploy apps, run tests or execute code snippets live across all running iOS and Android devices.

There are three parts to TiShadow: the TiShadow server, TiShadow app and TiShadow CLI which are all need.

Page 56: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 56

Rapiddev [test]

http://appersonlabs.com/2014/01/09/rapiddev-titanium-development-speed-light/ Apperson Labs

So why use RapidDev? RapidDev provides a more simple toolset with the idea that less is more.

Page 57: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 57

Deployment

Page 58: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 58

installr [deployment]

https://github.com/amitkothari/ti-installr-hook

https://www.installrapp.com/

Page 59: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 59

Communities

Page 60: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 60

Be a certified developer [training]

http://training.appcelerator.com/get-certified

call my friends from etnatraining.it for a great Titanium Course in Italy…

Page 61: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 61

tiConf [community]

http://ticonf.org/ http://www.tipsyandtumbler.co.uk/

Page 62: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 62

ti-connect [community]

http://ti-connect.com/

Page 63: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 63

Join your local community [training]

https://www.facebook.com/groups/TitaniumMobileItaly/ Great people and friends

Page 64: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 64

[credits]

Thank you to all my Ti.Friends and colleagues

A special thank to my friend Dick

Page 65: Fifty shades of Alloy - tips and tools for a great Titanium Mobile development

https://www.facebook.com/groups/TitaniumMobileItaly/http://www.html.it/guide/guida-titanium/http://www.linkedin.com/in/alessioriccohttp://www.slideshare.net/alessioricco