App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final...

49
App Chequeos de precios con Xamarín + Web Service

Transcript of App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final...

Page 1: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Page 2: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

ContenidoIntroducción: Web services …………………………….……………………….............................................3

Tipos de Web Services ……………………………………………………………………………………....................…4

Xamarín………………………………….................................................................................................6

Instalación y Creación de Proyectos.................................................................................................................................................7

Diseñando la Interfaz de usuario...................................................................................................................................................10

Ejemplo de archivo XAML...................................................................................................................................................13

Código principal de nuestra aplicación...............................................................................................14

Compilando y probando nuestra aplicación.......................................................................................30

Crear un nuevo emulador...................................................................................................................30

Habilitar depuración USB en el dispositivo android...............................................................................................................................................32

La App En modo de Ejecución...........................................................................................................34

Programación de Aplicaciones DistribuidasPágina 2

Page 3: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Introducción a Web Services

Un servicio web o web service, son un conjunto de aplicaciones o tecnologías con capacidad para interoperar en la Web. Estas tecnologías intercambian datos entre ellas con el fin de ofrecer unos servicios.Utilizando la Web como plataforma, los usuarios, de forma remota, pueden solicitar un servicio que algún proveedor ofrezca en la red. Pero para que esta interacción funcione, deben existir unos mecanismos de comunicación estándares entre diferentes aplicaciones. Estos mecanismos deben poder interactuar entre sí para presentar la información de forma dinámica al usuario. Se precisa, pues, una arquitectura de referencia estándar que haga posible la interoperabilidad y extensibilidad entre las distintas aplicaciones y que permita su combinación para realizar operaciones complejas.

Programación de Aplicaciones DistribuidasPágina 3

Page 4: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Fuente: W3C Oficina Española. "Los Servicios Web en funcionamiento". Guía Breve de Servicios Web. http://www.w3c.es/Divulgacion/Guiasbreves/ServiciosWeb

Los servicios web que se basan en XML permiten que las aplicaciones compartan información y que además invoquen funciones de otras aplicaciones independientemente de cómo se hayan creado dichas aplicaciones e independientemente del sistema operativo o plataforma en que se ejecuten y de los dispositivos utilizados en el acceso. Los servicios Web XML, aunque sean independientes entre sí, pueden vincularse para realizar una tarea. Por ejemplo, Google, utiliza un Servicio Web -Google Web APIs- basado en los estándares SOAP y  WSDL que permite programar en Java, Perl ó Visual Studio.NET y que sirve para la recuperación de información permitiendo utilizar este buscador en distintas plataformas y Servicios Web. http://www.google.com/apis/ Por su parte, Amazon Web Services ofrece una serie de de aplicaciones de referencia que permiten a los desarrolladores acceso directo a la plataforma de tecnología de Amazon y construir aplicaciones propias. Una lista pormenorizada de muchos de los servicios web existentes en la actualidad los ofrece XMethod.

Tipos de servicios web

A día de hoy existe una gran variedad de protocolos sobre los que los servicios web pueden operar, pero son dos los protocolos que son utilizados prácticamente por todos los servicios webs actuales:

SOAP: Simple Object Access Protocol. Creado en 1998, se sirve de mensajes XML para el intercambio de mensajes. Puede operar sobre cualquier protocolo de transporte, aunque lo más común es que lo haga sobre HTTP o HTTPS. Es el protocolo más común en servicios web de carácter privado.REST: REpresentational State Transfer. Concepto surgido en el año 2000, hace uso del protocolo HTTP para el envío de mensajes, y puede utilizar lenguajes como XML o JSON.

SOA

En este caso un servicio WCF, se compondrá, a grandes rasgos, de:

Contrato de servicio (ServiceContract): expone una operación que nuestro servicio web es capaz de ejecutar. Corresponde a una interfaz.Contrato de datos (DataContract): implementa un tipo de dato que el servicio web será capaz de manejar. Generalmente, será el tipo de dato que manejará el contrato de servicio.Implementación del servicio: implementará la interfaz correspondiente al contrato de servicio, haciendo uso del contrato de datos para intercambiar la información.

Programación de Aplicaciones DistribuidasPágina 4

Page 5: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

En cuanto a la comunicación, se realizará mediante la configuración de los denominados endpoints, a través de un simple fichero XML. Un endpoint no es más que la dirección de un servicio, que implementa un protocolo determinado.

Ejemplo: Restful y WCF

Programación de Aplicaciones DistribuidasPágina 5

Page 6: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Xamarin

Xamarín es una compañía establecida en mayo de 2011 por los ingenieros que crearon Mono, una implementación libre de la plataforma de desarrollo.NET para dispositivos Android, iOS y GNU/Linux.

Por lo tanto es una herramienta para crear aplicaciones multilenguaje 100 % nativas de manera muy sencilla.

