Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco...

19
Sviluppare per iOS Analisi delle soluzioni Dino Esposito & Francesco Esposito >>>> Crionet srl @despos | @fesposi

description

Rispetto solo a due anni fa oggi ci sono molte più possibilità di scelta per chi voglia scrivere un'applicazione iOS. La prima scelta da considerare è naturalmente quella suggerita da Apple che si basa su Objective-C e l'iOS SDK. Tuttavia Objective-C può essere un linguaggio ostico e allora ecco saltar fuori MonoTouch (che però è a pagamento) oppure PhoneGap oppure Titanium oppure Flash Builder e la lista continua. In questa sessione andiamo alla scoperta dei pro e contro delle varie opzioni.

Transcript of Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco...

Page 1: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Sviluppare per iOSAnalisi delle soluzioni

Dino Esposito & Francesco Esposito >>>> Crionet srl

@despos | @fesposi

Page 2: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

Prerequisiti

• Avere un Mac• Essere un Apple developer• Avere (a scelta) un iPhone/iPad/iPod Touch

Page 3: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

3

Page 4: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

Come ti scrivo un’app

• Apple SDK e Objective-C• MonoTouch e C#• Soluzioni ibride

Page 5: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

Apple SDK: gli strumenti

• Xcode– Code editor + debugger + Interface Builder– Automatic Deployment

• AppCode di JetBrains

Page 6: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

Apple SDK: il linguaggio

• Objective-C: ANSI C + sintassi OO• Invia messaggi agli oggetti

– Passaggio parametri per nome

• Automatic Reference Counting solo in iOS5– Gestione della memoria esplicita

Page 7: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

NSString *message = @"Login failed";UserAccount *account = [[UserAccount alloc] init];[account loginWithOptions:TRUE throwOnError:TRUE message:message];[account release]account = nil;

Page 8: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

Apple SDK: il framework

• Cocoa Touch• Set di classi (header+impl) per varie funzioni

– Networking– Dialoghi– Persistenza

Page 9: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

Apple SDK: complessivamente

• Linguaggio non particolarmente evoluto• Buon supporto dall’IDE

– Debugger– Deployment

• Larga parte di 500K apps scritte con Obj-C

Page 10: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

MonoTouch: cos’è

• iOS apps su Mac usando C#– Mix con Obj-C e codice portato da .NET

• MonoDevelop come editor di codice– Xcode come editor grafico

• Ha un fratello per Android• 300 euri

Page 11: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

MonoTouch: come funziona

Mono

Mono BCL

CocoaTouchThreading | Interop | GC

JIT-compiler e AOT

Page 12: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

MonoTouch: che fa

• Stesso app-model di Obj-C– Eventi, proprietà, logica– UIWindow, ViewController, AppDelegate

• Classi equivalenti a Silverlight 4

Page 13: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

DEMO

13

Page 14: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

MonoTouch: pro/contro

• Facile per chi viene da C# o Java– E per chi viene da C++?

• Riusabilità del codice– Sì, ma ...

• Nessuna barriera da Apple

Page 15: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

MonoTouch: pro/contro

• Dimensione del package– In realtà non un grande problema per iOS

• Velocità– Sì, ma ...

• Li spendo ‘sti 300 euri o no?

Page 16: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

Ibridi : chi sono?

• Titanium Mobile– Framework in JavaScript (interpretata nativamente)

• PhoneGap– HTML5 + CSS + JavaScript (web-view)

• Flash Builder – actionScript (interpretata nativamente)

Page 17: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

Due parole su PhoneGap

• Non male per iOS– Grazie a Safari Mobile– Assenza di pulsante hardware Back– Supporto iphoney di jQuery Mobile

• Solo per disperazione per altre piattaforme

Page 18: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

Quindi?

• Sviluppo con MonoTouch è veloce e il risultato è efficace e valido– Se poi fa pure comodo andare su Android/WP7 ...

• Obj-C: è un fatto personale • PhoneGap: per iOS • E un po’ nativa e un po’ web?

Page 19: Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito

Dino Esposito | Francesco Espositowww.crionet.it | @despos - @fesposi

www.expoware.org

TechnologyPartner

@despos@fesposi