SlideShare una empresa de Scribd logo
1 de 19
Sviluppare per iOS
Analisi delle soluzioni


Dino Esposito & Francesco Esposito >>>> Crionet srl

@despos | @fesposi
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
Dino Esposito | Francesco Esposito   3
www.crionet.it | @despos - @fesposi
Come ti scrivo un’app
• Apple SDK e Objective-C
• MonoTouch e C#
• Soluzioni ibride




                             Dino Esposito | Francesco Esposito
                            www.crionet.it | @despos - @fesposi
Apple SDK: gli strumenti
• Xcode
  – Code editor + debugger + Interface Builder
  – Automatic Deployment


• AppCode di JetBrains


                                  Dino Esposito | Francesco Esposito
                                 www.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


                                  Dino Esposito | Francesco Esposito
                                 www.crionet.it | @despos - @fesposi
NSString *message = @"Login failed";
UserAccount *account = [[UserAccount alloc] init];
[account loginWithOptions:TRUE
                          throwOnError:TRUE
                          message:message];
[account release]
account = nil;




                                  Dino Esposito | Francesco Esposito
                                 www.crionet.it | @despos - @fesposi
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
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
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
MonoTouch: come funziona


  Mono BCL
       Mono                             Cocoa
Threading | Interop | GC
JIT-compiler e AOT                      Touch

                            Dino Esposito | Francesco Esposito
                           www.crionet.it | @despos - @fesposi
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
DEMO


    Dino Esposito | Francesco Esposito   13
   www.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


                               Dino Esposito | Francesco Esposito
                              www.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?

                                   Dino Esposito | Francesco Esposito
                                  www.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)

                                   Dino Esposito | Francesco Esposito
                                  www.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


                                Dino Esposito | Francesco Esposito
                               www.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?

                                 Dino Esposito | Francesco Esposito
                                www.crionet.it | @despos - @fesposi
Technology
                       Partner




                                                                   @despos
                                                                   @fesposi
www.expoware.org


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

Más contenido relacionado

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

ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaDario Rusignuolo
 
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchProgrammiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchStefano Ottaviani
 
AppleTV: insight e progettazione per l'Home Entertainment
AppleTV: insight e progettazione per l'Home EntertainmentAppleTV: insight e progettazione per l'Home Entertainment
AppleTV: insight e progettazione per l'Home EntertainmentPaolo Musolino
 
Il gruppo Pragma mark
Il gruppo Pragma markIl gruppo Pragma mark
Il gruppo Pragma markpragmamark
 
FODD 2015 Mobile App based on ServiceMap, http://www.disit.org/fodd
FODD 2015 Mobile App based on ServiceMap, http://www.disit.org/foddFODD 2015 Mobile App based on ServiceMap, http://www.disit.org/fodd
FODD 2015 Mobile App based on ServiceMap, http://www.disit.org/foddPaolo Nesi
 
Applicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceApplicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceDiego La Monica
 
Html5 apps - GWT oriented
Html5 apps - GWT orientedHtml5 apps - GWT oriented
Html5 apps - GWT orientedfirenze-gtug
 
App mobile cross-platform con Xamarin
App mobile cross-platform con XamarinApp mobile cross-platform con Xamarin
App mobile cross-platform con XamarinMichele Aponte
 
Design è come funziona: introduzione allo sviluppo per dispositivi mobili
Design è come funziona: introduzione allo sviluppo per dispositivi mobiliDesign è come funziona: introduzione allo sviluppo per dispositivi mobili
Design è come funziona: introduzione allo sviluppo per dispositivi mobiliDavide Orlando
 
Crossdev sdk/tools: devil's deception - Luciano Colosio
Crossdev sdk/tools: devil's deception - Luciano ColosioCrossdev sdk/tools: devil's deception - Luciano Colosio
Crossdev sdk/tools: devil's deception - Luciano ColosioWhymca
 
Crossdev sdk/tools: devil's deception
Crossdev sdk/tools: devil's deceptionCrossdev sdk/tools: devil's deception
Crossdev sdk/tools: devil's deceptionLuciano Colosio
 
Applicazioni iPhone: un mercato per tutti?
Applicazioni iPhone: un mercato per tutti?Applicazioni iPhone: un mercato per tutti?
Applicazioni iPhone: un mercato per tutti?Omar Cafini
 
Scontro tra UI -aka- cosa dovremmo imparare da Android, iOS e WP7
Scontro tra UI -aka- cosa dovremmo imparare da Android, iOS e WP7Scontro tra UI -aka- cosa dovremmo imparare da Android, iOS e WP7
Scontro tra UI -aka- cosa dovremmo imparare da Android, iOS e WP7Salvatore Laisa
 
