Aplicaciones multi plataforma con MVVMCross y Xamarin: Android

Para finalizar con esta serie de artículos. Vamos con la siguiente opción de aplicación, en esta ocasión iremos con Android. En el caso de Android puedes utiliar obviamente Xamarin Studio pero en este ejercicio vamos a hacerlo con Visual Studio por las siguientes ventajas.

Puedes integrar el proyecto de Android a tus demás proyectos hechos.

Puedes agregar referencias de los demás proyectos y desde NuGet sin problemas.

Puedes trabajar de una manera más cómoda y ejecutar en un dispositivo sin mayores problemas.

Una vez vistas las ventajas entonces podemos comenzar a trabajar. Primero crea un nuevo proyecto de Android.

image

Ya que lo tengas listo. Comienza por eliminar la clase Activity1.cs y dentro de las carpetas Resources>Layout elimina también Main.axml. Después de eso debes hacer lo mismo que en los dos ejercicios anteriores, primero agregar la referencia a la PCL que ya tienes creada, después agregar tu paquete de NuGet, el mismo de las ocasiones anteriores, como se ve en la imagen.

image

Hasta este punto, tu proyecto debe lucir de la siguiente manera.

image

Ahora, abre y modifica de manera correcta el método CreateApp de Setup.cs

protected override IMvxApplication CreateApp()
{
return new FirstDemoPCL.App();
}

Abre tu archivo FirstView.axml, en el caso de las aplicaciones Android, este funciona como la capa de vista de la aplicación. Coloca el siguiente código.

<?xml version="1.0" encoding="utf-8"?&gt;
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="40dp"
local:MvxBind="Text FirstName" />
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="40dp"
local:MvxBind="Text LastName" />
<extView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="40dp"
local:MvxBind="Text FullName" />
</LinearLayout>

Hay algo sumamente interesante aquí, como puedes ver, hay un espacio de nombres llamado local que hace referencia a los ensamblados agregados y esto te permite utilizar ¡enlazado de datos en Android! Casi como lo haces en XAML, para poder hacerlo utilizas justamente MVVM Cross con la sentencia.

local:MvxBind="Text LastName"

Esto hace que mantengas presente la gran ventaja que te da poder trabajar con este framework.

Bueno, hasta aquí, si ejecutas tu aplicación el resultado será el mismo que en los ejemplos anteriores. Aquí tienes una imagen de como lucen los tres dispositivos de cada una de las plataformas mencionadas a lo largo de estos ejemplos.

WP_20140401_002

Si no has leído los artículos anteriores, aquí tienes un enlace a cada uno de ellos.

Aplicaciones multi plataforma con MVVM Cross y Xamarin: Introducción

Desarrollo de la aplicación Windows Phone

Desarrollo de la aplicación Windows Store

