SlideShare a Scribd company logo
1 of 24
Download to read offline
@darkicebeam
Backend C# Compartido
Código
Específico de
Plataforma
UI+APIs UI + APIs
UI + APIs
Battery
GPS
Lights
Notifications
Settings
Text To Speech
Battery
GPS
Lights
Notifications
Settings
Text To Speech
Battery
GPS
Lights
Notifications
Settings
Text To Speech
TextToSpeech
Speak(“Hello World”);
AVSpeechSynthesizer SpeechSynthesizer
Interfaz común
public interface ITextToSpeech
{
void Speak (string text);
}
ITextToSpeech
Texto a Voz – Implementación en iOS
AVSpeechSynthesizer public void Speak (string text)
{
var speechSynthesizer = new AVSpeechSynthesizer ();
var speechUtterance = new AVSpeechUtterance (text)
{
Rate = AVSpeechUtterance.MaximumSpeechRate/4,
Voice = AVSpeechSynthesisVoice.FromLanguage ("en-US"),
Volume = 0.5f,
PitchMultiplier = 1.0f
};
speechSynthesizer.SpeakUtterance (speechUtterance);
}
Texto a Voz – Implementación en Android
AVSpeechSynthesizer TextToSpeech speaker;
string toSpeak;
public void Speak (string text)
{
toSpeak = text;
if (speaker == null)
{
speaker = new TextToSpeech (ctx, this);
}
else
{
var p = new Dictionary<string,string> ();
speaker.Speak (toSpeak, QueueMode.Flush, p);
}
}
public void OnInit (OperationResult status)
{
//… more stuff
}
TextToSpeech
Texto a Voz – Implementación en Windows
public async void Speak(string text)
{
SpeechSynthesizer synth = new SpeechSynthesizer();
await synth.SpeakTextAsync(text);
}
SpeechSynthesizer
Dependency Service
builder.Services.AddSingleton<ITextToSpeech, TextToSpeechImplementation>();
ITextToSpeech tts;
public MyViewModel(ITextToSpeech tts)
{
this.tts = tts;
}
void Speak()
{
tts.Speak(“Hello World”);
}
API común
Cross-Platform APIs
Flashlight
Geolocation
Preferences
Device Info
Device Display Info
Secure Settings
Accelerometer
Battery
Clipboard
Compass
Connectivity
Data Transfer
Email
File System
Geocoding
Gyroscope
Magnetometer
Phone Dialer
Screen Lock
Sms
Text to Speech
Vibration
(I) Modelo de Aplicación
Funcionalidad Descripción
AppActions Le permite crear y responder a los accesos directos de la aplicación, proporcionando formas adicionales de iniciar
la aplicación.
AppInfo Proporciona acceso a información básica de la aplicación, que incluye el nombre y la versión de la aplicación, y el
tema activo actual del dispositivo.
Browser Permite que una aplicación abra un vínculo web en un navegador dentro de la aplicación o el navegador del
sistema
Launcher Permite que una aplicación abra un URI y se usa con frecuencia para hacer deep linking en los esquemas de URI
personalizados de otra aplicación.
MainThread Permite ejecutar código en el hilo de la UI
Map Permite que una aplicación abra la aplicación de mapa del sistema en una ubicación específica o colocar un
marcador
Permission Permite comprobar y solicitar permisos en tiempo de ejecución
VersionTracking Le permite comprobar la versión y los números de compilación de la aplicación, y determinar si es la primera vez
que se inicia la aplicación.
Espacio de nombres: Microsoft.Maui.ApplicationModel
(II) Comunicación
Funcionalidad Descripción
Contacts Permite que una aplicación seleccione un contacto y lea información al respecto.
Email Se puede usar para abrir la aplicación de correo electrónico predeterminada y crear un
nuevo correo electrónico con los destinatarios, el asunto y el cuerpo especificados
Connectivity Permite inspeccionar la accesibilidad de red del dispositivo en el que se ejecuta la
aplicación (Microsoft.Maui.Networking)
PhoneDialer Permite que una aplicación abra un número de teléfono en el marcador
Sms Se puede usar para abrir la aplicación de Sms predeterminada y precargarla con un
destinatario y un mensaje
WebAuthenticator Permite iniciar un flujo de autenticación basado en explorador, que escucha un callback
a una dirección URL específica registrada en la app (Microsoft.Maui.Authentication)
Espacio de nombres: Microsoft.Maui.ApplicationModel.Communication
(III) Características de dispositivo
Funcionalidad Descripción
Battery Permite que una aplicación compruebe la información de la batería del dispositivo y supervise la batería en
busca de cambios
DeviceDisplay Permite que una aplicación lea información sobre las métricas de pantalla del dispositivo.
DeviceInfo Permite que una aplicación lea información sobre el dispositivo en el que se ejecuta la app
Sensores Proporciona acceso al acelerómetro, barómetro, brújula, giroscopio, magnetómetro y sensor de orientación del
dispositivo
Flashlight Puede activar y desactivar el flash de la cámara del dispositivo, para emular una linterna
Geocoding Proporciona un API para geocodificar una dirección en una coordenada posicional y geocodificar inversamente
una coordenada en una dirección.
Geolocation Proporciona APIs para recuperar las coordenadas de geolocalización actuales del dispositivo
HapticFeedback Retroalimentación háptica del control en un dispositivo, que generalmente se manifiesta como una sensación
de vibración suave para dar una respuesta al usuario.
Vibration Le permite iniciar y detener la funcionalidad de vibración durante el tiempo deseado
Espacio de nombres: Microsoft.Maui.Devices
(IV) Medios
Funcionalidad Descripción
MediaPicker Le permite solicitar al usuario que elija o tome una foto o un vídeo en el dispositivo
Screenshot Le permite capturar la pantalla mostrada actual de la aplicación
TextToSpeech Permite que una aplicación utilice los motores de conversión de texto a voz integrados
para hablar texto desde el dispositivo
UnitConverters Proporciona convertidores de unidades para ayudarle a convertir de una unidad de
medida a otra
Espacio de nombres: Microsoft.Maui.Media
(V) Compartir
Funcionalidad Descripción
Clipboard Habilita una aplicación para copiar y pegar texto en y desde el Portapapeles del sistema
Share Proporciona una API para enviar datos, como texto o enlaces web, a la función de uso
compartido del dispositivo
Espacio de nombres: Microsoft.Maui.ApplicationModel.DataTransfer
(VI) Almacenamiento
Funcionalidad Descripción
FilePicker Permite solicitar al usuario que elija uno o varios archivos del dispositivo
FileSystem Proporciona métodos auxiliares que tienen acceso a la memoria caché y las carpetas de
datos de la aplicación, y ayuda a obtener acceso a los archivos almacenados en el
paquete de la aplicación
Preferences Ayuda a almacenar las preferencias de la aplicación en un almacén de claves/valores
SecureStorage Ayuda a almacenar de forma segura pares de clave/valor sencillos
Espacio de nombres: Microsoft.Maui.Storage
// Get cached location, else get real location.
var location = await Geolocation.GetLastKnownLocationAsync();
if (location == null)
{
location = await Geolocation.GetLocationAsync(new GeolocationRequest
{
DesiredAccuracy = GeolocationAccuracy.Medium,
Timeout = TimeSpan.FromSeconds(30)
});
}
// Register service
builder.Services.AddSingleton<IGeolocation>(Geolocation.Default);
// Inject service
IGeolocation geolocation;
public MyViewModel(IGeolocation geolocation)
{
this.geolocation = geolocation;
}
Demo
https://github.com/icebeam7/DemoMAUIConf
Para aprender más
Integración de Plataforma
https://docs.microsoft.com/en-us/dotnet/maui/platform-integration/
Q & A
¡Gracias!
about.me/luis-beltran