Características de Xamarin

Algunas de las principales características de Xamarin son:

Lenguaje de Programación C#: Permite utilizar una sintaxis conocida ya por muchos desarrolladores e integra características sofisticadas como Generics, Linq y Parallel Task.

Framework Mono .NET: Proporciona una implementación multiplataforma utilizando todas las características con las que cuenta Microsoft .NET.

Compilador: Dependiendo de la plataforma seleccionada produce una aplicación nativa o una aplicación .NET integrada.

Herramientas IDE: Cuenta con el IDE de Xamarin Studio y el plug-in de Xamarin para integración con Visual Studio

Soporte de multiplataforma móvil: Xamarin ofrece soporte multiplataforma sofisticado para las tres principales plataformas móviles: iOS, Android y Windows Phone. Las aplicaciones pueden ser escritas para compartir hasta el 75% del código entre plataformas. Además, Xamarin ofrece acceso a los recursos comunes de las 3 plataformas.

Programación de Aplicaciones DistribuidasPágina 6

Page 7: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Xamarin se divide principalmente en dos componentes: Xamarin.iOs también conocido como MonoTouch y Xamarin.Android también conocido como Mono.Android, los dos están basados en Mono: un framework de .NET de código abierto que cumple con el estándar ECMA publicado de .NET. La característica principal de Mono es que es compatible en un gran número de plataformas: Linux, Unix, FreeBSD, Mac OSX, Microsot Windows, etc.

En el caso de iOs, Xamarin utiliza su compilador “Ahead of Time” el cual compila directamente el código de la aplicación a nativo; en el caso de Android Xamarin compila la aplicación a un código intermedio (IL Intermediate Lenguage) para posteriormente ser compilado a nativo cuando la aplicación se inicia.

En ambos casos para iOs y Android se comparten algunas características como lo son : garbage Collection, asignación de memoria e interpolaridad de plataformas.

El ambiente de desarrollo de Xamarin es una remasterización del IDE de MonoDevelop (IDE utilizado en Mono) , rediseñado para ser usado en los sistemas operativos Windows y Mac. Incluye un constructor de interfaces gráficas para Android y se integra con el constructor de interfaces de XCode para simplificar la tarea de diseñar la interfaz del usuario.

El IDE autocompleta el código para los diferentes APIs. El depurador permite poner breakpoints, visualizar los hilos de ejecución y el valor de las variables. Cuenta además con “Intellisense”, lo que significa que muestra los errores semánticos en la medida que uno va escribiendo. Se puede además elegir el esquema de color para esta característica o bien crear un esquema propio; además de que ofrece como alternativa la integración con Visual Studio.

Programación de Aplicaciones DistribuidasPágina 7

Page 8: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Instalación y creación de proyectos

Xamarin posee una versión gratuita que podemos encontrar en http://xamarin.com/download, está página nos descargará un instalador, dentro del instalador hay que asegurarse de seleccionar Xamarin.Android durante el proceso de instalación.

Creando el proyecto

Cabe señalar que para desarrollar en xamarin se puede optar por dos IDE’s : el android studio o por el visual studio

En Xamarin Studio:

Abrimos Xamarin Studio, enseguida notaremos un entorno gráfico muy amigable muy parecido al que nos ofrece Visual Studio.

Seleccionamos el menú Archivo (File) -> Nuevo (New) -> Solution (Solución)   Enseguida aparecerá un cuadro de diálogo con las diferentes templates de

soluciones a las que tenemos acceso, en  Xamarin.Android podemos identificar principalmente los siguientes tipos de templates:

           - Android Library Project – Un proyecto de librería reusable de .NET para Android           - Android Application – Un proyecto básico de aplicación para Android           - Android OpenGL Application – Un  proyecto de inicio de OpenGL

Programación de Aplicaciones DistribuidasPágina 8

Page 9: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Seleccionamos Android Application, ya sea Android Honeycomb Application o Android Ice Cream Sandwich Application (para el tutorial se seleccionará Android Ice Cream Sandwich Application).

En seguida se cargará el template correspondiente dentro del entorno de Xamarin Studio, en el cual podemos identificar 2 partes muy diferenciadas entre sí:

          - Explorador de soluciones: Muy parecido al que conocemos en Visual Studio, nos permite explorar dentro de las diferentes carpetas y archivos de nuestro proyecto.         - Área de edición: Nos permite modificar el contenido de cada archivo contenido dentro del proyecto.

Programación de Aplicaciones DistribuidasPágina 9

Page 10: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Además, cabe mencionar que dicho proyecto se conforma de las diferentes carpetas:

           - Assets: Contiene cualquier tipo de archivo que la aplicación necesita incluir en su empaquetado.          - Properties: Contiene la metadata normal del ensamblado de .NET.          - Resources: Contiene los recursos de la aplicación, tales como los archivos .cs en donde codificaremos , cadenas e imágenes,  así también como el archivo XML donde se declaran las definiciones de la interfaz de usuario.

