SlideShare a Scribd company logo
Xamarin & Cognitive Services Slides
Xamarin & Cognitive Services Slides
iOS WindowsAndroid
Objective-C /
Swift
Xcode
C#
Visual Studio
Java
Android Studio
 Logica di business duplicata
 Linguaggi e IDE diversi
 Diversi Team di Lavoro e applicazioni “non in linea”
 C# codebase
 100% accesso ad API native
 Performance ~ Sviluppo nativo
iOS C# UI Windows C# UIAndroid C# UI
Shared C# Mobile
Shared C# Mobile
Xamarin.Forms
 Xaml/C# UI codebase
 API di sistema astratte
 Performance < Xamarin.Native
Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
MapKit UIKit iBeacon CoreGraphics CoreMotion
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
Text-to-speech ActionBar Printing Framework Renderscript NFC
System.Data System.Windows System.Numerics System.Core System.ServiceModel
System.Net System System.IO System.Linq System.Xml
Visual Studio:
 Plugin ora integrato in Visual Studio
 Supporto ad Android, iOS e Windows Phone
Xamarin Studio (ora Visual Studio for Mac):
 Disponibile sia per Windows che per OS X
 Supporto ad Android e iOS (solo su OS X)
 Unico linguaggio di markup: XAML
 Controlli della UI tradotti in controlli nativi a Runtime
<TabbedPage />
 Supporto a binding e
commading
public void DoSomething()
{
#if WINDOWS_PHONE
//API di Windows Phone / UWP
#endif
#if __ANDROID__
//API di Android
#endif
#if __IOS__
//API di iOS
#endif
}
 Compilazione condizionale
 Nessuna DLL in fase di compilazione
 SP dipendente da progetti specifici Codice Poco comprensibile e testabile!
 Dependency Service
 PCL indipendente dai progetti specifici PCL testabile
 Subset meno ampio del .NET Framework
 DLL in fase di compilazione Overhead!
namespace SampleApp
{
public interface IGpsService
{
Task<Location> GetLocation();
}
}
[assembly: DependencyService(typeof(GpsService))]
namespace SampleApp.Droid
{
public class GpsService : IGpsService
{
// Native Implemetation...
}
}
 Design pattern architetturale ispirato a Model-View-Presenter (e MVC)
 ViewModel non conosce direttamente View
 Più View possono condividere lo stesso ViewModel
 View notifica e viene notificata attraverso Data Binding
 View notifica eventi tramite Comandi