More Related Content

Similar to MAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma

Similar to MAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma (20)

Intro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en OlotIntro. a Android Instituto Bosc de la Coma en Olot
Intro. a Android Instituto Bosc de la Coma en Olot
 
Diccionario informatico
Diccionario   informaticoDiccionario   informatico
Diccionario informatico
 
Angarita yamile producto 3
Angarita yamile producto 3Angarita yamile producto 3
Angarita yamile producto 3
 
Internet
InternetInternet
Internet
 
Fundamentos de Visual Basic
Fundamentos de Visual BasicFundamentos de Visual Basic
Fundamentos de Visual Basic
 
Paola
PaolaPaola
Paola
 
Paola
PaolaPaola
Paola
 
Paola
PaolaPaola
Paola
 
itio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspotitio de realizacion de un blog blogs blogspot
itio de realizacion de un blog blogs blogspot
 
Paola
PaolaPaola
Paola
 
Paola 1001 jt
Paola 1001 jtPaola 1001 jt
Paola 1001 jt
 
Elastix slide book-uect
Elastix  slide book-uectElastix  slide book-uect
Elastix slide book-uect
 
Elastix slide book-uect(1)
Elastix  slide book-uect(1)Elastix  slide book-uect(1)
Elastix slide book-uect(1)
 
