50 sfumature di Alloy - Alessio Ricco - Codemotion Milan 2014

Preview:

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.

Citation preview

Alessio Ricco

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

@alessioricco - Wallive ltd

MILAN november 28th/29th 2014

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 2

Titanium

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 3

Platform

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 4

Architecture

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 5

Alloy

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 6

Views

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 7

Styles

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 8

Controllers

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 9

Models

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 10

Media and resources

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 11

Appcelerator Blog [web]

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 12

TiDev [web]

http://www.tidev.io/

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 13

Prototyping e Frameworks

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 14

Ti-Browser [prototyping]

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

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

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

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)

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 18

Repositories and Marketplace

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 19

gitTio [repo]

http://gitt.io/

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 20

TitaniumControls [repo]

http://www.titaniumcontrols.com/ Autore

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 21

Tools and Utilities

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)

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 23

stss [preprocess]

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 24

Titaniumifier [tools]

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

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 26

TiCons [training]

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

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

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)

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 29

General Pourpose Libraries

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 30

Trimethyl 2 [library]

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 31

UTiL [library]

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 32

Titanium Modules [documentation]

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 33

Libraries

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); });});

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 35

TiWorker [code]

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 36

Ti-superagent [training]

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 37

XHR Http Client [library]

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

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

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 40

Code Tips

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 41

underscore.js [code]

http://underscorejs.org/

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

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 44

TiIconicFont [code]

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

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 46

WebViews

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

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/

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”

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 50

Testing

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 52

Tio2 [test]

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

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

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

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.

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.

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 57

Deployment

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/

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 59

Communities

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…

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 61

tiConf [community]

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

MILAN november 28th/29th 2014 – Alessio Ricco

Fifty shades of Alloy - @alessioricco 62

ti-connect [community]

http://ti-connect.com/

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

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

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