Portabile!
Testabile!
Xamarin & Cognitive Services Slides
Cognitive Services
SearchSpeech Language KnowledgeVision
0 Non-clipart
0 Non-LineDrawing
False
Clip ArtType
Line Drawing Type
Black & White Image
Content of Image:
Categories
AdultContent
Adult Score
Faces
[{ “name”: “people_swimming”, “score”: 0.099609375 }]
False
0.18533889949321747
[{ “age”: 27, “gender”: “Male”, “faceRectangle”:
{“left”: 472, “top”: 258, “width”: 199, “height”: 199}}]
Image Colors:
Dominant Color Background
Dominant Color Foreground
Dominant Colors
Accent Color
White
Grey
White
Blue
Type of Image:
JSON:
{
"language": "en",
"orientation": "Up",
"regions": [
{
"boundingBox": "41,77,918,440",
"lines": [
{
"boundingBox": "41,77,723,89",
"words": [
{
"boundingBox": "41,102,225,64",
"text": "LIFE"
},
{
"boundingBox": "356,89,94,62",
"text": "IS"
},
{
"boundingBox": "539,77,225,64",
"text": "LIKE"
}
...
Demo
http://bit.ly/2fv0VoDGitHub Repo:
Xamarin & Cognitive Services Slides
http://bit.ly/1qk5ZkJVideo:

More Related Content

PPTX
PPTX
Sviluppo apps multipiattaforma con visual studio e xamarin
PPTX
Writing apps for android with .net
PPTX
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
PPTX
Costruire app per WinPhone, iOS e Android con C# e Xamarin
DOCX
Xamarin Form - A sample app
PPTX
Sviluppo di app cross platform con xamarin e C#
PDF
Spa with Blazor
Sviluppo apps multipiattaforma con visual studio e xamarin
Writing apps for android with .net
Xamarin: Shared Library and Portable Class Library - Aristide Di Francesco - ...
Costruire app per WinPhone, iOS e Android con C# e Xamarin
Xamarin Form - A sample app
Sviluppo di app cross platform con xamarin e C#
Spa with Blazor

What's hot (13)

PDF
Wasm and Blazor CDays keynote
PPTX
Community Days 2015 Introduzione a Xamarin
PPTX
Christmas greetings cards with blazor
PPTX
ASP.NET performance optimization
PPTX
Xamarin.Forms Introduction
PPTX
Integrazione con Visual Studio Online
PDF
Progettare in Team per il Responsive Web Design
PDF
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
PPTX
Angular and beyond
PPTX
Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...
PPTX
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
PPTX
UI Composition - Prism
PPTX
Intro xamarin forms
Wasm and Blazor CDays keynote
Community Days 2015 Introduzione a Xamarin
Christmas greetings cards with blazor
ASP.NET performance optimization
Xamarin.Forms Introduction
Integrazione con Visual Studio Online
Progettare in Team per il Responsive Web Design
Milano Chatbots Meetup - Vittorio Banfi - Bot Design - Codemotion Milan 2016
Angular and beyond
Sviluppo di soluzioni embedded moderne con .NET Micro Framework by Lorenzo Ma...
Multi-Device Hybrid Apps con Visual Studio e Apache Cordova
UI Composition - Prism
Intro xamarin forms
Ad

Similar to Xamarin & Cognitive Services Slides (20)

PPTX
Sviluppo di App cross-platform con Cordova e HTML5
PPTX
INTRO TO XAMARIN
PPTX
Alessandro Forte - Piattaforma Android
PDF
Introduzione al sistema operativo mobile Android
PDF
Designing with microservices - Daniele Mondello
PDF
Federico Massi.it - Intro alle app mobile Cordova
KEY
Flash Platform su dispositivi mobili
PPTX
Webcast - Introduzione a Visual Studio Online
PPTX
Mulesoft Cosenza Meetup: Anypoint Code Builder
PDF
Flutter: Google alla conquista del mobile multi piattaforma
PPTX
MVVMCross da Windows Phone a Windows 8 passando per Android e iOS
PDF
Presentazione CERT-CHECK
PDF
Italian C++ MeetUp - 24/10/2015
PPTX
01 Android - Introduction
PDF
Continous Delivery & HQ Code
PDF
ASP.NET Core 2 e Docker
PDF
Meetup ASP.NET Core 2 e Docker
PPTX
Introduzione Xamarin
PDF
Continuous Integration e High Quality Code
PPTX
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Sviluppo di App cross-platform con Cordova e HTML5
INTRO TO XAMARIN
Alessandro Forte - Piattaforma Android
Introduzione al sistema operativo mobile Android
Designing with microservices - Daniele Mondello
Federico Massi.it - Intro alle app mobile Cordova
Flash Platform su dispositivi mobili
Webcast - Introduzione a Visual Studio Online
Mulesoft Cosenza Meetup: Anypoint Code Builder
Flutter: Google alla conquista del mobile multi piattaforma
MVVMCross da Windows Phone a Windows 8 passando per Android e iOS
Presentazione CERT-CHECK
Italian C++ MeetUp - 24/10/2015
01 Android - Introduction
Continous Delivery & HQ Code
ASP.NET Core 2 e Docker
Meetup ASP.NET Core 2 e Docker
Introduzione Xamarin
Continuous Integration e High Quality Code
Workshop AngularJs, Cordova, Ionic - Politecnico di Milano
Ad

Xamarin & Cognitive Services Slides

  • 3. iOS WindowsAndroid Objective-C / Swift Xcode C# Visual Studio Java Android Studio  Logica di business duplicata  Linguaggi e IDE diversi  Diversi Team di Lavoro e applicazioni “non in linea”
  • 4.  C# codebase  100% accesso ad API native  Performance ~ Sviluppo nativo iOS C# UI Windows C# UIAndroid C# UI Shared C# Mobile
  • 5. Shared C# Mobile Xamarin.Forms  Xaml/C# UI codebase  API di sistema astratte  Performance < Xamarin.Native
  • 6. Microsoft.Phone Microsoft.Networking Windows.Storage Windows.Foundation Microsoft.Devices System.Data System.Windows System.Numerics System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml
  • 7. MapKit UIKit iBeacon CoreGraphics CoreMotion System.Data System.Windows System.Numerics System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml
  • 8. Text-to-speech ActionBar Printing Framework Renderscript NFC System.Data System.Windows System.Numerics System.Core System.ServiceModel System.Net System System.IO System.Linq System.Xml
  • 9. Visual Studio:  Plugin ora integrato in Visual Studio  Supporto ad Android, iOS e Windows Phone Xamarin Studio (ora Visual Studio for Mac):  Disponibile sia per Windows che per OS X  Supporto ad Android e iOS (solo su OS X)
  • 10.  Unico linguaggio di markup: XAML  Controlli della UI tradotti in controlli nativi a Runtime <TabbedPage />  Supporto a binding e commading
  • 11. public void DoSomething() { #if WINDOWS_PHONE //API di Windows Phone / UWP #endif #if __ANDROID__ //API di Android #endif #if __IOS__ //API di iOS #endif }  Compilazione condizionale  Nessuna DLL in fase di compilazione  SP dipendente da progetti specifici Codice Poco comprensibile e testabile!
  • 12.  Dependency Service  PCL indipendente dai progetti specifici PCL testabile  Subset meno ampio del .NET Framework  DLL in fase di compilazione Overhead! namespace SampleApp { public interface IGpsService { Task<Location> GetLocation(); } } [assembly: DependencyService(typeof(GpsService))] namespace SampleApp.Droid { public class GpsService : IGpsService { // Native Implemetation... } }
  • 13.  Design pattern architetturale ispirato a Model-View-Presenter (e MVC)  ViewModel non conosce direttamente View  Più View possono condividere lo stesso ViewModel  View notifica e viene notificata attraverso Data Binding  View notifica eventi tramite Comandi Portabile! Testabile!
  • 16. 0 Non-clipart 0 Non-LineDrawing False Clip ArtType Line Drawing Type Black & White Image Content of Image: Categories AdultContent Adult Score Faces [{ “name”: “people_swimming”, “score”: 0.099609375 }] False 0.18533889949321747 [{ “age”: 27, “gender”: “Male”, “faceRectangle”: {“left”: 472, “top”: 258, “width”: 199, “height”: 199}}] Image Colors: Dominant Color Background Dominant Color Foreground Dominant Colors Accent Color White Grey White Blue Type of Image:
  • 17. JSON: { "language": "en", "orientation": "Up", "regions": [ { "boundingBox": "41,77,918,440", "lines": [ { "boundingBox": "41,77,723,89", "words": [ { "boundingBox": "41,102,225,64", "text": "LIFE" }, { "boundingBox": "356,89,94,62", "text": "IS" }, { "boundingBox": "539,77,225,64", "text": "LIKE" } ...