Software y su tipos tarea 3
Software y su tipos tarea 3Software y su tipos tarea 3
Software y su tipos tarea 3
 
glosario informatica juan jose rodriguez
glosario informatica juan jose rodriguezglosario informatica juan jose rodriguez
glosario informatica juan jose rodriguez
 
cvvvvvvvvvvvvvvvvvvv
cvvvvvvvvvvvvvvvvvvvcvvvvvvvvvvvvvvvvvvv
cvvvvvvvvvvvvvvvvvvv
 
Exp guis-1°-aplicada
Exp guis-1°-aplicadaExp guis-1°-aplicada
Exp guis-1°-aplicada
 
Exposición-I guis--aplicada
Exposición-I guis--aplicadaExposición-I guis--aplicada
Exposición-I guis--aplicada
 
Exp guis-1°-aplicada
Exp guis-1°-aplicadaExp guis-1°-aplicada
Exp guis-1°-aplicada
 
Internet
InternetInternet
Internet
 

More from Miguel Angel Teheran Garcia

More from Miguel Angel Teheran Garcia (20)

Pruebas Automatizadas con PlayWright sobre nuestras Google Cloud Functions
Pruebas Automatizadas con PlayWright sobre nuestras Google Cloud FunctionsPruebas Automatizadas con PlayWright sobre nuestras Google Cloud Functions
Pruebas Automatizadas con PlayWright sobre nuestras Google Cloud Functions
 
PlayWright, Cypress, Selenium Cual es la mejor opción para desarrolladores Ja...
PlayWright, Cypress, Selenium Cual es la mejor opción para desarrolladores Ja...PlayWright, Cypress, Selenium Cual es la mejor opción para desarrolladores Ja...
PlayWright, Cypress, Selenium Cual es la mejor opción para desarrolladores Ja...
 
Introduction to Blazor Hybrid
Introduction to Blazor HybridIntroduction to Blazor Hybrid
Introduction to Blazor Hybrid
 
La historia de api-colombia
La historia de api-colombiaLa historia de api-colombia
La historia de api-colombia
 
DevFest 2022 - El Arte de escribir sobre programacion.pptx
DevFest 2022 - El Arte de escribir sobre programacion.pptxDevFest 2022 - El Arte de escribir sobre programacion.pptx
DevFest 2022 - El Arte de escribir sobre programacion.pptx
 
RoadMap y herramientas de Azure DevOps que debes conocer
RoadMap y herramientas de Azure DevOps que debes conocerRoadMap y herramientas de Azure DevOps que debes conocer
RoadMap y herramientas de Azure DevOps que debes conocer
 
Taller de TDD con .NET y xUnit
Taller de TDD con .NET y xUnitTaller de TDD con .NET y xUnit
Taller de TDD con .NET y xUnit
 
Introduction to OpenTelemetry in .NET
Introduction to OpenTelemetry in .NETIntroduction to OpenTelemetry in .NET
Introduction to OpenTelemetry in .NET
 
PRISM con MAUI
PRISM con MAUIPRISM con MAUI
PRISM con MAUI
 
.NET MAUI Offline first
.NET MAUI Offline first .NET MAUI Offline first
.NET MAUI Offline first
 
Servicios Nativos MAUI
Servicios Nativos MAUIServicios Nativos MAUI
Servicios Nativos MAUI
 
Aplicaciones para MacOS con .NET MAUI
Aplicaciones para MacOS con .NET MAUIAplicaciones para MacOS con .NET MAUI
Aplicaciones para MacOS con .NET MAUI
 
Primero pasos con Visual Studio for MAC
Primero pasos con Visual Studio for MACPrimero pasos con Visual Studio for MAC
Primero pasos con Visual Studio for MAC
 
