Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Introduction to iOS development with Xamarin

1,663 views

Published on

Published in: Software
  • Be the first to comment

Introduction to iOS development with Xamarin

  1. 1. Mobile Development Day 2014 Introduction to iOS Development with Xamarin Raffaele Fanizzi Microsoft MCTS & MCPD
  2. 2. Mobile Development Day 2014 Chi sono • Raffaele Fanizzi • Membro di DotNetSide – www.dotnetside.org • Microsoft Certified Professional Developer – MCPD • Microsoft Certified Technical Specialist – MCTS • Email – vifani@gmail.com • Blog – www.vifani.com • LinkedIn – www.linkedin.com/in/raffaelefanizzi • Twitter - @raffaelefanizzi
  3. 3. Mobile Development Day 2014 Agenda • Introduzione a Xamarin • Xamarin.iOS • Code Session – Nuovo progetto – UIView e Xcode Interface Builder – Accesso a foto e fotocamera – Navigazione – UITableView – Core Animation – Core Image – Social Framework • Limitazioni e costi • Domande e (spero) risposte
  4. 4. Mobile Development Day 2014 Introduzione a Xamarin • Mono è un’implementazione opensource del .NET Framework • E’ composto essenzialmente da un Common Language Runtime e dalle Base Class Library • E’ legale e supportato – Sfrutta gli standard ECMA pubblicati da Microsoft sul .NET Framework – Sfrutta il codice rilasciato con license opensource sempre da Microsoft • Disponibile per sistemi operativi Windows, Mac OS X, Linux, Solaris, ecc…
  5. 5. Mobile Development Day 2014 Introduzione a Xamarin • Inizialmente sviluppato da Miguel de Icaza (GNOME, Novell, Ximian) • Oggi è il core business di Xamarin • Mono 1.0 – 2004 – C# 1.0, .NET 1.1 • Mono 2.0 – 2008 – C# 2.0, 3.0 e 4.0 – .NET 2.0, 3.0, 3.5 e 4.0 – ASP.NET, MVC • Mono 3.0 – 2012 e 2013 – C# 5.0, Async
  6. 6. Mobile Development Day 2014 Introduzione a Xamarin • Mono supporta tutto il .NET Framework tranne – Windows Presentation Foundation – Windows Workflow Foundation – WCF è supportato solo per il sottoinsieme di Silverlight (BasicBinding)
  7. 7. Mobile Development Day 2014 Introduzione a Xamarin • Xamarin propone un ecosistema per lo sviluppo multipiattaforma alla cui base c’è Mono • Xamarin Studio è l’IDE di Xamarin per sviluppare con Mono sotto Windows, Mac OS X e Linux
  8. 8. Mobile Development Day 2014 Xamarin.IOS • Xamarin.iOS è la soluzione di Xamarin per lo sviluppo di applicazioni native per iOS utilizzando C# e Mono • iOS non consente il funzionamento di compilatori Just In Time • Xamarin.iOS si basa su un compilatore ahead-of-time (AOT) che compila le applicazioni in linguaggio assembly per processori ARM v6, v7 e v7s • Xamarin.iOS espone la totalità dell’SDK CocoaTouch di Apple come classi .NET
  9. 9. Mobile Development Day 2014 Xamarin.IOS • Supporta i seguenti assembly del .NET Framework: – System.dll – System.Core.dll – System.Data.dll (ADO.NET) – System.Data.Service.Client.dll (OData support) – System.Json.dll – System.Runtime.Serialization.dll – System.ServiceModel.dll (WCF stack di Silverlight, senza parte server) – System.ServiceModel.Web.dll – System.Transactions.dll – System.Web.Services – System.Xml.dll – System.Xml.Linq.dll
  10. 10. Mobile Development Day 2014 Xamarin.IOS • Oltre ai propri assembly: – monotouch.dll (CocoaTouch API) – Mono.Data.Sqlite.dll (SQL Lite ADO.NET provider) – Mono.Data.Tds.dll (supporto a SQL Server) – Mono.Security.dll (API di crittografia) – OpenTK.dll (OpenGL e OpenAL)
  11. 11. Mobile Development Day 2014 Xamarin.IOS • Supporta le Portable Class Library compatibili con il suo profilo – Microsoft Compression – Microsoft HTTP Client – Microsoft Immutable Collections – Odata – JSON.NET – …
  12. 12. Mobile Development Day 2014 Xamarin.IOS • Perché usare Xamarin.iOS? – Per utilizzare C#
  13. 13. Mobile Development Day 2014 Xamarin.IOS
  14. 14. Mobile Development Day 2014 Xamarin.IOS
  15. 15. Mobile Development Day 2014 Xamarin.IOS • Perché usare Xamarin.iOS? – Per sfruttare le proprie conoscenze in ambito .NET: ADO.NET, WCF, Task Parallel Library, ecc… – Perché le app risultanti sono native né più né meno di quelle sviluppate con XCode
  16. 16. Mobile Development Day 2014 Xamarin.IOS • Perché usare Xamarin.iOS? – E’ sviluppato attivamente: ad ogni nuova versione dell’SDK Apple corrisponde entro 24/48 ore una nuova versione – E’ ampiamente supportato: Infragistics, Telerik, Shinobi, SAP, ecc… – E’ utilizzato da grandi nomi: Microsoft, National Instrument
  17. 17. Mobile Development Day 2014 Xamarin.IOS Ma quale è il vero motivo per sviluppare app?
  18. 18. Mobile Development Day 2014 Xamarin.IOS • Di cosa abbiamo bisogno? – Di un Mac con Mac OS Lion (10.7) o superiore – Xcode (SDK e IDE di sviluppo Apple) – Xamarin Studio (IDE di sviluppo Mono) • E’ possibile usare Visual Studio sotto Windows per scrivere il codice, ma è comunque obbligatoria la presenza di un Mac per l’editing dell’interfaccia grafica, per compilare le app e per rispettare le licenze Apple
  19. 19. Mobile Development Day 2014 DEMO: ICARTOLINA
  20. 20. Mobile Development Day 2014 CODE SESSION: NUOVO PROGETTO
  21. 21. Mobile Development Day 2014 CODE SESSION: UIVIEW E INTERFACE BUILDER
  22. 22. Mobile Development Day 2014 CODE SESSION: FOTO E FOTOCAMERA
  23. 23. Mobile Development Day 2014 CODE SESSION: NAVIGAZIONE
  24. 24. Mobile Development Day 2014 CODE SESSION: UITABLEVIEW
  25. 25. Mobile Development Day 2014 CODE SESSION: CORE ANIMATION
  26. 26. Mobile Development Day 2014 CODE SESSION: SOCIAL FRAMEWORK
  27. 27. Mobile Development Day 2014 CODE SESSION: CORE IMAGE
  28. 28. Mobile Development Day 2014 Limitazioni e costi • Si possono usare – Assembly forniti in dotazione – Assembly compilati espressamente come Xamarin.iOS – Portable Class Library • Non si possono usare librerie di terze parti Objective-C
  29. 29. Mobile Development Day 2014 Limitazioni e costi • Supporto limitato ai generics – Niente metodi virtuali generici – Niente classi generiche con P/Invoke • Nessun supporto alla generazione dinamica di codice – Niente System.Reflection.Emit • Niente Dynamic Language Runtime (o quasi…) • Per il momento nessun supporto a iOS 64 bit • Nessun supporto a COM
  30. 30. Mobile Development Day 2014 Limitazioni e costi
  31. 31. Mobile Development Day 2014 Domande e (spero) risposte
  32. 32. Mobile Development Day 2014 GRAZIE PER L’ATTENZIONE 

×