Costruire app per WinPhone, iOS e Android con C# e Xamarin

  • 417 views
Uploaded on

Mobile Day @ DotNetCampania

Mobile Day @ DotNetCampania

More in: Software
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
417
On Slideshare
0
From Embeds
0
Number of Embeds
4

Actions

Shares
Downloads
9
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
  • Fix this with website stuff
  • AOT: Compilazione in codice nativo fin dall’inizio
    JIT: compilazione durante l’esecuzione

    Performance: AOT > JIT > interpretato

    On Android, most of the system facilities like Audio, Graphics, OpenGL and Telephony are not available directly to native applications, they are only exposed through the Dalvik Java APIs residing in one of the Java.* namespaces or the Android.* namespaces, the architecture is roughly like this:

    Xamarin.Android developers access the various features in the operating system either by calling into .NET APIs that they know (for low-level access) or using the classes exposed in the Android namespaces which provides a bridge to the Java APIs that are exposed by Dalvik.

Transcript

  • 1. Costruire app per WinPhone, iOS e Android con C# e Xamarin Fabio Cozzolino
  • 2. • Sviluppare un’app cross-platform – Target: iOS, Android e Windows Phone • Condividere quanto più codice possibile tra le diverse piattaforme • Ottimizzare i tempi di sviluppo e centralizzare la code base obiettivi
  • 3. native apps vs web apps
  • 4. cross-platform development
  • 5. Write once, run everywhere AND be native?
  • 6. Anatomia di una app nativa Il look-and-feel delle app Xamarin sembra nativo, perchè è nativo! Native User Interfaces Native API Access Native Performance
  • 7. • evoluzione di mono (ximian, novell...) • framework sempre aggiornato e tools di sviluppo – binding e accesso alle API native di iOS e Android – aggiornamento entro le 24 ore successive ad ogni rilascio ufficiale – ambiente di sviluppo (Xamarin Studio e/o Visual Studio) • C# everywhere – permette il riutilizzo delle nostre conoscenze in .NET • riutilizzo del codice Xamarin?
  • 8. HELLO XAMARIN WORLD! DEMO
  • 9. come funziona xamarin? • compilazione nativa – devono essere incluse le librerie Xamarin/Mono utilizzate – minimizzazione del pacchetto con il Linker (30% più piccolo) • iOS: AOT (ahead-of-time) – precompilazione per ARM con mtouch • Android: JIT (just-in-time) – compilato in bytecode ed eseguito nella MonoVM (inclusa) – esecuzione side-by-side con la DalvikVM – è possibile utilizzare anche le funzionalità Java esposte dalla Dalvik
  • 10. come condivido il codice? File Linking ... e uso le costanti di compilazione condizionale Shared Project Stesso del file linking, ma più semplice Portable Class Library (PCL) 1 assembly + piattaforme supporto completo in Visual Studio 2013 e in Xamarin Studio
  • 11. portable class library • codebase centralizzata • compatibilità attraverso limitazione (esempio: supporto al MVVM limitato) • non disponibile con versioni del .NET Framework antecedenti alla 4.5 (manca la ObservableCollection, per esempio) • reference alla System.Window necessaria • richiedono un approccio architetturale più avanzato
  • 12. Xamarin 3.0 • Semplificazione del Code Sharing – Shared Project • Xamarin.Form – Cross-platform UI • Aggiunto il designer (storyboard) Xamarin per iOS – Su Xamarin Studio e Visual Studio • Potenziamento del plugin per Visual Studio e di Xamarin Studio • Supporto a F#, NuGet e documentazione della BCL
  • 13. Cosa serve per lo sviluppo • Xamarin Studio • Un account Apple Developer o Google Developer • Android SDK • Un Mac con Xcode • Ma anche Windows  – Xamarin Plugin per Visual Studio – Un mac che agisce da server di compilazione
  • 14. VISUAL STUDIO? YES WE CAN! DEMO
  • 15. Architecting mobile apps
  • 16. cosa possiamo condividere Business Logic View Models Navigation Entities Web Services Client Data Access …ma anche la UI 
  • 17. Traditional Xamarin approach Shared App Logic Native UI C# Native UI C# Native UI C# Shared C# App Logic Shared C# App Logic Shared App Logic Shared UI Code Android UI Code Windows UI Code in C# Shared App Logic Shared App Logic iOS UI Android UI Windows UI Shared UI Code iOS UI Android UI Windows UI Shared App Logic
  • 18. Sharing UI Logic Shared App Logic Native UI C# Native UI C# Native UI C# Shared C# App Logic Shared C# App Logic Shared App Logic Shared UI Code Android UI Code Windows UI Code in C# Shared App Logic Shared App Logic iOS UI Android UI Windows UI Shared UI Code iOS UI Android UI Windows UI Shared App Logic Shared UI Logic
  • 19. MVVM Shared App Logic Native UI C# Native UI C# Native UI C# Shared C# App Logic Shared C# App Logic Shared App Logic Shared UI Code Android UI Code Windows UI Code in C# Shared App Logic Shared App Logic iOS UI Android UI Windows UI Shared UI Code iOS View Android View Windows View Model ViewModel
  • 20. MVVM with Xamarin.Forms Shared App Logic Native UI C# Native UI C# Native UI C# Shared C# App Logic Shared C# App Logic Shared App Logic Shared UI Code Android UI Code Windows UI Code in C# Shared App Logic Shared App Logic iOS UI Android UI Windows UI Shared UI Code Model View and ViewModel (UI and controller)
  • 21. Xamarin.Forms • Sviluppo di UI con Xaml 2009 (o anche programmaticamente) – Data Binding – Converters – Commands – …manca il designer • Gestione delle specificità delle piattaforme – Dependency Service – Rendering personalizzato dei controlli • Astrazione delle animazioni • E’ possibile combinare l’utilizzo sia di Xamarin.Form che delle UI classiche
  • 22. MAXIMIZING CODE SHARING
  • 23. Domande?
  • 24. riferimenti • @fabiocozzolino • Il mio blog: http://dotnetside.org/blogs/fabio • Xamarin blog: http://blogs.xamarin.com