Aplicaciones con web con Blazor + MudBlazor
Aplicaciones con web con Blazor + MudBlazorAplicaciones con web con Blazor + MudBlazor
Aplicaciones con web con Blazor + MudBlazor
 
Building Web Applications with Blazor and MudBlazor
Building Web Applications with Blazor and MudBlazorBuilding Web Applications with Blazor and MudBlazor
Building Web Applications with Blazor and MudBlazor
 
Tips para una entrevista Tech Exitosa
Tips para una entrevista Tech ExitosaTips para una entrevista Tech Exitosa
Tips para una entrevista Tech Exitosa
 
Metaverso y Microsoft Mesh
Metaverso y Microsoft MeshMetaverso y Microsoft Mesh
Metaverso y Microsoft Mesh
 
Mejoras en Blazor con .NET 6
Mejoras en Blazor con .NET 6Mejoras en Blazor con .NET 6
Mejoras en Blazor con .NET 6
 
Apis with dotnet postgreSQL and Apsaradb
Apis with dotnet postgreSQL and ApsaradbApis with dotnet postgreSQL and Apsaradb
Apis with dotnet postgreSQL and Apsaradb
 
Microservices with Minimal APi and .NET 6
Microservices with Minimal APi and .NET 6Microservices with Minimal APi and .NET 6
Microservices with Minimal APi and .NET 6
 

