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.
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito
1. Sviluppare per iOS
Analisi delle soluzioni
Dino Esposito & Francesco Esposito >>>> Crionet srl
@despos | @fesposi
2. Prerequisiti
• Avere un Mac
• Essere un Apple developer
• Avere (a scelta) un iPhone/iPad/iPod Touch
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
4. Come ti scrivo un’app
• Apple SDK e Objective-C
• MonoTouch e C#
• Soluzioni ibride
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
5. Apple SDK: gli strumenti
• Xcode
– Code editor + debugger + Interface Builder
– Automatic Deployment
• AppCode di JetBrains
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
6. 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
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
8. Apple SDK: il framework
• Cocoa Touch
• Set di classi (header+impl) per varie funzioni
– Networking
– Dialoghi
– Persistenza
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
9. Apple SDK: complessivamente
• Linguaggio non particolarmente evoluto
• Buon supporto dall’IDE
– Debugger
– Deployment
• Larga parte di 500K apps scritte con Obj-C
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
10. 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
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
11. MonoTouch: come funziona
Mono BCL
Mono Cocoa
Threading | Interop | GC
JIT-compiler e AOT Touch
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
12. MonoTouch: che fa
• Stesso app-model di Obj-C
– Eventi, proprietà, logica
– UIWindow, ViewController, AppDelegate
• Classi equivalenti a Silverlight 4
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
14. 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
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
15. MonoTouch: pro/contro
• Dimensione del package
– In realtà non un grande problema per iOS
• Velocità
– Sì, ma ...
• Li spendo ‘sti 300 euri o no?
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
16. Ibridi : chi sono?
• Titanium Mobile
– Framework in JavaScript (interpretata nativamente)
• PhoneGap
– HTML5 + CSS + JavaScript (web-view)
• Flash Builder
– actionScript (interpretata nativamente)
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
17. 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
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi
18. 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?
Dino Esposito | Francesco Esposito
www.crionet.it | @despos - @fesposi