Introducci贸n a Xamarin

1

Todo lo que aprender谩s sobre Xamarin Forms

2

驴Qu茅 es Xamarin?

Instalaci贸n y configuraci贸n

3

Requerimientos de hardware y software

4

Introducci贸n a Instalaci贸n de Visual Studio .NET y Herramientas

5

Instalaci贸n de Visual Studio .NET en Windows

6

Instalaci贸n de Visual Studio .NET for Mac

7

Configuraci贸n de Xamarin para iOS

Fundamentos de Xamarin.Forms

8

Mi primera app con Xamarin.Forms

9

Xamarin.Forms vs. Xamarin cl谩sico

10

Estrategias para compartir c贸digo

Arquitectura de Xamarin.Forms

11

Anatom铆a de una aplicaci贸n

12

Arquitectura de Xamarin.Forms

Sistema de Propiedades Enlazables

13

Sistema de Propiedades Enlazables

14

Usando y creando Propiedades Enlazables

15

Propiedades Adjuntas

Manejo de Eventos

16

Manejo de eventos

17

Ciclo de vida

El Lenguaje XAML

18

驴Qu茅 es XAML?

19

Espacios de Nombres XML

20

Sintaxis de subelementos y de contenido

21

Extensiones de Marcado

22

Recursos

23

XAML compilado

Interfaz de Usuario

24

Contenedores

25

Controles comunes

26

Creaci贸n de controles personalizados

27

Estilos

28

Triggers en Estilos

29

Diccionarios Mezclados

30

Transformaciones y Animaciones

31

Navegaci贸n

32

DisplayAlert y DisplayActionSheet

33

MessagingCenter

Enlace de Datos

34

Enlace de Datos

35

Interfaces de notificaci贸n

36

La clase ObservableCollection<t>

37

Contexto de Enlace de Datos

38

Enlace entre elementos

39

Propiedad StringFormat

40

Plantillas de Datos

41

Convertidores de Valor

Comandos

42

驴Qu茅 son los Comandos?

43

Implementaci贸n b谩sica e implementaciones existentes

El Patr贸n de Dise帽o Model-View-ViewModel (MVVM)

44

Introducci贸n al patr贸n de dise帽o MVVM

45

驴Qu茅 es MVVM?

46

Componentes del Patr贸n

47

Proyecto: Pomodoro

48

App Pomodoro

49

Continuando con la app Pomodoro

50

Concluyendo nuestra app Pomodoro

A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de Xamarin.Forms

Curso de Xamarin.Forms

Rodrigo D铆az Concha

Rodrigo D铆az Concha

Concluyendo nuestra app Pomodoro

50/50
Recursos

Para finalizar el proyecto:

  • Creamos el ViewModel para el manejo de hist贸ricos
  • Serializamos y deserializamos los datos de cada pomodoro para guardarlos
  • Guardamos y cargamos datos en las propiedades de la aplicaci贸n
  • Inclu铆mos el Control Personalizado circular progress creado en el curso
  • Compilamos y ejecutamos la aplicaci贸n en un dispositivo f铆sico

Finalmente

Te invito a ampliar y mejorar las funcionalidades de este proyecto como: configurar el tiempo de la pausa larga, configurar el cambio de colores, animaciones cuando se termine un pomodoro, etc. etc. y poner en pr谩ctica todos los conceptos y buenas pr谩cticas vistos a lo largo de este curso.

Aportes 20

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Excelente curso, aunque creo que hay bastante para un curso mas avanzado ya que hay temas como SQLite y consumo de servicios rest y web que seria bastante interesante aprender.

Estaria bueno que suban siempre todo el codigo a GitHub para poder verlo mejor, es estresante tener que avanzar y retroceder para encontrar el fragmento de codigo que me interesa 鈥

Buen curso, esperamos el curso avanzo como ya mencionaron en alguna parte.

Tom茅 este curso para complementar los conocimientos adquiridos de mi XamarinCertifiedMobileDeveloper y pienso que el curso es muy bueno para asentar pilares s贸lidos de Xamarin.Forms, entend铆 bastantes cosas, me sorprendi贸. Compr茅 el libro del profesor tambi茅n y complementa perfectamente este curso con otros temas de suma importancia. 隆Felicidades al profesor Rodrigo D铆az Concha por el excelente curso, claramente esperamos el curso avanzado de Xamarin.Forms!

As铆 quedo el proyecto final
Gracias!
https://github.com/HenryJhavier-Dev/pomodoro

El curso estuvo excelente, 100 puntos. El maestro demostr贸 ser un experto en la materia y aparte un excelente mentor.

No carga en servidor C

