Esploriamo assieme come il linguaggio C# e il concetto di “universal”, declinato sulle varie piattaforme hardware, si possono fondere assieme, con poca teoria e molta pratica.
6. 5/34Analizzare la situazione
• Capisco cosa l’applicazione deve fare
• Raccolgo la logica di business in una.dll(o più)
• Noallaframmentazione
• Cerco di portarla su tuttele piattaformepossibili
• Il business deve essere slegato dalle logiche UI
7. 6/34Problema
• Class library (.dll) specifiche di unapiattaforma non possono essere
referenziate
• Quindi faccio copia/incolla di codice?
16. 12/34ApproccioWindows8.1
• Un progetto condiviso, due progetti specifici per Windows e Windows
Phone
• Compilazione condizionale per gestire le differenzetra le piattaforme
• Duedifferentipacchetti
18. 14/34Universal Windows Platform
• E’ una collezione di contrattied estensioni, basata sul Windows Runtime
• Quando si crea un’applicazione si sceglie come riferimento unaversione
della UWP, nondel sistemaoperativo
19. 15/34Un pacchetto pertutti i dispositivi
• Scompaiono il progetto condiviso e i progetti specifici per ogni
piattaforma
• Nientepiù compilazionecondizionale
• Un unicoStore per tuttele piattaforme
• La Universal Windows Platformè disponibile su ogni dispositivo basato
su Windows 10
25. XAMARIN 20/34
Tutto quello che si può sviluppare in Objective-C, Swift, o Java
può essere implementato anche usando C# with Xamarin using Visual Studio
29. 24/34Approcciostandard
• L’interfaccia utente viene realizzata sfruttando i tool nativi (Storyboard in
iOS, AXML in Android)
• Accesso a tutte le API native della piattaforma
• Richiede una buona conoscenza delle due piattaforme
• Tramite le Portable Class Library, condividiamo la logica di business
30. 25/34Approcciostandard -Android
In Xamarin, ogni pagina è una Activity composta da:
• Un file XML, che descrive il layout
(puòesserefatto ancheda codice)
• Unaclasse, chegestisce le interazioni
conla Activity
31. 26/34Approcciostandard -Android
E’ possibile accedereai controlli tramite un ID
• Viene assegnato un ID nell’XML
• Il processo di build genera
una risorsa
• Si sfrutta la risorsa peraccedere
al controllo
32. 27/34Approcciostandard -IOS
• Basato sul pattern MVC
• Ogni applicazione ha unoStoryboard, ovverola rappresentazione visuale di tutte le schermate dell’app
• Ogni schermata è una scene
• Ogni scene è composta da unaView(il layout) e da un ViewController, che ne gestisce le interazioni
33. 28/34Approcciostandard -IOS
• Le storyboard e la navigazione tra una
scene e l’altra vengono creati
direttamente nel designer diXamarin
• Il design richiede il collegamento con un
Mac