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

Workshop Jetpack Compose - Class 2

Workshop Jetpack Compose - Class 2

The presentation used for the compose workshop in DevHack.
Created by @facundomr

Avatar for Juan Guillermo Gómez Torres

Juan Guillermo Gómez Torres

November 27, 2020
Tweet

More Decks by Juan Guillermo Gómez Torres

Other Decks in Programming

Transcript

  1. Facundo Rodríguez Arceri ➢ Organizador en Android Devs Buenos Aires

    y GDG Buenos Aires ➢ Android Developer en Ring (Amazon) ➢ Docente e instructor ➢ Experiencia con Android desde 2011 ➢ @facundomr
  2. ¡Hoy programemos! ❖ Bienvenidos al día 2 del workshop. ❖

    Vamos con manos a la obra. ❖ Repasemos algunos @Composables usados hasta ahora. ➢ Surface ➢ Scaffold ➢ TopAppBar ➢ Text ➢ IconButton ➢ Icon ➢ Column ➢ Divider ➢ Card ➢ Row ➢ Image ➢ ...
  3. Otro repaso: Modifiers ❖ Se utilizan en casi todos los

    @Composables como forma de establecer una manera estándar de darles “estilo”. ❖ Por convención, debe ser el primer parámetro no-obligatorio de las @Composable, y tener por default el valor del object Modifier. ❖ El orden es importante: las llamadas encadenadas son aplicadas en el mismo orden en el que se llaman, y pueden modificar el resultado final.
  4. ❖ Todo nuevo proyecto creado con Compose ya tiene un

    Theme. En nuestro caso SouthAmericanQualifiersTheme. ❖ Jetpack Compose implementa Material Design a través de MaterialTheme, el cual es una librería “extra” a las mínimas e indispensables para utilizar Compose. ❖ MaterialTheme es un @Composable, y recibe colores, tipografías y formas. ❖ ¿Cómo agregar colores? Con extension propertys a Colors ❖ Para utilizar y modificar las tipografías del proyecto lo haremos a través de las clases Typography y TextSyle. Nuevo tema: ¡Themes!
  5. ❖ La anotación @Preview tiene algunos superpoderes… veamos su definición.

    ❖ name, group ❖ showBackground, backgroundColor ❖ widthDp, heightDp ❖ uiMode ❖ showDecoration, device @Preview
  6. ❖ @Composables que vienen en el paquete androidx.compose.material.* ❖ Resulta

    muy interesante, por ejemplo Scaffold. ❖ De manera sencilla nos permite, por ejemplo, definir bottomBar, topBar, floatingActionButtons, drawers, etc. @Composables de Material Design
  7. ❖ ¿De qué hablamos cuando hablamos del Estado de la

    aplicación? ❖ Flujo de datos unidireccional ➢ Simplifican la arquitectura. ➢ Top-down: Los @Composables reciben los objetos que renderizan. ➢ Bottom-up: Los eventos que ocurren en un @Composable son delegados a quien los invocó. ❖ Single source of truth. ❖ Estos patrones/soluciones atacan problemas complejos: facilidad para probar los componentes, encapsulamiento del estado, consistencia. ❖ ViewModels y LiveData: observeAsState Nuevo tema: ¡State!