驴Donde puedo descagar el proyecto para estudiar?

Rodrigo y Platzi gracias por el curso de Xamarin.Forms. Felicitaciones!!

Hola espero puedan ayudarme con este problema, tengo una aplicaci贸n construida con Xamarin forms pero en el emulador de IOS se cual sea el dispositivo la pantalla se muestra de esta manera, dejando espacios negros tanto en la parte superior como inferior, eh intentado hacer lo de SafeArea(que tengo entendido que es para dispositvos que tienen el notch). Pero al parecer no es eso, si me pudieran apoyar se los agradeceria mucho

Adjunto la captura.

Gracias Rodrigo por este esfuerzo por compartir tu experiencia. Gracias comunidad de Platzi. !!

Si el dispositivo se pone en reposo, el timer deja de contar. Interesante!

Muchas gracias @Rodrigo, me fue de mucha ayuda para iniciarme en el uso y buenas practicas de Xamarin y Xaml. Me queda mucho por investigar para lo que necesito y siento que aun estoy muy lejos. Si pudieras darme una gu铆a por donde seguir y que debo buscar para poder tener acceso a los sensores principalmente los de navegaci贸n, GPS, Acelerometro, Compas, Gir贸scopo como m铆nimo. y conectar a datos mediante canales a elecci贸n, BT, WiFi GSM. etc.
Muchas gracias

Estoy empezando a refactorizar esta AppPomodoro, como una aplicaci贸n de rutinas de entrenamientos, que maneja listas de alternaciones de distintos tipos de rutinas diferenciadas por color y tonos de sonidos beep que marcan transici贸n y ritmos y es capaz re calcular y aprender pero falta mucho para llegar a ese nivel.
[Ahora es algo asl:]
Ej, {13min; Trote suave ; ritmo de beep= 480ms; Color purpura claro}
(Correr es purpura intenso)y el ritmo es menor a a 170ms
Caminar y respirar es verde con ritmos superiores a 800ms hasta 3000 ms beep para el ritmo y tono de frecuencia e intensidad variable que gu铆a para la respiraci贸n.
Aplica para abdominales, pesas, nadar etc.
[Hay que trabajar mucho en la UI y el UX].
Pienso:
Hacerle que sincronice esas rutinas mediante los sensores por ej acelerometro, giroscopio y compas con ritmo
conectar con el control de velocidad de la maquina de correr por una placa IoT y tanto aparato o dispositivo que se le pueda desarrollar conectividad.
Me gustar铆a pronto poder guardar data en una plataforma tipo AWS o Azure.
Guardando todos los datos de sensores para una posterior anal铆tica con un entrenador o nosotros solos,
Cruzar estos datos de rendimientos con los datos de clima que pueda correlacionar con el GPS y la hora local as铆 tambi茅n con los datos de temperatura presi贸n y humedad en el dispositivo y como influye esto en anal铆tica predictiva para torneos y competencias para establecer estrategias asistidas por redes neuronales que corran en la nube. Tensor Flow nos da un abanico muy potente al respecto y sobre todo con un esfuerzo relativamente bajo para el valor de los resultados obtenidos.
Con peque帽as modificaciones se pueden reutilizar casi todos los modelos. por ejemplo en automovilismo y rally, Industria, Estudios, proyectos, gantt etc.
Busco programadores con ganas de emprender, en este momento estoy emprendiendo con una softfactory, sobran demandas y proyectos. Pero faltan programadores con o sin experiencia, me importa mucho mas el potencial y la capacidad de aprender, investigar y el hambre-placer por innovar, esto sobre un pasado brillante.
Me interesa gente con presente y con futuro.
Si hay potencial. toda inversi贸n que se haga en Platzi tiene muy buen retorno.

Excelente curso, gracias.

Excelente curso!! gracias.

Y el modelo donde quedo en todo esto. :( ya no fue MVVC fue VVC

validen si la propieda existe para este metodo por que si no les puede dar un error en android

<code>
 private void LoadConfiguredValues()
        {
            if (Application.Current.Properties.ContainsKey(Literals.PomodoroDuration))
            {
                pomodoroDuration = (int)Application.Current.Properties[Literals.PomodoroDuration];

            }
            if (Application.Current.Properties.ContainsKey(Literals.BreakDuration))
            {
                breakDuration = (int)Application.Current.Properties[Literals.BreakDuration];
                Duration = pomodoroDuration * 60;

            }else if (!Application.Current.Properties.ContainsKey(Literals.BreakDuration))
            {
                Duration = 0;
            }


        }

Ser铆a muy bueno un curso avanzado este profesor, explica muy bien.