8 Comments

  • Pingback: Aplicaciones multi plataforma con MVVMCross y Xamarin | El blog de Kañaz

  • Pingback: Aplicaciones multi plataforma con MVVMCross y Xamarin: Windows Store App | El blog de Kañaz

  • Pingback: Aplicaciones multi plataforma con MVVMCross y Xamarin: Windows Phone 8 | El blog de Kañaz

  • Vladimir
    4 marzo, 2015 - 7:18 pm | Permalink

    Hola Amin, realice tu curso de Introducción a Xamarin en MVA, pero ahora quiero colocar algunas cosas en practica y ya me di mi primer tropiezo iniciando, cuando me voy a references de mi clase portable y quiero agregar y en este caso instalar MvvmCross me genera el siguiente error:

    Intentando resolver la dependencia ‘MvvmCross.HotTuna.StarterPack (≥ 3.5.0)’.
    Intentando resolver la dependencia ‘MvvmCross.HotTuna.MvvmCrossLibraries (≥ 3.5.0)’.
    Intentando resolver la dependencia ‘MvvmCross.HotTuna.CrossCore (≥ 3.5.0)’.
    Intentando resolver la dependencia ‘MvvmCross.PortableSupport (≥ 3.5.0)’.
    Instalando ‘MvvmCross.PortableSupport 3.5.0’.
    ‘MvvmCross.PortableSupport 3.5.0’ se instaló correctamente.
    Instalando ‘MvvmCross.HotTuna.CrossCore 3.5.0’.
    ‘MvvmCross.HotTuna.CrossCore 3.5.0’ se instaló correctamente.
    Instalando ‘MvvmCross.HotTuna.MvvmCrossLibraries 3.5.0’.
    ‘MvvmCross.HotTuna.MvvmCrossLibraries 3.5.0’ se instaló correctamente.
    Instalando ‘MvvmCross.HotTuna.StarterPack 3.5.0’.
    ‘MvvmCross.HotTuna.StarterPack 3.5.0’ se instaló correctamente.
    Instalando ‘MvvmCross 3.5.0’.
    ‘MvvmCross 3.5.0’ se instaló correctamente.
    Agregando ‘MvvmCross.PortableSupport 3.5.0’ a PCLBERA.
    Desinstalando ‘MvvmCross.PortableSupport 3.5.0’.
    ‘MvvmCross.PortableSupport 3.5.0’ se desinstaló correctamente.
    Error en la instalación. Revirtiendo…
    No se pudo instalar el paquete ‘MvvmCross.PortableSupport 3.5.0’. Está intentando instalar este paquete en un proyecto que tiene ‘portable-net45+sl50+MonoAndroid10+Xamarin.iOS10+MonoTouch10’ como destino, pero el paquete no contiene referencias de ensamblado o archivos de contenido compatibles con dicho marco. Para obtener más información, póngase en contacto con el autor del paquete.

    Espero me logres ayudar Amin, Saludos!!

    • Amin Espinoza
      4 marzo, 2015 - 9:06 pm | Permalink

      Es sencillo, Vladimir, tienes ensamblados de versiones diferentes. Dime que versión de .net estás usando.

      • Vladimir
        5 marzo, 2015 - 1:32 pm | Permalink

        Microsoft Visual Studio Ultimate 2012
        Versión 11.0.61030.00 Update 4
        Microsoft .NET Framework
        Versión 4.5.51209

        Versión instalada: Ultimate

        Architecture and Modeling Tools 04940-004-0038003-02688
        Herramientas de arquitectura y modelado de Microsoft

        UML® y Unified Modeling Language™ son marcas comerciales o marcas registradas de Object Management Group, Inc. en Estados Unidos y otros países.

        Corrector ortográfico de Análisis de código de Visual Studio 2012 04940-004-0038003-02688
        Corrector ortográfico de Análisis de código de Microsoft® Visual Studio® 2012

        Partes de International CorrectSpell™ spelling correction system © 1993 por Lernout & Hauspie Speech Products N.V. Reservados todos los derechos.

        The American Heritage® Dictionary of the English Language, Third Edition Copyright © 1992 Houghton Mifflin Company. Versión electrónica bajo licencia de Lernout & Hauspie Speech Products N.V. Todos los derechos reservados.

        LightSwitch para Visual Studio 2012 04940-004-0038003-02688
        Microsoft LightSwitch para Visual Studio 2012

        Office Developer Tools 04940-004-0038003-02688
        Microsoft Office Developer Tools

        Team Explorer para Visual Studio 2012 04940-004-0038003-02688
        Microsoft Team Explorer para Visual Studio 2012

        Visual Basic 2012 04940-004-0038003-02688
        Microsoft Visual Basic 2012

        Visual C# 2012 04940-004-0038003-02688
        Microsoft Visual C# 2012

        Visual C++ 2012 04940-004-0038003-02688
        Microsoft Visual C++ 2012

        Visual F# 2012 04940-004-0038003-02688
        Microsoft Visual F# 2012

        Visual Studio 2012 SharePoint Developer Tools 04940-004-0038003-02688
        Microsoft Visual Studio 2012 SharePoint Developer Tools

        Administrador de paquetes NuGet 2.6.40627.9000
        Administrador de paquetes NuGet en Visual Studio. Para obtener más información acerca de NuGet, visite http://docs.nuget.org/.

        ASP.NET and Web Tools 2012.3.41009
        Microsoft Web Developer Tools contains the following components:
        Support for creating and opening ASP.NET web projects
        Browser Link: A communication channel between Visual Studio and browsers
        Editor extensions for HTML, CSS, and JavaScript
        Page Inspector: Inspection tool for ASP.NET web projects
        Scaffolding: A framework for building and running code generators
        Server Explorer extensions for Windows Azure Web Sites
        Web publishing: Extensions for publishing ASP.NET web projects to hosting providers, on-premises servers, or Windows Azure

        PreEmptive Analytics Visualizer 1.0
        Extensión de Microsoft Visual Studio para visualizar los resúmenes agregados desde el producto PreEmptive Analytics.

        SQL Server Data Tools 11.1.20627.00
        Microsoft SQL Server Data Tools

        Xamarin 3.9.302.0 (80f4e84)
        Visual Studio extension to enable development for Xamarin.iOS and Xamarin.Android.

        Xamarin.Android 4.20.0.34 (49a04b966feb40dfdba49d57ba16249b66d606a6)
        Visual Studio plugin to enable development for Xamarin.Android.

        Xamarin.iOS 8.6.1.0 (3b3ef438017c7ecf486defa9e01567a5f2b3cb2a)
        Visual Studio extension to enable development for Xamarin.iOS.

        Xamarin.iOS Unified Migration 1.0
        Automated migration for Xamarin iOS Classic projects to Unified

  • Octavio
    24 agosto, 2015 - 7:13 pm | Permalink

    Me pasa igual que a Vladimir

    • Amin Espinoza
      30 noviembre, 2015 - 11:01 pm | Permalink

      Sucede que apenas actualizaron sus referencias (ellos, el equipo que hace MVVVM Cross) quizá ahora ya debe ser posible

  • Deja un comentario

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    This blog is kept spam free by WP-SpamFree.