Geolocalización y otros plugins

creados por James Montemagno

Aunque en el videotutorial hablamos sobre el plugin para la geolocalización, éste no es –ni por asomo- la única contribución de James Montemagno al mundillo de Xamarin. Por centrarnos en algo, hablaremos hoy de sus plugins:

  • BatteryStatus: útil pcl que nos permitirá acceder al estado de la batería. Con properties como RemainingChargePercent (que devuelve un entero que indica el porcentual de batería restante) o Status (que devuelve un enumerador llamado BatteryStatus que nos indica si la batería se está cargando, está cargada, se está descargando, etc). También dispone de un EventHandler (BatteryChangedEventHandler) al que podemos subscribirnos para que nos avise de cualquier cambio en la batería.
  • Connectivity: nos permite saber si contamos con conexión activa, así como la lista de conexiones actuales. IsReachable e IsRemoteReachable son dos funciones que ejecutan un ping y realizan un test de conexión remota, respectivamente. También dispone de EventHandler (ConnectivityChangedEventHandler).
  • DeviceInfo: recupera información del dispositivo (id, modelo, versión y plataforma). Lo más interesante de esta pcl es el método GenerateAppId que nos genera un identificador único para nuestra aplicación.
  • ExternalMaps: usando el método NavigateTo haremos que la app intente lanzar una aplicación de terceros para el manejo de mapas. En concreto, Android tratará de abrir primero Google Maps, luego otra aplicación de manejo de mapas y, por último y si no la encontrase, el navegador web; por su parte, un Windows Phone Silverlight intentaría acceder a una aplicación de terceros y, si no la hubiese, accedería a Bing Maps a través del navegador web. El método antes mencionado está sobrecargado para que podamos navegar hasta una dirección (indicando calle, código postal, país, código de país, etc) o hasta una localización (latitud y longitud).
  • Media: incluye funciones asíncronas para realizar fotos y videos (TakePhotoAsyncTakeVideoAsync) y para recuperarlas desde la galería por defecto (PickVideoAsyncPickPhotoAsync).
  • Permissions: la función RequestPermissionsAsync devuelve un diccionario con los permisos actuales del usuario y su estatus. CheckPermissionStatusAsync, por su parte, comprueba el estado del permiso que pasamos como parámetro. Tanto los objetos Permission como PermissionStatus son enumeradores.
  • Share: a través de la típica pantalla emergente del teléfono, el método Share compartirá un texto que le pasemos Default Shared PopUpcomo parámetro; por otro lado, ShareLink hará lo mismo, pero compartiendo un enlace en lugar de un texto. Existe también el método OpenBrowser, que recibe una url como parámetro y la lanza al navegador web. Por último, y partir de la versión 3.2, Montemagno implementó la función SetClipboardText que recibe un texto que inserta directamente al portapapeles  del dispositivo.
  • TextToSpeech: un simple método asíncrono (sobrecargado para recibir diversas opciones) llamado Speak que recibe un texto y lo lanza al sistema para que haga Text to Speech. También dispone de una función GetInstalledLanguages que nos permitirá saber qué idiomas tiene instalado el dispositivo y, por tanto, qué idiomas serán válidos para el uso del método Speak.
  • Vibrate: instalando este NuGet e instanciando la clase CrossVibrate tendremos acceso al método Vibration, que recibe el número de milisegundos de vibración. Simple.
  • ImageCircle: para aquellas aplicaciones en las que queramos hacer circulares nuestras imágenes. Se trata de un CustomRenderer ya creado, que únicamente tendremos que instanciar en nuestro código.

Y hasta aquí el repaso a estos plugins. ¿Los encontráis de utilidad? Yo personalmente le doy gracias a Montemagno por ahorrarnos algo de trabajo.

¡Un saludo!

Álvaro Dama Jiménez (LinkedIn Twitter GitHub)

Alumno del curso Microsoft MCSD 2015-2016

Centro de formación Tajamar.