introduction to ios development with xamarin

Post on 22-Jun-2015

1.208 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mobile Development Day 2014

Introduction to iOS Development with XamarinRaffaele FanizziMicrosoft MCTS & MCPD

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

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

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…

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

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)

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

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

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

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)

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

Mobile Development Day 2014

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

Mobile Development Day 2014

Xamarin.IOS

Mobile Development Day 2014

Xamarin.IOS

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

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

Mobile Development Day 2014

Xamarin.IOS

Ma quale è il vero motivo per sviluppare

app?

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

Mobile Development Day 2014

DEMO: ICARTOLINA

Mobile Development Day 2014

CODE SESSION: NUOVO PROGETTO

Mobile Development Day 2014

CODE SESSION: UIVIEW E INTERFACE BUILDER

Mobile Development Day 2014

CODE SESSION: FOTO E FOTOCAMERA

Mobile Development Day 2014

CODE SESSION: NAVIGAZIONE

Mobile Development Day 2014

CODE SESSION: UITABLEVIEW

Mobile Development Day 2014

CODE SESSION: CORE ANIMATION

Mobile Development Day 2014

CODE SESSION: SOCIAL FRAMEWORK

Mobile Development Day 2014

CODE SESSION: CORE IMAGE

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

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

Mobile Development Day 2014

Limitazioni e costi

Mobile Development Day 2014

Domande e (spero) risposte

Mobile Development Day 2014

GRAZIE PER L’ATTENZIONE

top related