Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Que he aprendido trabajando con Xamarín

Que he aprendido trabajando con Xamarín

Charla impartida en Programar es una mierda, en la que cuento lo que he aprendido tras unos meses trabajando con Xamarin.

More Decks by Azahara Fernández Guizán

Other Decks in Programming

Transcript

  1. QUE HE
    APRENDIDO
    TRABAJANDO
    CON XAMARIN
    Azahara Fernández Guizán

    View full-size slide

  2. ¿Quién soy?
    http://afaya.es/#/
    @afaya_tech
    @azahara_fergui
    Tecnólogues del montón - Afaya
    Azi Science and Tech

    View full-size slide

  3. Vas a ayudar con
    Xamarín

    View full-size slide

  4. ¿QUÉ ES
    XAMARÍN?
    Xamarin es una
    plataforma de código
    abierto para compilar
    aplicaciones modernas y
    con mejor rendimiento
    para iOS, Android y
    Windows con .NET.

    View full-size slide

  5. ¿Por qué se utiliza?
    ❖ Porque comparte hasta el 90% del código para Windows
    Phone, Android e iOS.
    ❖ Porque tiene una apariencia nativa.
    ❖ Porque proporciona acceso a la api de cada plataforma
    ❖ Porque usas C# (y xaml)
    ❖ Porque ofrece rentabilidad (¿¿??)

    View full-size slide

  6. ¿Cómo lo aprendí yo?

    View full-size slide

  7. ACOMPAÑAME EN
    ESTA HISTORIA DE
    DESCUBRIMIENTO

    View full-size slide

  8. Estructura del proyecto

    View full-size slide

  9. Vale, yo solo voy a tocar la parte común

    View full-size slide

  10. ¿ContentPage o ContentView?

    View full-size slide

  11. Esto está chupado
    Text="{Binding Value,
    StringFormat='The angle is {0:F0} degrees'}"

    View full-size slide

  12. Esto está chupado

    View full-size slide

  13. ¿Cómo comunico el xaml con el modelo?

    View full-size slide

  14. ¿Cómo comunico el xaml con el modelo?

    View full-size slide

  15. ¿Cómo comunico el xaml con el modelo?

    View full-size slide

  16. ¿Cómo comunico el xaml con el xaml.cs?

    View full-size slide

  17. ¿Cómo comunico el xaml con el xaml.cs?

    View full-size slide

  18. ¿Cómo comunico el xaml.cs con el modelo?

    View full-size slide

  19. Cuidado con las listas y el contexto

    View full-size slide

  20. ¿Por qué no crear un control sólo en xaml.cs?

    View full-size slide

  21. ¿Por qué no crear un control sólo en xaml.cs?

    View full-size slide

  22. ¿Por qué no crear un control sólo en xaml.cs?

    View full-size slide

  23. ¿Por qué no crear un control sólo en xaml.cs?

    View full-size slide

  24. ¿Por qué no crear un control sólo en xaml.cs?

    View full-size slide

  25. Voy a añadir estilos

    View full-size slide

  26. ¿Qué narices les pasa a las alturas?

    View full-size slide

  27. ¿No puedo usar css y ya?

    View full-size slide

  28. ¿Y cual es la mejor solución?

    View full-size slide

  29. Es que en iphone debería ser más pequeño

    View full-size slide

  30. ¿Cómo se que dispositivo se está usando?

    View full-size slide

  31. ¿Dónde añado las imágenes?

    View full-size slide

  32. ¡¡¡¡No se ve mi imagen!!!!

    View full-size slide

  33. ¡¡¡¡No se ve mi imagen!!!!

    View full-size slide

  34. Cuando sea falso me muestras esto

    View full-size slide

  35. Cuando sea falso me muestras esto

    View full-size slide

  36. Cuando sea falso me muestras esto

    View full-size slide

  37. Voy a añadir este scroll dentro de este scrollview

    View full-size slide

  38. Necesitamos
    que la app
    sea más
    bonita

    View full-size slide

  39. Necesito un efecto

    View full-size slide

  40. Necesito un efecto - iOS

    View full-size slide

  41. Necesito un efecto - Android

    View full-size slide

  42. Necesito un efecto - Android

    View full-size slide

  43. Necesito un gráfico
    Opción A
    Opción B
    Microcharts

    View full-size slide

  44. Google es tu amigo
    Un chat
    Un calendario

    View full-size slide

  45. App.xaml
    protected override void OnStart()
    {
    Console.WriteLine("OnStart");
    }
    protected override void OnSleep()
    {
    Console.WriteLine("OnSleep");
    }
    protected override void OnResume()
    {
    Console.WriteLine("OnResume");
    }
    Ciclo de vida de la app

    View full-size slide

  46. Cierra siempre las pantallas
    await Navigation.PushAsync( newPage(), false);
    await Navigation.PopAsync();

    View full-size slide

  47. Pero ¿qué cosas puedo controlar?

    View full-size slide

  48. ¿En serio esto es lo mejor que Microsoft puede hacer?

    View full-size slide

  49. ¿QUÉ HAGO SI
    ME PIDEN
    EMPEZAR EN
    XAMARÍN?

    View full-size slide