Define & design apps for success
Define & design apps for successDefine & design apps for success
Define & design apps for successAcrmnet s.r.l.
 
Drupal + Facebook @ DrupalSocialCulb
Drupal + Facebook @ DrupalSocialCulbDrupal + Facebook @ DrupalSocialCulb
Drupal + Facebook @ DrupalSocialCulbTwinbit
 
Curriculum Vitae
Curriculum VitaeCurriculum Vitae
Curriculum Vitaegioele5
 

Similar a Sviluppare applicazioni per iOS: Vantaggi e svantaggi dei vari framework, by Dino e Francesco Esposito (20)

ios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - itaios 8 - parte 1 - intro - ita
ios 8 - parte 1 - intro - ita
 
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouchProgrammiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
 
AppleTV: insight e progettazione per l'Home Entertainment
AppleTV: insight e progettazione per l'Home EntertainmentAppleTV: insight e progettazione per l'Home Entertainment
AppleTV: insight e progettazione per l'Home Entertainment
 
iOS Programming
iOS ProgrammingiOS Programming
iOS Programming
 
Il gruppo Pragma mark
Il gruppo Pragma markIl gruppo Pragma mark
Il gruppo Pragma mark
 
Presentazione apps SQcuola di Blog
Presentazione apps SQcuola di BlogPresentazione apps SQcuola di Blog
Presentazione apps SQcuola di Blog
 
FODD 2015 Mobile App based on ServiceMap, http://www.disit.org/fodd
FODD 2015 Mobile App based on ServiceMap, http://www.disit.org/foddFODD 2015 Mobile App based on ServiceMap, http://www.disit.org/fodd
FODD 2015 Mobile App based on ServiceMap, http://www.disit.org/fodd
 
Applicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformanceApplicazioni mobili: strumenti, costi soluzioni e peformance
Applicazioni mobili: strumenti, costi soluzioni e peformance
 
Apple App World
Apple App WorldApple App World
Apple App World
 
MonoTouch, un anno dopo
MonoTouch, un anno dopoMonoTouch, un anno dopo
MonoTouch, un anno dopo
 
Html5 apps - GWT oriented
Html5 apps - GWT orientedHtml5 apps - GWT oriented
Html5 apps - GWT oriented
 
App mobile cross-platform con Xamarin
App mobile cross-platform con XamarinApp mobile cross-platform con Xamarin
App mobile cross-platform con Xamarin
 
Design è come funziona: introduzione allo sviluppo per dispositivi mobili
Design è come funziona: introduzione allo sviluppo per dispositivi mobiliDesign è come funziona: introduzione allo sviluppo per dispositivi mobili
Design è come funziona: introduzione allo sviluppo per dispositivi mobili
 
Crossdev sdk/tools: devil's deception - Luciano Colosio
Crossdev sdk/tools: devil's deception - Luciano ColosioCrossdev sdk/tools: devil's deception - Luciano Colosio
Crossdev sdk/tools: devil's deception - Luciano Colosio
 
Crossdev sdk/tools: devil's deception
Crossdev sdk/tools: devil's deceptionCrossdev sdk/tools: devil's deception
Crossdev sdk/tools: devil's deception
 
Applicazioni iPhone: un mercato per tutti?
Applicazioni iPhone: un mercato per tutti?Applicazioni iPhone: un mercato per tutti?
Applicazioni iPhone: un mercato per tutti?
 
Scontro tra UI -aka- cosa dovremmo imparare da Android, iOS e WP7
Scontro tra UI -aka- cosa dovremmo imparare da Android, iOS e WP7Scontro tra UI -aka- cosa dovremmo imparare da Android, iOS e WP7
Scontro tra UI -aka- cosa dovremmo imparare da Android, iOS e WP7
 
Define & design apps for success
Define & design apps for successDefine & design apps for success
Define & design apps for success
 
Drupal + Facebook @ DrupalSocialCulb
Drupal + Facebook @ DrupalSocialCulbDrupal + Facebook @ DrupalSocialCulb
Drupal + Facebook @ DrupalSocialCulb
 
Curriculum Vitae
Curriculum VitaeCurriculum Vitae
Curriculum Vitae
 

Más de Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 

Más de Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
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
  • 3. Dino Esposito | Francesco Esposito 3 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
  • 7. NSString *message = @"Login failed"; UserAccount *account = [[UserAccount alloc] init]; [account loginWithOptions:TRUE throwOnError:TRUE message:message]; [account release] account = nil; 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
  • 13. DEMO Dino Esposito | Francesco Esposito 13 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
  • 19. Technology Partner @despos @fesposi www.expoware.org Dino Esposito | Francesco Esposito www.crionet.it | @despos - @fesposi