Como se puede observar en la imagen, la plantilla del proyecto también creó una clase llamada Activity1 en el archivo MainActivity.cs. Como información extra: un Activity es una clase que modela un destino donde un usuario puede realizar alguna acción mientras está utilizando la app, típicamente vía interfaz de usuario. Como analogía, pensemos que un Activity es en parte parecido a una página en ASP.NET, donde cada actividad tiene un ciclo de vida asociada a ella. Un Activity contiene métodos que pueden ser llamados en ciertos puntos de su ciclo de vida, para más información sobre Activities los invito a consultar el siguiente link: http://docs.xamarin.com/guides/android/application_fundamentals/activity_lifecycle/

En visual Studio :1- Menu Archivo Nuevo Proyecto 2- En ‘Plantillas’ seleccionar ‘Android’’Blank App Android’ y Escribir un

nombre de proyecto ‘Aceptar’3-

Programación de Aplicaciones DistribuidasPágina 10

Page 11: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Creando la interfaz de usuario

Ahora que hemos visto a groso modo la estructura de un proyecto de aplicación para Android en Xamarin, el siguiente paso a seguir es crear la interfaz de usuario de nuestra aplicación (UI).En Xamarin.Android podemos crear una interfaz de usuario de dos diferentes maneras: mediante código o mediante XML, ahora lo veremos de la segunda manera Por suerte Android soporta un sistema de creación de interfaz de usuario mediante un archivo XML. Dentro de Resources encontramos una carpeta llamada layout donde se ubica un archivo  llamado Main.axml. Este archivo fue generado automáticamente por Xamarin.Android cuando justamente creamos el proyecto. Android generará un único identificador (ID) que le permite referenciar el archivo de layout con el código fuente, pero en nuestro caso para referenciar nuestro archivo Main.axml en nuestro código, usaremos la sintaxis Resource.Layout.Main, y de forma similar para los diferentes Layouts que se necesiten.

Abrimos el archivo Main.axml, notaremos que tenemos una vista de diseño y una vista donde se visualiza el contenido del XML, abrimos la vista donde se visualiza el contenido del XML y reemplazaremos el código existente por el siguiente:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"

Programación de Aplicaciones DistribuidasPágina 11

Page 12: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

android:minWidth="25px" android:minHeight="25px" android:background="@android:color/holo_blue_dark"> <TextView android:text="Login" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView1" android:gravity="center" android:ellipsize="start" android:capitalize="none" android:textSize="35px" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <TextView android:text="Ingrese el usuario y la contraseña o cree un nuevo usuario" android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView3" android:textColor="@android:color/background_light" android:textSize="20px" android:gravity="center" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <TextView android:text="Usuario: " android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView1" android:ellipsize="start" android:capitalize="none" android:textSize="20px" android:textColor="@android:color/background_light" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/txtUsuario" /> <TextView android:text="Clave: " android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/textView1" android:ellipsize="start" android:capitalize="none" android:textSize="20px" android:textColor="@android:color/background_light"

Programación de Aplicaciones DistribuidasPágina 12

Page 13: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

android:layout_marginBottom="0.0dp" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/txtClave" /> <Button android:text="Ingresar" android:layout_width="match_parent" android:layout_height="32.8dp" android:id="@+id/btnIngreso" android:layout_margin="20sp" android:layout_marginLeft="20sp" android:background="@+id/ButtonOrangeStyle" android:drawableLeft="@drawable/login" android:layout_marginRight="20sp" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <Button android:text="Nuevo Usuario" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnNuevo" android:drawableLeft="@drawable/new_user" android:background="@drawable/ButtonBlueStyle" android:layout_margin="20sp" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="35" android:minWidth="25px" android:minHeight="25px"> <ProgressBar android:layout_width="100.1dp" android:layout_height="wrap_content" android:id="@+id/progresoBarra" android:indeterminate="true" android:layout_centerInParent="true" /> </RelativeLayout></LinearLayout>

La sintaxis @+id/name  le indica al “Android parser” que genere el id del recurso con el nombre especificado, para de esta forma poder utilizar dicho id en todo el código fuente de forma parecida a como lo realiza C#.

Todos los cambios en nuestro archivo XML modificarán nuestra vista de diseño de forma automática; también se puede realizar la interfaz de usuario mediante la vista de diseño, los invito a experimentar con cualquiera de las dos opciones.

A continuación la pantalla de inicio de sesión en su propiedad ‘diseño’

Programación de Aplicaciones DistribuidasPágina 13

