32
Mobile Development Day 2014 Introduction to iOS Development with Xamarin Raffaele Fanizzi Microsoft MCTS & MCPD

Introduction to iOS development with Xamarin

Embed Size (px)

Citation preview

Page 1: Introduction to iOS development with Xamarin

Mobile Development Day 2014

Introduction to iOS Development with XamarinRaffaele FanizziMicrosoft MCTS & MCPD

Page 2: Introduction to iOS development with Xamarin

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 – [email protected]• Blog – www.vifani.com• LinkedIn – www.linkedin.com/in/raffaelefanizzi • Twitter - @raffaelefanizzi

Page 3: Introduction to iOS development with Xamarin

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

Page 4: Introduction to iOS development with Xamarin

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…

Page 5: Introduction to iOS development with Xamarin

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

Page 6: Introduction to iOS development with Xamarin

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)

Page 7: Introduction to iOS development with Xamarin

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

Page 8: Introduction to iOS development with Xamarin

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

Page 9: Introduction to iOS development with Xamarin

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

Page 10: Introduction to iOS development with Xamarin

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)

Page 11: Introduction to iOS development with Xamarin

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– …

Page 12: Introduction to iOS development with Xamarin

Mobile Development Day 2014

Xamarin.IOS• Perché usare Xamarin.iOS?– Per utilizzare C#

Page 13: Introduction to iOS development with Xamarin

Mobile Development Day 2014

Xamarin.IOS

Page 14: Introduction to iOS development with Xamarin

Mobile Development Day 2014

Xamarin.IOS

Page 15: Introduction to iOS development with Xamarin

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

Page 16: Introduction to iOS development with Xamarin

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

Page 17: Introduction to iOS development with Xamarin

Mobile Development Day 2014

Xamarin.IOS

Ma quale è il vero motivo per sviluppare

app?

Page 18: Introduction to iOS development with Xamarin

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

Page 19: Introduction to iOS development with Xamarin

Mobile Development Day 2014

DEMO: ICARTOLINA

Page 20: Introduction to iOS development with Xamarin

Mobile Development Day 2014

CODE SESSION: NUOVO PROGETTO

Page 21: Introduction to iOS development with Xamarin

Mobile Development Day 2014

CODE SESSION: UIVIEW E INTERFACE BUILDER

Page 22: Introduction to iOS development with Xamarin

Mobile Development Day 2014

CODE SESSION: FOTO E FOTOCAMERA

Page 23: Introduction to iOS development with Xamarin

Mobile Development Day 2014

CODE SESSION: NAVIGAZIONE

Page 24: Introduction to iOS development with Xamarin

Mobile Development Day 2014

CODE SESSION: UITABLEVIEW

Page 25: Introduction to iOS development with Xamarin

Mobile Development Day 2014

CODE SESSION: CORE ANIMATION

Page 26: Introduction to iOS development with Xamarin

Mobile Development Day 2014

CODE SESSION: SOCIAL FRAMEWORK

Page 27: Introduction to iOS development with Xamarin

Mobile Development Day 2014

CODE SESSION: CORE IMAGE

Page 28: Introduction to iOS development with Xamarin

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

Page 29: Introduction to iOS development with Xamarin

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

Page 30: Introduction to iOS development with Xamarin

Mobile Development Day 2014

Limitazioni e costi

Page 31: Introduction to iOS development with Xamarin

Mobile Development Day 2014

Domande e (spero) risposte

Page 32: Introduction to iOS development with Xamarin

Mobile Development Day 2014

GRAZIE PER L’ATTENZIONE