50 sfumature di alloy - alessio ricco - codemotion milan 2014

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: codemotion

Post on 05-Jul-2015

160 views

Category:

Technology


1 download

DESCRIPTION

Quali sono le best practices per scrivere un'applicazione Titanium Mobile solida, testata e ben documentata? In questo speech vedremo 50 semplici regole di coding (ma non solo) che renderanno agli sviluppatori Alloy la vita più facile, soprattutto se alle prese con progetti enterprise e cross-platform.

TRANSCRIPT

Page 1: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

Alessio Ricco

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

@alessioricco - Wallive ltd

MILAN november 28th/29th 2014

Page 2: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 2

Titanium

Page 3: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 3

Platform

Page 4: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 4

Architecture

Page 5: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 5

Alloy

Page 6: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 6

Views

Page 7: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 7

Styles

Page 8: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 8

Controllers

Page 9: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 9

Models

Page 10: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 10

Media and resources

Page 11: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 11

Appcelerator Blog [web]

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

Page 12: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 12

TiDev [web]

http://www.tidev.io/

Page 13: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 13

Prototyping e Frameworks

Page 14: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 18

Repositories and Marketplace

Page 19: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 19

gitTio [repo]

http://gitt.io/

Page 20: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 20

TitaniumControls [repo]

http://www.titaniumcontrols.com/ Autore

Page 21: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 21

Tools and Utilities

Page 22: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 23

stss [preprocess]

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

Page 24: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 26

TiCons [training]

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

Page 27: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 29

General Pourpose Libraries

Page 30: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 30

Trimethyl 2 [library]

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

Page 31: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 31

UTiL [library]

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

Page 32: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 33

Libraries

Page 34: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 40

Code Tips

Page 41: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 41

underscore.js [code]

http://underscorejs.org/

Page 42: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 44

TiIconicFont [code]

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

Page 45: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 46

WebViews

Page 47: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 50

Testing

Page 51: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 52

Tio2 [test]

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

Page 53: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 57

Deployment

Page 58: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 59

Communities

Page 60: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 62

ti-connect [community]

http://ti-connect.com/

Page 63: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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: 50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

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