Page 14: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Se puede observar una mejor organización de la interfaz de usuario mediante el archivo XML que si se realizará por código.Ya definida nuestra interfaz de usuario procederemos con la implementación de la lógica de negocio. Para más información sobre las tags correspondientes de los diferentes elementos (buttons, textfields, lists) que podemos agregar a nuestra app es altamente recomendable visitar docs.xamarin.com

Programación de Aplicaciones DistribuidasPágina 14

Page 15: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Código principal de nuestra aplicación

Ya que se tiene definida totalmente la interfaz de usuario, el siguiente paso es implementar el código correspondiente a la funcionalidad de nuestra aplicación. En este tutorial rápido se modificará el contenido de la label que definimos anteriormente cada vez que se presione un button. Dentro del archivo MainActivity.cs implementaremos nuestro código dentro del método: protected override void OnCreate (Bundle bundle)

Primeramente le diremos a nuestra aplicación que layout va a utilizar y enseguida declaremos los componentes del layout que necesitaremos en nuestro código de la siguiente forma:

Programación de Aplicaciones DistribuidasPágina 15

Page 16: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

namespace ChequesPreciosAndroid{ [Activity(Label = "PreciosAndroid", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { #region Declaracion de controles TextView textView3; EditText txtUsuario; EditText txtClave; Button btnIngreso; Button btnNuevo; ProgressBar progresoBarra; #endregion

protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Main);//MAIN

#region Encontrar Controles

textView3 = FindViewById<TextView>(Resource.Id.textView3); txtUsuario = FindViewById<EditText>(Resource.Id.txtUsuario); txtClave = FindViewById<EditText>(Resource.Id.txtClave); btnIngreso = FindViewById<Button>(Resource.Id.btnIngreso); btnNuevo = FindViewById<Button>(Resource.Id.btnNuevo); progresoBarra = FindViewById<ProgressBar>(Resource.Id.progresoBarra);

#endregion

progresoBarra.Visibility = ViewStates.Invisible; btnIngreso.Click += btnIngreso_Click; btnNuevo.Click += btnNuevo_Click; } void btnIngreso_Click(object sender, EventArgs e) { if (txtUsuario.Text == string.Empty) { textView3.Text = " Debe Ingresar un usuario"; return; } if (txtClave.Text == string.Empty) { textView3.Text = " Debe Ingresar una clave"; return; } ServiceChequeo.ServiceChequeo service = new ServiceChequeo.ServiceChequeo(); service.ValidarUsuarioCompleted += service_ValidarUsuarioCompleted; service.ValidarUsuarioAsync(txtUsuario.Text, txtUsuario.Text); textView3.Text = " Validando, Por Favor Espere...."; btnIngreso.Enabled = true; progresoBarra.Visibility = ViewStates.Visible; }

Programación de Aplicaciones DistribuidasPágina 16

Page 17: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

void service_ValidarUsuarioCompleted(object sender, ServiceChequeo.ValidarUsuarioCompletedEventArgs e) { btnIngreso.Enabled = false; progresoBarra.Visibility = ViewStates.Invisible; if (e.ValidarUsuarioResult == 0) { textView3.Text = "usuario o clave no valida"; txtClave.Text = string.Empty; return; } var menu = new Intent(this, typeof(Menu)); menu.PutExtra("IDUsuario", e.ValidarUsuarioResult); StartActivity(menu); } void btnNuevo_Click(object sender, EventArgs e) { var nuevoUsuario = new Intent(this, typeof(NuevoUsuario)); //menu.PutExtra("IDUsuario", e.ValidarUsuarioResult); StartActivity(nuevoUsuario); }

}}

Pantalla ‘Menu’- archivo axml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:background="@android:color/holo_blue_dark" android:layout_width="fill_parent" android:layout_height="fill_parent"> <TextView android:text="Menu Principal" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView1" android:gravity="center" android:ellipsize="start" android:capitalize="none" android:textSize="35px" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <Button android:text="Nuevo Competidor" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnNuevoCompetidor"

Programación de Aplicaciones DistribuidasPágina 17

Page 18: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

android:layout_marginLeft="20dp" android:background="@drawable/ButtonBlueStyle" android:drawableLeft="@drawable/new_user" android:layout_marginRight="20dp" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <Button android:text="Nuevo Producto" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnNuevoProducto" android:layout_marginLeft="20dp" android:background="@drawable/ButtonBlueStyle" android:drawableLeft="@drawable/producto" android:layout_marginRight="20dp" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <Button android:text="Nuevo Chequeo" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnNuevoChequeo" android:layout_marginLeft="20dp" android:background="@drawable/ButtonBlueStyle" android:drawableLeft="@drawable/cheque" android:layout_marginRight="20dp" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <Button android:text="Consultar Competidores" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/btnConsultarCompetidores" android:layout_marginLeft="20dp" android:background="@drawable/ButtonBlueStyle" android:drawableLeft="@drawable/competidor" android:layout_marginRight="20dp" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <Button android:text="Consultar Chequeos" android:layout_width="match_parent" android:layout_height="wrap_content"

Programación de Aplicaciones DistribuidasPágina 18

Page 19: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

android:id="@+id/btnConsultarChequeos" android:layout_marginLeft="20dp" android:background="@drawable/ButtonBlueStyle" android:drawableLeft="@drawable/check" android:layout_marginRight="20dp" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /></LinearLayout>

Pantalla ‘Menu Principal’- archivo CS

using System;using System.Collections.Generic;using System.Linq;using System.Text;

using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;

namespace ChequesPreciosAndroid{ [Activity(Label = "Menu Principal ")] public class Menu : Activity { private int IDUsuario;

#region Declaracion de controles Button btnNuevoCompetidor; Button btnNuevoProducto; Button btnNuevoChequeo; Button btnConsultarCompetidores; Button btnConsultarChequeos; #endregion

protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.Menu); IDUsuario = Intent.GetIntExtra("ID Usuario",0); #region EncontrarControles btnNuevoCompetidor = FindViewById<Button>(Resource.Id.btnNuevoCompetidor); btnNuevoProducto = FindViewById<Button>(Resource.Id.btnNuevoProducto); btnNuevoChequeo = FindViewById<Button>(Resource.Id.btnNuevoChequeo);

Programación de Aplicaciones DistribuidasPágina 19

Page 20: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

btnConsultarCompetidores = FindViewById<Button>(Resource.Id.btnConsultarCompetidores); btnConsultarChequeos = FindViewById<Button>(Resource.Id.btnConsultarChequeos); #endregion

btnConsultarChequeos.Click += btnConsultarChequeos_Click; btnConsultarCompetidores.Click += btnConsultarCompetidores_Click; btnNuevoChequeo.Click += btnNuevoChequeo_Click; btnNuevoCompetidor.Click += btnNuevoCompetidor_Click; btnNuevoProducto.Click += btnNuevoProducto_Click; } void btnConsultarChequeos_Click(object sender, EventArgs e) { var consultarChequeo = new Intent(this, typeof(ConsultarChequeo)); consultarChequeo.PutExtra("IDUsuario", IDUsuario); StartActivity(consultarChequeo); } void btnNuevoProducto_Click(object sender, EventArgs e) { var nuevoProducto = new Intent(this, typeof(NuevoProducto)); nuevoProducto.PutExtra("IDUsuario", IDUsuario); StartActivity(nuevoProducto); }

void btnNuevoChequeo_Click(object sender, EventArgs e) { var nuevoChequeo = new Intent(this, typeof(NuevoChequeo)); nuevoChequeo.PutExtra("IDUsuario", IDUsuario); StartActivity(nuevoChequeo); } void btnNuevoCompetidor_Click(object sender, EventArgs e) { var nuevoCompetidor = new Intent(this, typeof(NuevoCompetidor)); nuevoCompetidor.PutExtra("IDUsuario", IDUsuario); StartActivity(nuevoCompetidor); } void btnConsultarCompetidores_Click(object sender, EventArgs e) { var consultarCompetidores = new Intent(this, typeof(ConsultarCompetidores)); // consultarCompetidores.PutExtra("IDUsuario", IDUsuario); StartActivity(consultarCompetidores); }

//internal static void PutExtra(string p, Func<object, bool> func) //{ // throw new NotImplementedException(); //} }}

Programación de Aplicaciones DistribuidasPágina 20

Page 21: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Pantalla ‘Menu Principal’ – Vista de diseño

Programación de Aplicaciones DistribuidasPágina 21

Page 22: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Pantalla ‘Nuevo Chequeo’- Archivo axml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:background="@android:color/holo_blue_dark" android:layout_height="fill_parent"> <ScrollView android:layout_width="fill_parent" android:layout_height="wrap_content"> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/lblMensaje" /> <TextView android:text="Nuevo Chequeo" android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView1" android:gravity="center" android:ellipsize="start" android:capitalize="none" android:textSize="40px" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/lblMensaje" /> <TextView android:text="Cargando Competidores,por favor espere " android:textAppearance="?android:attr/textAppearanceSmall" android:layout_width="match_parent" android:layout_height="46.0dp" android:id="@+id/textView3" android:textColor="@android:color/background_light" android:textSize="30px" android:gravity="center" /> <TableLayout android:minWidth="25px" android:minHeight="25px" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/tableLayout1"> <TableRow android:id="@+id/tableRow1" android:layout_height="match_parent"> <TextView android:text="Competidor: " android:textAppearance="?android:attr/textAppearanceMedium"

Programación de Aplicaciones DistribuidasPágina 22

Page 23: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

android:textColor="@android:color/background_light" android:layout_column="0" android:id="@+id/textView13" /> <ListView android:minWidth="25px" android:minHeight="25px" android:layout_width="match_parent" android:layout_height="200dp" android:layout_weight="1" android:id="@+id/lsvCompetidores" /> </TableRow> <TableRow android:id="@+id/tableRow1" android:layout_height="match_parent"> <TextView android:text="Codigo de Barras: " android:textColor="@android:color/background_light" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_column="0" android:id="@+id/txtDocumento" /> <EditText android:layout_width="306.4dp" android:layout_height="wrap_content" android:id="@+id/txtBarras" android:layout_marginRight="0.0dp" android:numeric="integer" android:inputType="number" /> </TableRow> </TableLayout> <Button android:text="Consultar " android:layout_width="match_parent" android:layout_height="69.9dp" android:id="@+id/btnConsultar" android:drawableLeft="@drawable/check" android:background="@drawable/ButtonBlueStyle" android:layout_margin="20sp" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" android:layout_marginBottom="28.9dp" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:textColor="@android:color/background_light" android:id="@+id/lblProducto" /> <TableLayout android:minWidth="25px" android:minHeight="25px" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/tableLayout1"> <TableRow android:id="@+id/tableRow1" android:layout_height="match_parent"> <TextView

Programación de Aplicaciones DistribuidasPágina 23

Page 24: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

android:text=" Precio: " android:textColor="@android:color/background_light" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_column="0" android:id="@+id/txtPrecio" /> <EditText android:layout_width="394.5dp" android:layout_height="wrap_content" android:id="@+id/txtBarras" android:layout_marginRight="0.0dp" android:numeric="integer" android:inputType="number" /> </TableRow> <Button android:text=" Agregar chequeo " android:layout_width="match_parent" android:layout_height="71.1dp" android:id="@+id/btnAgregar" android:drawableLeft="@drawable/cheque" android:background="@drawable/ButtonBlueStyle" android:layout_margin="20sp" android:layout_marginLeft="20sp" android:layout_marginRight="20sp" android:layout_marginBottom="28.9dp" android:enabled="false" /> </TableLayout> </LinearLayout> </ScrollView></LinearLayout>

Pantalla ‘Nuevo Chequeo’ – Vista de Diseño

Programación de Aplicaciones DistribuidasPágina 24

Page 25: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Pantalla ‘Nuevo Chequeo’- Archivo csusing System;using System.Collections.Generic;using System.Linq;using System.Text;

using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;using ChequesPreciosAndroid.ServiceChequeo;

namespace ChequesPreciosAndroid{ [Activity(Label = "Nuevo Chequeo")] public class NuevoChequeo : Activity { Producto producto; private int IDUsuario; int position = -1; List<string> competidores; List<int> IDCompetidores;

#region Declaracion de controles TextView lblMensaje; ListView lsvCompetidores; EditText txtBarras; EditText txtPrecio; Button btnConsultar; Button btnAgregar; TextView lblProducto;

#endregion

protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.NuevoChequeo); IDUsuario = Intent.GetIntExtra("IDUsuario", 0);

#region Encontrar Controles lblMensaje = FindViewById<TextView>(Resource.Id.lblMensaje); lblProducto = FindViewById<TextView>(Resource.Id.lblProducto); txtBarras = FindViewById<EditText>(Resource.Id.txtBarras); txtPrecio = FindViewById<EditText>(Resource.Id.txtPrecio); lsvCompetidores = FindViewById<ListView>(Resource.Id.txtUsuario); btnConsultar = FindViewById<Button>(Resource.Id.btnConsultar); btnAgregar = FindViewById<Button>(Resource.Id.btnAgregar); #endregion // Video 13 btnConsultar.Click += btnConsultar_Click; btnAgregar.Click += btnAgregar_Click; lsvCompetidores.ItemClick += lsvCompetidores_ItemClick;

Programación de Aplicaciones DistribuidasPágina 25

Page 26: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

ServiceChequeo.ServiceChequeo service = new ServiceChequeo.ServiceChequeo(); service.GetCompetidoresCompleted += service_GetCompetidoresCompleted; service.GetCompetidoresAsync(); }

void btnAgregar_Click(object sender, EventArgs e) { if (position == -1) { lblMensaje.Text = " Por Favor Seleccione un Competidor "; return; }

if (producto == null) { lblMensaje.Text = " Primero de buscar un Producto "; return; } Chequeo chequeo = new Chequeo(); chequeo.Fecha = DateTime.Now; chequeo.FechaSpecified = true; chequeo.IDChequeoSpecified = false; chequeo.IDCompetidor = IDCompetidores[position]; chequeo.IDCompetidorSpecified = true; chequeo.IDProducto = producto.IDProducto; chequeo.IDProductoSpecified = true; chequeo.IDUsuario = IDUsuario; chequeo.IDUsuarioSpecified = true; chequeo.Precio = decimal.Parse(txtPrecio.Text); chequeo.PrecioSpecified = true;

ServiceChequeo.ServiceChequeo service = new ServiceChequeo.ServiceChequeo(); service.InsertChequeoCompleted += service_InsertChequeoCompleted; service.InsertChequeoAsync(chequeo); lblMensaje.Text = " Consultando, por favor espere..."; btnAgregar.Enabled = false;

}

void service_InsertChequeoCompleted(object sender, InsertChequeoCompletedEventArgs e) { btnAgregar.Enabled = true; if (e.Result != "ok") { lblMensaje.Text = "Error :" + e.Result; return; }

AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.SetTitle("Confirmación"); builder.SetMessage(" Chequeo Creado Correctamente");

Programación de Aplicaciones DistribuidasPágina 26

Page 27: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

builder.SetCancelable(false); builder.SetPositiveButton("Aceptar", (object sende, DialogClickEventArgs ev) => { var menu = new Intent(this, typeof(Menu)); menu.PutExtra("IDUsuario", IDUsuario); StartActivity(menu); }); builder.Show(); }

void lsvCompetidores_ItemClick(object sender, AdapterView.ItemClickEventArgs e) { position = e.Position; }

void service_GetCompetidoresCompleted(object sender, ServiceChequeo.GetCompetidoresCompletedEventArgs e) { competidores = new List<string>(); IDCompetidores = new List<int>(); foreach (var competidor in e.Result) { competidores.Add(competidor.Descripcion); IDCompetidores.Add(competidor.IDCompetidor); } lsvCompetidores.Adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItemSingleChoice, competidores); lsvCompetidores.ChoiceMode = ChoiceMode.Single; lblMensaje.Text = " Seleccione un Competidor e ingrese Chequeo "; }

void btnConsultar_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(txtPrecio.Text)) { lblMensaje.Text = "Debe Ingresar un producto "; return; } // video 14 - 15 ServiceChequeo.ServiceChequeo service = new ServiceChequeo.ServiceChequeo(); service.GetProductoByCodigoBarrasCompleted += service_GetProductoByCodigoBarrasCompleted; service.GetProductoByCodigoBarrasAsync(long.Parse(txtPrecio.Text), true); lblMensaje.Text = "Consultando, por favor espere ... "; btnConsultar.Enabled = false;

}

