Your SlideShare is downloading. ×
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Programmiamo iPhone e iPad (e non solo!) con MonoTouch
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Programmiamo iPhone e iPad (e non solo!) con MonoTouch

1,384

Published on

MonoTouch ha delle caratteristiche che lo differenziano rispetto agli altri framework per lo sviluppo su iPhone / iPad: vediamo quali sono, che vantaggi ci possono dare e in che modo possono rivelarsi …

MonoTouch ha delle caratteristiche che lo differenziano rispetto agli altri framework per lo sviluppo su iPhone / iPad: vediamo quali sono, che vantaggi ci possono dare e in che modo possono rivelarsi più divertenti :), in particolar modo nell'ambito delle applicazioni LOB (Line of Business).

Anche se MonoTouch non è direttamente cross-platform, cercheremo inoltre di dare uno sguardo a come organizzare i nostri progetti in modo tale da farli girare anche su altri device, in particolare Android, Windows Phone 7, e perché no, desktop e netbook, col minor sforzo possibile.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,384
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
20
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript

    • 1. ProgrammiamoiPhone e iPad (e non solo!)con• Stefano Ottaviani ‣ steott@gmail.com ‣ @ste8
    • 2. Quale sarà il futuro di MT? 2
    • 3. Quale sarà il futuro di MT? 2
    • 4. Quale sarà il futuro di MT? 2
    • 5. Quale sarà il futuro di MT? All  technology  roadmaps  remain   intact 2
    • 6. Quale sarà il futuro di MT? All  technology  roadmaps  remain   intact 2
    • 7. Quale sarà il futuro di MT? Can  we  con;nue   working  with   MonoTouch? All  technology  roadmaps  remain   intact You  should,  yes.  It  will   be  compa;ble. 2
    • 8. Quale sarà il futuro di MT? No P anic Can  we  con;nue   working  with   MonoTouch? All  technology  roadmaps  remain   intact You  should,  yes.  It  will   be  compa;ble. 2
    • 9. Conosciamoci un po’3
    • 10. Conosciamoci un po’• Chi utilizza già MonoTouch? 3
    • 11. Conosciamoci un po’• Chi utilizza già MonoTouch?• Chi ha idea di cosa si tratta? 3
    • 12. Conosciamoci un po’• Chi utilizza già MonoTouch?• Chi ha idea di cosa si tratta?• Chi conosce già Objective-C? 3
    • 13. Conosciamoci un po’• Chi utilizza già MonoTouch?• Chi ha idea di cosa si tratta?• Chi conosce già Objective-C?• Chi conosce già .NET Framework? 3
    • 14. Chi sono?4
    • 15. Chi sono?• Dev / SEng @ KILOG Srl ‣ Da Palm OS a iPad, passando per Windows CE / Mobile (C++, .NET CF) 4
    • 16. Chi sono?• Dev / SEng @ KILOG Srl ‣ Da Palm OS a iPad, passando per Windows CE / Mobile (C++, .NET CF)• Communities ‣ DotNetMarche, XPUG Marche 4
    • 17. Chi sono?• Dev / SEng @ KILOG Srl ‣ Da Palm OS a iPad, passando per Windows CE / Mobile (C++, .NET CF)• Communities ‣ DotNetMarche, XPUG Marche• Contatti ‣ steott@gmail.com ‣ @ste8 4 ‣ blogs.ugidotnet.org/ste8
    • 18. Cosa devo sviluppare? (1/2) 5
    • 19. Cosa devo sviluppare? (1/2)• App LOB (Line of Business) ‣ Online e soprattutto OFFLINE ✴Non si vive di soli servizi! 5
    • 20. Cosa devo sviluppare? (1/2)• App LOB (Line of Business) ‣ Online e soprattutto OFFLINE ✴Non si vive di soli servizi!• Device:iPhone e iPad come riferimenti ‣ ma ci sono anche Android, WP7, netbook 5
    • 21. Cosa devo sviluppare? (1/2)• App LOB (Line of Business) ‣ Online e soprattutto OFFLINE ✴Non si vive di soli servizi!• Device:iPhone e iPad come riferimenti ‣ ma ci sono anche Android, WP7, netbook• UX usabile e attraente! 5
    • 22. Cosa devo sviluppare? (2/2) 6
    • 23. Cosa devo sviluppare? (2/2)• Performante ‣ L’exe non deve essere per forza piccolo 6
    • 24. Cosa devo sviluppare? (2/2)• Performante ‣ L’exe non deve essere per forza piccolo• Controllo sul deploy dell’app 6
    • 25. Cosa devo sviluppare? (2/2)• Performante ‣ L’exe non deve essere per forza piccolo• Controllo sul deploy dell’app• Ridurre potenziali problemi x sviluppo ‣ No puntatori & rilascio memoria 6
    • 26. Il layer UI va cmq rifatto (1/5) Esempio MIX11 App http://tinyurl.com/442vt3t iPhone 7
    • 27. Il layer UI va cmq rifatto (2/5) Esempio MIX11 App http://tinyurl.com/442vt3t WP7 8
    • 28. Il layer UI va cmq rifatto (3/5) Esempio MIX11 App http://tinyurl.com/442vt3t Android 9
    • 29. Il layer UI va cmq rifatto (4/5) Ipse dixit: Martin Fowler http://martinfowler.com/bliki/CrossPlatformMobile.html To summarize:• Dont use cross-platform toolkits• For maximum reach: built a web app that looks like web app• To appeal to a particular platform: build a native app 10 that platform, with a experience design for based on that platforms interaction style
    • 30. Il layer UI va cmq rifatto (5/5)Ste dixit: ma almeno riutilizziamo lalogica di business e di accesso dati... ... soprattutto in app offline! Riscrivere il codice in linguaggi diversi per ogni piattaforma è 11 molto costoso!
    • 31. Che strumenti abbiamo? 12
    • 32. Che strumenti abbiamo?• Objective-C ‣ learning curve ulteriore x il linguaggio ‣ target: “solo” iPhone, iPad, Mac OS X 12
    • 33. Che strumenti abbiamo?• Objective-C ‣ learning curve ulteriore x il linguaggio ‣ target: “solo” iPhone, iPad, Mac OS X• HTML + JavaScript ‣ attenti alle diverse modalità! ‣ indicata se già li conosciamo 12
    • 34. Che strumenti abbiamo?• Objective-C ‣ learning curve ulteriore x il linguaggio ‣ target: “solo” iPhone, iPad, Mac OS X• HTML + JavaScript ‣ attenti alle diverse modalità! ‣ indicata se già li conosciamo• MonoTouch & Co. 12
    • 35. Cos’è MonoTouch? (1/3)13
    • 36. Cos’è MonoTouch? (1/3)• Come Mono... ma diverso! ‣ Suite per portare C# e .NET su iPhone! 13
    • 37. Cos’è MonoTouch? (1/3)• Come Mono... ma diverso! ‣ Suite per portare C# e .NET su iPhone!• Alcune limitazioni da ambiente Apple ‣ Usa compilazione statica (AOT, Ahead of Time) invece che a runtime (JIT) • http://www.mono-project.com/AOT ‣ No generazione codice • Reflection.Emit, DLR, Generic Virtual 13 Methods
    • 38. Cos’è MonoTouch? (2/3)14
    • 39. Cos’è MonoTouch? (2/3)• MonoDevelop + Interface Builder ‣ Lavori in corso per IB 4 14
    • 40. Cos’è MonoTouch? (2/3)• MonoDevelop + Interface Builder ‣ Lavori in corso per IB 4• Cosa c’è ‣ C# 4 ‣ Garbage Collection ‣ LINQ / Lamba ‣ Generics ‣ Reflection / Static Reflection ‣ WCF 14 ‣ Parallel Framework
    • 41. Cos’è MonoTouch? (3/3)15
    • 42. Cos’è MonoTouch? (3/3)• Thin layer sopra le API native ‣ rapidità di aggiornamento all’iOS SDK ‣ binding x utilizzo librerie Objective-C 15
    • 43. Cos’è MonoTouch? (3/3)• Thin layer sopra le API native ‣ rapidità di aggiornamento all’iOS SDK ‣ binding x utilizzo librerie Objective-C‣ learning curve: conoscere le basi dell’ambiente nativo – Oltre alle HIG (Human Interface Guidelines) – Infrastruttura (view controllers, ...) – saper almeno leggere Objective-C 15
    • 44. Cos’è MonoTouch? (3/3)• Thin layer sopra le API native ‣ rapidità di aggiornamento all’iOS SDK ‣ binding x utilizzo librerie Objective-C‣ learning curve: conoscere le basi dell’ambiente nativo – Oltre alle HIG (Human Interface Guidelines) – Infrastruttura (view controllers, ...) – saper almeno leggere Objective-C 15• Prezzo:pro o contro?
    • 45. Soddisfa i miei bisogni? (1/3) 16
    • 46. Soddisfa i miei bisogni? (1/3)• App LOB (Line of Business) ‣ Online e soprattutto OFFLINE - Non si vive di soli servizi! ✴Si... e fa molto altro! 16
    • 47. Soddisfa i miei bisogni? (1/3)• App LOB (Line of Business) ‣ Online e soprattutto OFFLINE - Non si vive di soli servizi! ✴Si... e fa molto altro!• Device:iPhone e iPad come riferimenti ‣ ma ci sono anche Android, WP7, netbook ✴Posso condividere BIZ e DAL! 16
    • 48. Soddisfa i miei bisogni? (2/3) 17
    • 49. Soddisfa i miei bisogni? (2/3)• UX usabile e attraente! ✴Stesse possibilità di Objective-C (IB) 17
    • 50. Soddisfa i miei bisogni? (2/3)• UX usabile e attraente! ✴Stesse possibilità di Objective-C (IB)• Performante ‣ L’exe non deve essere per forza piccolo ✴Compilazione “nativa”, LLVM compiler ✴iCircuit test: http://news.ycombinator.com/item?id=2557047 17
    • 51. Soddisfa i miei bisogni? (2/3)• UX usabile e attraente! ✴Stesse possibilità di Objective-C (IB)• Performante ‣ L’exe non deve essere per forza piccolo ✴Compilazione “nativa”, LLVM compiler ✴iCircuit test: http://news.ycombinator.com/item?id=2557047• Controllo sul deploy dell’app 17 ✴Stesse possibilità di Objective-C!
    • 52. Soddisfa i miei bisogni? (3/3) 18
    • 53. Soddisfa i miei bisogni? (3/3)• Ridurre potenziali problemi x sviluppo ‣ No puntatori & rilascio memoria ✴C# e Garbage Collector => No puntatori! ✴Non è tutto oro...attenti ai memory leak! ✴Profiler in arrivo?? 18
    • 54. Risorse per iniziare19
    • 55. Risorse per iniziare• 2 Video da NDC 2010 ‣ http://tekpub.com/conferences/ndc2010 19
    • 56. Risorse per iniziare• 2 Video da NDC 2010 ‣ http://tekpub.com/conferences/ndc2010• Stack Overflow / Mailing List 19
    • 57. Risorse per iniziare• 2 Video da NDC 2010 ‣ http://tekpub.com/conferences/ndc2010• Stack Overflow / Mailing List• Esempi: TweetStation 19
    • 58. Risorse per iniziare• 2 Video da NDC 2010 ‣ http://tekpub.com/conferences/ndc2010• Stack Overflow / Mailing List• Esempi: TweetStation• Libri 19
    • 59. Ingredienti per iniziare20
    • 60. Ingredienti per iniziare• Un computer Mac con Mac OS X 20
    • 61. Ingredienti per iniziare• Un computer Mac con Mac OS X• iPhone SDK 20
    • 62. Ingredienti per iniziare• Un computer Mac con Mac OS X• iPhone SDK• MonoTouch (+ Mono) 20
    • 63. Ingredienti per iniziare• Un computer Mac con Mac OS X• iPhone SDK• MonoTouch (+ Mono)• MonoDevelop 20
    • 64. Configurazione ambiente 21
    • 65. Configurazione ambiente• Boot Camp + Parallels = stessa (ma unica) partizione Windows 21
    • 66. Configurazione ambiente• Boot Camp + Parallels = stessa (ma unica) partizione Windows• Shortcuts per ‣ Mac OS X ‣ Windows da Parallels ‣ MonoDevelop ‣ Info a breve nel blog 21
    • 67. Visual Studio come IDE (1/2) 22
    • 68. Visual Studio come IDE (1/2)• Perchè vorrei farlo? ‣ IDE migliore / Resharper, ... 22
    • 69. Visual Studio come IDE (1/2)• Perchè vorrei farlo? ‣ IDE migliore / Resharper, ...• Si può fare! (cit) ‣ o quasi.... solo build, NO RUN 22
    • 70. Visual Studio come IDE (1/2)• Perchè vorrei farlo? ‣ IDE migliore / Resharper, ...• Si può fare! (cit) ‣ o quasi.... solo build, NO RUN• Non solo per progetti BIZ e DAL, anche per UI 22
    • 71. Visual Studio come IDE (2/2)• Diverse soluzioni: ‣ https://github.com/jamiebriant/VsMono • https://github.com/follesoe/VSMonoTouch ‣ http://www.shrinkrays.net/code- snippets/csharp/monotouch-tips-and- snippets.aspx 23
    • 72. Poniamo le basi... ...per costruire la prima App!24
    • 73. Cocoa Touch: il Framework 25
    • 74. Cocoa Touch: il Framework• Cocoa : .NET FX = Objective-C : C# 25
    • 75. Cocoa Touch: il Framework• Cocoa : .NET FX = Objective-C : C#• Foundation ‣ objects, memory, ... 25
    • 76. Cocoa Touch: il Framework• Cocoa : .NET FX = Objective-C : C#• Foundation ‣ objects, memory, ...• UIKit, GameKit, MapKit, ... 25
    • 77. Cocoa Touch: il Framework• Cocoa : .NET FX = Objective-C : C#• Foundation ‣ objects, memory, ...• UIKit, GameKit, MapKit, ...• Intro per .Net Dev: 25 ‣ http://www.kevfoo.com/2011/05/quick-primer-cocoa-and-cocoa-touch/
    • 78. Window e Views26
    • 79. Window e Views• Application / AppDelegate ‣ main, ... ‣ 10 secondi per caricare! 26
    • 80. Window e Views• Application / AppDelegate ‣ main, ... ‣ 10 secondi per caricare!• Window ‣ 1 sola per App!!! Poi coi ViewControllers... 26
    • 81. Window e Views• Application / AppDelegate ‣ main, ... ‣ 10 secondi per caricare!• Window ‣ 1 sola per App!!! Poi coi ViewControllers...• View (UIView) ‣ Base per UI Controls (Button, Textbox, ...) 26 ‣ Base per User Control! No ViewController
    • 82. 1° Demo!• Usare MonoDevelop (anche più istanze)• Creare UI con / senza Interface Builder• Utilizzo di immagini / risorse• Creazione di custom control con UIView• Utilizziamo le tabelle 27
    • 83. ViewControllers28
    • 84. ViewControllers• Basato su MVC (o una specie...) 28
    • 85. ViewControllers• Basato su MVC (o una specie...)• Creazione di app con più screen ‣ Navigation ‣ Resize, orientamento 28
    • 86. ViewControllers• Basato su MVC (o una specie...)• Creazione di app con più screen ‣ Navigation ‣ Resize, orientamento• “Infrastruttura” per UI Controls ‣ es. TableViewController 28
    • 87. Esempi di ViewController (1/4) TabBarController 29
    • 88. Esempi di ViewController (2/4) NavigationController 30
    • 89. Esempi di ViewController (3/4) SplitViewController / PopoverController 31
    • 90. Esempi di ViewController (4/4) TableViewController 32
    • 91. 2° Demo!• Creare una form con UIViewController• Resize e rotazione form• Anchor e docking• App con più form grazie ai ViewController. 33
    • 92. Altri approcci per UI34
    • 93. Altri approcci per UI• Tentativi di MVVM 34
    • 94. Altri approcci per UI• Tentativi di MVVM• DSL? (Domain-specific language) 34
    • 95. Altri approcci per UI• Tentativi di MVVM• DSL? (Domain-specific language) ‣ iCircuit: http://praeclarum.org/post/1520024382/interfaces- caches-cross-platform 34
    • 96. Altri approcci per UI• Tentativi di MVVM• DSL? (Domain-specific language) ‣ iCircuit: http://praeclarum.org/post/1520024382/interfaces- caches-cross-platform ‣ Post Antonio Ganci: http://blogs.ugidotnet.org/AntonioGanci/archive/ 2010/04/19/un-approccio-per-ottenere-una- architettura-malleabile.aspx 34
    • 97. Accesso ai dati locali (1/2)35
    • 98. Accesso ai dati locali (1/2)• SQLite ‣ portabilità in altre piattaforme?? ‣ Repository / DAO pattern? ORM? 35
    • 99. Accesso ai dati locali (1/2)• SQLite ‣ portabilità in altre piattaforme?? ‣ Repository / DAO pattern? ORM?• Tipi di accesso ‣ ADO.NET ‣ API di SQLite dirette ‣ ORM (es. Vici CoolStorage) 35
    • 100. Accesso ai dati locali (2/2)• Performance Tips ‣ DataReader via GetString, GetInt, .. http://www.bayshield.com/2010/6/29/monotouch-sqlite- performance-tip ‣ Uso di transazioni e connection pooling ‣ Quantificazione costi reflection (se usata) http://praeclarum.org/post/1572668275/quantifying- reflections-slowdown-in-sqlite-net 36
    • 101. Accesso ai dati remoti37
    • 102. Accesso ai dati remoti• ASMX Web Service e WCF come in Silverlight 37
    • 103. Accesso ai dati remoti• ASMX Web Service e WCF come in Silverlight• REST via HttpRequest / Response 37
    • 104. Accesso ai dati remoti• ASMX Web Service e WCF come in Silverlight• REST via HttpRequest / Response• JSON ‣ https://github.com/chrisntr/Newtonsoft.Json 37
    • 105. IoC / DI• Diverse librerie ‣ OpenNETCF.IoC ‣ Funq, PicoContainer, TinyIoC ‣ http://monotouch.info/Tags/IoC 38
    • 106. Unit Testing• Attenti a creare un progetto NUnit che ne referenzia uno MonoTouch!• Testare la business logic / DAL• Testare l’”MVC” Apple: ‣ Supervisor Controller http://ben.phegan.name/index.php/2011/02/28/ monotouch-and-unit-testing/ 39
    • 107. Alcuni framework di supporto 40
    • 108. Alcuni framework di supporto• MonoTouch.Dialog ‣ https://github.com/migueldeicaza/MonoTouch.Dialog 40
    • 109. Alcuni framework di supporto• MonoTouch.Dialog ‣ https://github.com/migueldeicaza/MonoTouch.Dialog• MonoCross ‣ Stile MVC di ASP.NET MVC ‣ http://vagabondrev.org/2011/04/20/monocross-the-technology/ ‣ http://code.google.com/p/monocross/ 40
    • 110. Alcuni framework di supporto• MonoTouch.Dialog ‣ https://github.com/migueldeicaza/MonoTouch.Dialog• MonoCross ‣ Stile MVC di ASP.NET MVC ‣ http://vagabondrev.org/2011/04/20/monocross-the-technology/ ‣ http://code.google.com/p/monocross/• ReactiveUX per MonoTouch ‣ http://code.google.com/p/proactive-framework/ 40
    • 111. What else?41
    • 112. What else?• UIAlertView non “asincrona” ‣ magari qualcosa con le coroutine, a la Caliburn? 41
    • 113. Domande?42
    • 114. Grazie!43

    ×