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

3,088 views

Published on

Mobile Day @ DotNetCampania

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,088
On SlideShare
0
From Embeds
0
Number of Embeds
405
Actions
Shares
0
Downloads
38
Comments
0
Likes
1
Embeds 0
No embeds

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.
  • Costruire app per WinPhone, iOS e Android con C# e Xamarin

    1. 1. Costruire app per WinPhone, iOS e Android con C# e Xamarin Fabio Cozzolino
    2. 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. 3. native apps vs web apps
    4. 4. cross-platform development
    5. 5. Write once, run everywhere AND be native?
    6. 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. 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. 8. HELLO XAMARIN WORLD! DEMO
    9. 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. 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. 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. 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. 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. 14. VISUAL STUDIO? YES WE CAN! DEMO
    15. 15. Architecting mobile apps
    16. 16. cosa possiamo condividere Business Logic View Models Navigation Entities Web Services Client Data Access …ma anche la UI 
    17. 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. 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. 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. 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. 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. 22. MAXIMIZING CODE SHARING
    23. 23. Domande?
    24. 24. riferimenti • @fabiocozzolino • Il mio blog: http://dotnetside.org/blogs/fabio • Xamarin blog: http://blogs.xamarin.com

    ×