void service_GetProductoByCodigoBarrasCompleted(object sender, ServiceChequeo.GetProductoByCodigoBarrasCompletedEventArgs e)

Programación de Aplicaciones DistribuidasPágina 27

Page 28: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

{ // video15 btnConsultar.Enabled = true; producto = e.Result;

if (producto == null) { lblMensaje.Text = " Producto: " + txtPrecio + " no existe "; lblProducto.Text = string.Empty; txtPrecio.Text = string.Empty; btnAgregar.Enabled = false; return; } lblProducto.Text = producto.Descripcion; lblMensaje.Text = " Producto consultado, puede ingresar precio "; btnAgregar.Enabled = true; } }}

Pantalla ‘Consultar Competidores’- Archivo axml <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:background="@android:color/holo_blue_dark" android:orientation="vertical"

Programación de Aplicaciones DistribuidasPágina 28

Page 29: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

android:layout_width="fill_parent" android:layout_height="fill_parent" android:minWidth="25px" android:minHeight="25px"> <TextView android:text="Cargando..." android:textAppearance="?android:attr/textAppearanceLarge" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/lblTitulo" android:gravity="center" android:ellipsize="start" android:capitalize="none" android:textSize="35px" /> <TextView android:text="" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/textView2" /> <ListView android:minWidth="25px" android:minHeight="25px" android:layout_width="match_parent" android:layout_height="321.3dp" android:id="@+id/lsvCompetidores" /> <Button android:text="Consultar" android:layout_width="match_parent" android:layout_height="48.1dp" android:id="@+id/btnConsultar" android:layout_marginLeft="20dp" android:background="@drawable/ButtonBlueStyle" android:drawableLeft="@drawable/competidor" android:layout_marginRight="20dp" android:layout_marginTop="0.0dp" android:layout_marginBottom="29.6dp" /></LinearLayout>

