phonegap cross-platform made easy
piattaforme di interesse Android iphone/ipad BlackBerry Windows Phone/CE HTML5 => ~ 99%
sviluppo web Caratteristiche: Modello sviluppo: HTML5 + JavaScript UI web: HTML + CSS Accesso GPS e LocalStorage, gestione Offline Vantaggi: Requisiti: browser HTML5 Non richiede installazione Aggiornabile facilmente Svantaggi: No accesso hardware (fotocamera, contatti, risorse...) Non installabile Operazioni lato-client limitate
sviluppo nativo Caratteristiche: Modello sviluppo applicazione nativa: Java/Obj-C/C# UI nativa Accesso completo all hardware Vantaggi: Performances e potenzialita al max Installabile da marketplace Svantaggi: Codice specifico per ogni dispositivo Modelli di sviluppo differenti Difficolta di aggiornamento
framework cross-platform Web++ PhoneGap: webapp con accesso all hardware Sito web con UI web, ma con accesso all hardware del dispositivo iphone+android+winphone : supporto completo BlackBerry-Symbian: supporto limitato MagicBox Titanium: 1 «codice» per N applicazioni native Astrazione UI e hardware in un framework comune iphone+android: supporto completo BlackBerry: supporto limitato App Xamarin: N applicazioni native in.net e C# Accesso full all hardware, limitata astrazione, ambiente unificato e «familiare» iphone: MonoTouch - Android: MonoDroid
phonegap WebApp + Hardware: Applicazione nel browser del dispositivo (sandbox) UI HTML Codice in JavaScript API JS unificata per accesso all hardware Deploy sul marketplace Astrazione accesso all hardware Accesso hardware "limitato" SDK per sviluppare moduli ad-hoc Note: Riutilizzo codice sito web per costruire l app Licenza OSS, zero vincoli e costi di sviluppo Nitobi acquisita da Adobe PhoneGap => Apache Cordoba
titanium Framework comune per app native: Applicazione nativa Framework di astrazione hardware e componenti UI Codice in JavaScript, comune per TUTTE LE PIATTAFORME Deploy sul marketplace Accesso hardware vincolato dal framework e "cross-platform" SDK per sviluppare moduli ad-hoc (complicato e costoso) Note: Licenza per scopi commerciali: «indie» 49$/anno IDE basato su Eclipse Codice JS non riutilizzabile
monotouch/droid Wrapper.NET/C# sul dispositivo: Applicazione nativa Accesso hardware e UI dispositivo tramite API C# Sviluppo codice in C#, specifico per ogni piattaforma Riutilizzo codice di business non hardware-specifico Deploy sul marketplace Accesso all hardware completo e specifico per piattaforma Accesso codice «esterno»: P/Invoke e binding Obj-C/Java Note: IDE: Visual Studio 2010 + MonoDevelop Licenza per scopi commerciali: 400$+400$ Condivisione in genere codice C# «di business» Accesso hardware «non UI» comune: Xamarin Mobile API e altre
astrazione: vantaggi/svantaggi Vantaggi: Riduzione esponenziale dei tempi di sviluppo Titanium: una linea di sviluppo per tre piattaforme mobile PhoneGap: una linea di sviluppo per sito web e app «native» Riutilizzo codice Xamarin: condivisione codice da/verso «piattaforme.net» Svantaggi: Vincoli del framework: moduli non disponibili finchè non «ubiquitari» o da sviluppare/manutenere Costi aggiuntivi Costo licenze del framework e del supporto tecnico Minor disponibilità di documentazione ed esempi di codice
app nativa: vantaggi/svantaggi Vantaggi: Nessun vincolo di sviluppo Accesso pieno ed immediato all hardware NFC su Android appena disponibile Accesso al codice/documentazione specifica Supporto tecnico diretto Nessun costo aggiuntivo Svantaggi: Linee di sviluppo completamente separate Aumento esponenziale dei tempi di sviluppo Nessun riutilizzo di codice Codice Business-UI-HW «multiplo» per Obj-C + Java + C#
IMHO (!?!) Se possibile, meglio la web application HTML5 amplierà progressivamente l accesso a funzionalità «native» Adobe ha «killato» Flash per i dispositivi mobile, in favore di HTML5 Se si prevedono funzionalita non-standard, meglio avere «le mani libere» Il rischio insito nell adozione di un framework cross-platform e che non copra le esigenze future jquerymobile + PhoneGap possono essere una valida soluzione per esigenze "standard"
http://www.visionmobile.com/blog/2012/02/crossplatformtool
phonegap + cordova yesterday: phonegap: <= 1.4.1 today: cordova http://incubator.apache.org/cordova 1.5.0: :-(((( 1.6.0: Release Date: 27/Mar/12 1.7.0: Release Date: 30/Apr/12 1.8.0: Release Date: 29/May/12 1.9.0: Release Date: 26/06/12 2.0.0: Release Date: 31/07/12 tomorrow: apache + phonegap ( + adobe?) http://phonegap.com/2012/03/19/phonegap-cordova-and-what%e2%80%99s-in-a-name
support & tools Google Group: https://groups.google.com/forum/#!forum/phonegap StackOverflow: #phonegap #cordova Ripple Mobile Environment Emulator: https://chrome.google.com/webstore/detail/geelfhphabnejjhdalkjhgipohgpdnoc?utm_source=chromentp-icon appmobi PhoneGap XDK: http://www.appmobi.com/index.php?q=content/appmobi-phonegap-xdk-turbocharges-phonegap adobe shadow: http://labs.adobe.com/technologies/shadow tiggzi: http://tiggzi.com/
debug console.log(string) alert console.log(object) firebug ma chissene***?
PhoneGap Build compiling in the cloud: https://build.phonegap.com