MAUIConf - Adios Net Maui Essentials Bienvenida Integración de Plataforma

  • 3. Código Específico de Plataforma UI+APIs UI + APIs UI + APIs Battery GPS Lights Notifications Settings Text To Speech Battery GPS Lights Notifications Settings Text To Speech Battery GPS Lights Notifications Settings Text To Speech
  • 5. Interfaz común public interface ITextToSpeech { void Speak (string text); } ITextToSpeech
  • 6. Texto a Voz – Implementación en iOS AVSpeechSynthesizer public void Speak (string text) { var speechSynthesizer = new AVSpeechSynthesizer (); var speechUtterance = new AVSpeechUtterance (text) { Rate = AVSpeechUtterance.MaximumSpeechRate/4, Voice = AVSpeechSynthesisVoice.FromLanguage ("en-US"), Volume = 0.5f, PitchMultiplier = 1.0f }; speechSynthesizer.SpeakUtterance (speechUtterance); }
  • 7. Texto a Voz – Implementación en Android AVSpeechSynthesizer TextToSpeech speaker; string toSpeak; public void Speak (string text) { toSpeak = text; if (speaker == null) { speaker = new TextToSpeech (ctx, this); } else { var p = new Dictionary<string,string> (); speaker.Speak (toSpeak, QueueMode.Flush, p); } } public void OnInit (OperationResult status) { //… more stuff } TextToSpeech
  • 8. Texto a Voz – Implementación en Windows public async void Speak(string text) { SpeechSynthesizer synth = new SpeechSynthesizer(); await synth.SpeakTextAsync(text); } SpeechSynthesizer
  • 10. builder.Services.AddSingleton<ITextToSpeech, TextToSpeechImplementation>(); ITextToSpeech tts; public MyViewModel(ITextToSpeech tts) { this.tts = tts; } void Speak() { tts.Speak(“Hello World”); }
  • 12. Cross-Platform APIs Flashlight Geolocation Preferences Device Info Device Display Info Secure Settings Accelerometer Battery Clipboard Compass Connectivity Data Transfer Email File System Geocoding Gyroscope Magnetometer Phone Dialer Screen Lock Sms Text to Speech Vibration
  • 13. (I) Modelo de Aplicación Funcionalidad Descripción AppActions Le permite crear y responder a los accesos directos de la aplicación, proporcionando formas adicionales de iniciar la aplicación. AppInfo Proporciona acceso a información básica de la aplicación, que incluye el nombre y la versión de la aplicación, y el tema activo actual del dispositivo. Browser Permite que una aplicación abra un vínculo web en un navegador dentro de la aplicación o el navegador del sistema Launcher Permite que una aplicación abra un URI y se usa con frecuencia para hacer deep linking en los esquemas de URI personalizados de otra aplicación. MainThread Permite ejecutar código en el hilo de la UI Map Permite que una aplicación abra la aplicación de mapa del sistema en una ubicación específica o colocar un marcador Permission Permite comprobar y solicitar permisos en tiempo de ejecución VersionTracking Le permite comprobar la versión y los números de compilación de la aplicación, y determinar si es la primera vez que se inicia la aplicación. Espacio de nombres: Microsoft.Maui.ApplicationModel
  • 14. (II) Comunicación Funcionalidad Descripción Contacts Permite que una aplicación seleccione un contacto y lea información al respecto. Email Se puede usar para abrir la aplicación de correo electrónico predeterminada y crear un nuevo correo electrónico con los destinatarios, el asunto y el cuerpo especificados Connectivity Permite inspeccionar la accesibilidad de red del dispositivo en el que se ejecuta la aplicación (Microsoft.Maui.Networking) PhoneDialer Permite que una aplicación abra un número de teléfono en el marcador Sms Se puede usar para abrir la aplicación de Sms predeterminada y precargarla con un destinatario y un mensaje WebAuthenticator Permite iniciar un flujo de autenticación basado en explorador, que escucha un callback a una dirección URL específica registrada en la app (Microsoft.Maui.Authentication) Espacio de nombres: Microsoft.Maui.ApplicationModel.Communication
  • 15. (III) Características de dispositivo Funcionalidad Descripción Battery Permite que una aplicación compruebe la información de la batería del dispositivo y supervise la batería en busca de cambios DeviceDisplay Permite que una aplicación lea información sobre las métricas de pantalla del dispositivo. DeviceInfo Permite que una aplicación lea información sobre el dispositivo en el que se ejecuta la app Sensores Proporciona acceso al acelerómetro, barómetro, brújula, giroscopio, magnetómetro y sensor de orientación del dispositivo Flashlight Puede activar y desactivar el flash de la cámara del dispositivo, para emular una linterna Geocoding Proporciona un API para geocodificar una dirección en una coordenada posicional y geocodificar inversamente una coordenada en una dirección. Geolocation Proporciona APIs para recuperar las coordenadas de geolocalización actuales del dispositivo HapticFeedback Retroalimentación háptica del control en un dispositivo, que generalmente se manifiesta como una sensación de vibración suave para dar una respuesta al usuario. Vibration Le permite iniciar y detener la funcionalidad de vibración durante el tiempo deseado Espacio de nombres: Microsoft.Maui.Devices
  • 16. (IV) Medios Funcionalidad Descripción MediaPicker Le permite solicitar al usuario que elija o tome una foto o un vídeo en el dispositivo Screenshot Le permite capturar la pantalla mostrada actual de la aplicación TextToSpeech Permite que una aplicación utilice los motores de conversión de texto a voz integrados para hablar texto desde el dispositivo UnitConverters Proporciona convertidores de unidades para ayudarle a convertir de una unidad de medida a otra Espacio de nombres: Microsoft.Maui.Media
  • 17. (V) Compartir Funcionalidad Descripción Clipboard Habilita una aplicación para copiar y pegar texto en y desde el Portapapeles del sistema Share Proporciona una API para enviar datos, como texto o enlaces web, a la función de uso compartido del dispositivo Espacio de nombres: Microsoft.Maui.ApplicationModel.DataTransfer
  • 18. (VI) Almacenamiento Funcionalidad Descripción FilePicker Permite solicitar al usuario que elija uno o varios archivos del dispositivo FileSystem Proporciona métodos auxiliares que tienen acceso a la memoria caché y las carpetas de datos de la aplicación, y ayuda a obtener acceso a los archivos almacenados en el paquete de la aplicación Preferences Ayuda a almacenar las preferencias de la aplicación en un almacén de claves/valores SecureStorage Ayuda a almacenar de forma segura pares de clave/valor sencillos Espacio de nombres: Microsoft.Maui.Storage
  • 19. // Get cached location, else get real location. var location = await Geolocation.GetLastKnownLocationAsync(); if (location == null) { location = await Geolocation.GetLocationAsync(new GeolocationRequest { DesiredAccuracy = GeolocationAccuracy.Medium, Timeout = TimeSpan.FromSeconds(30) }); }
  • 20. // Register service builder.Services.AddSingleton<IGeolocation>(Geolocation.Default); // Inject service IGeolocation geolocation; public MyViewModel(IGeolocation geolocation) { this.geolocation = geolocation; }
  • 22. Para aprender más Integración de Plataforma https://docs.microsoft.com/en-us/dotnet/maui/platform-integration/
  • 23. Q & A