Pantalla ‘Consultar Competidores’- Vista De Diseño

Programación de Aplicaciones DistribuidasPágina 29

Page 30: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Pantalla ‘Consultar Competidores’- Archivo csusing System;using System.Collections.Generic;using System.Linq;using System.Text;

using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;

namespace ChequesPreciosAndroid{ [Activity(Label = "ConsultarCompetidores")] public class ConsultarCompetidores : Activity {

#region Declaracion de controles TextView lblTitulo; ListView lsvCompetidores;

Programación de Aplicaciones DistribuidasPágina 30

Page 31: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Button btnRegresar; #endregion

private int IDUsuario; List<string> competidores;

protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.ConsultarCompetidores); IDUsuario = Intent.GetIntExtra("ID Usuario", 0);

#region Encontrar Controles lblTitulo = FindViewById<TextView>(Resource.Id.textView3); lsvCompetidores = FindViewById<ListView>(Resource.Id.txtUsuario); btnRegresar = FindViewById<Button>(Resource.Id.btnRegresar); #endregion

btnRegresar.Click += btnRegresar_Click; ServiceChequeo.ServiceChequeo service = new ServiceChequeo.ServiceChequeo(); service.GetCompetidoresCompleted += service_GetCompetidoresCompleted; service.GetCompetidoresAsync(); }

void btnRegresar_Click(object sender, EventArgs e) { var menu = new Intent(this, typeof(Menu)); menu.PutExtra("IDUsuario",IDUsuario); StartActivity(menu); }

void service_GetCompetidoresCompleted(object sender, ServiceChequeo.GetCompetidoresCompletedEventArgs e) { competidores = new List<string>(); foreach (var competidor in e.Result) { competidores.Add(competidor.Descripcion); } lsvCompetidores.Adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, competidores); lblTitulo.Text = " CONSULTA DE COMPETIDORES ";

} }}

Programación de Aplicaciones DistribuidasPágina 31

Page 32: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Compilando y probando nuestra aplicación

Presionamos el botón Run (ó F6) que se encuentra localizado exactamente debajo del menú archivo.

Xamarin abrirá una lista de los emuladores disponibles, seleccionamos el que se ajuste a nuestras necesidades (para este tutorial el emulador Mono_for_Android_API_15) y presionamos el botón Start Emulator.

Crear un nuevo emulador Presionamos en ‘Open Android Manager Device (AVD)’ Se abrirá la siguiente ventana

Donde ‘crear’ crea un nuevo emulador‘start’ inicializa un emulador previamente creado‘Edit’ sirve para editar un emulador ya creado.‘Repair’ sirve para repara algún emulador con fallas‘Delete’ elimina algún emulador‘Details’ nos muestra los detalles del emulador seleccionado‘Refresh’ Actualiza la ventana.

Programación de Aplicaciones DistribuidasPágina 32

Page 33: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Emulando el dispositivo android desde el visual studio 2012

Habilitar el modo depuración USB en Android

¿Qué es el modo “Depuración USB”?

El modo “Depuración USB” (USB Debugging) está pensado principalmente para desarrolladores. El modo Depuración USB abre el acceso directo al sistema para el SDK de Android (Software Development Kit). Si descargamos e instalamos en nuestro ordenador el SDK de Android pero no activamos el modo depuración el SDK no funcionará, ya que no podrá conectar con el dispositivo.

El modo depuración USB no solo es útil para desarrolladores, sino que también lo usamos para realizar otras operaciones como por ejemplo instalar una custom ROM. Vamos a ver como habilitarlo.

Cómo habilitar la depuración USB en Android KitKat y Jelly Bean (4.2 y posterior)

Nos dirigiremos a Ajustes> Información del Teléfono >(nos desplazaremos hasta el final)> pulsaremos varias veces sobre la opción Número de compilación y nos aparecerá un mensaje anunciando que ya somos un desarrollador.

Programación de Aplicaciones DistribuidasPágina 33

Page 34: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Volveremos atrás y veremos que ha aparecido una nueva opción titulada “Opciones de Desarrollo”. Entraremos y marcaremos la opción “Depuración USB”. Le daremos a Aceptar en el mensaje que nos aparecerá. Y ya estamos.

Podremos activarlo o desactivarlo siempre que queramos repitiendo el mismo proceso.

Programación de Aplicaciones DistribuidasPágina 34

Page 35: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

App en ejecuciónProbada En un Motorola G con Sistema Operativo Android 5 .0.0 Lollipop

Logueo

Programación de Aplicaciones DistribuidasPágina 35

Page 36: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Menú principal

Programación de Aplicaciones DistribuidasPágina 36

Page 37: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Creación de Nuevo competidor

Programación de Aplicaciones DistribuidasPágina 37

Page 38: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Nuevo Producto

Programación de Aplicaciones DistribuidasPágina 38

Page 39: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Creación de nuevo usuario

Programación de Aplicaciones DistribuidasPágina 39

Page 40: App Chequeos de precios con Xamarín + Web Servicejsdelacruz.16mb.com/materialpad/finales/Final Xamarin... · Web viewEn visual Studio : Menu Archivo Nuevo Proyecto En ‘Plantillas’

App Chequeos de precios con Xamarín + Web Service

Confirmación de nuevo usuario creado

Programación de Aplicaciones DistribuidasPágina 40