Skip to content
academia.sh

Course Intermediate

UI Development with Jetpack Compose

Published Updated

By the end of this course

Start course

01

The Component Model

The interface as a function, state and remembering, state hoisting, the triggers and skip conditions of recomposition, lifecycle-bound side effects, immutability and stability.

  1. 01 Composable Functions A composable function takes data as parameters and adds nodes to the UI tree. Data travels down, up, deep, or outside the tree; the lesson classifies eight moves with a single rule.
  2. 02 State and Remembering A composable function keeps nothing from call to call; it ties the value to be kept to a node with remember. The lesson measures that state is tied to a node and the direction of the value that goes from its owner to its reader.
  3. 03 State Hoisting State hoisting moves state to the common ancestor of the composable functions that read and write it; the value goes down and the event goes up. The lesson measures the direction of the event that goes to the owner and how the height of the owner changes the number of moves.
  4. 04 Recomposition When state changes, the platform reruns the composable functions that read the change and skips those whose inputs did not change. The lesson measures the path a change takes from its owner to its reader and how deferring the read changes the direction.
  5. 05 Side Effects While building the tree, a composable function can also touch things outside the tree: it sends a request to a service, writes a log entry, subscribes to a listener. The lesson measures these moves and shows that all of them go in the same direction, outside.
  6. 06 Immutability and Stability If the platform knows whether a value changed, it can skip during recomposition. The lesson measures that a list modified in place and an event that produces a new list go in the same direction, up, but that only one of them is observed.

02

Layout and Components

Column, row and box layouts, order-dependent modifiers, constraint-based layout, lazy lists, prebuilt UI components, scaffold structure, navigation and routes, theme and typography, animations, accessibility and interoperating with the classic view system.

  1. 01 Basic Layouts Measuring which direction constraints, sizes and positions travel in the UI tree for column, row and box layouts.
  2. 02 Modifiers Measuring how the order of a modifier chain changes the final width, the area a background covers and the direction the constraint travels.
  3. 03 Constraint-Based Layout Measuring that the position of items anchored to a sibling is computed through the parent and that a direct move from sibling to sibling cannot be set up.
  4. 04 Lazy Lists Measuring how only visible rows enter the UI tree, how the scroll position travels up to its owner, and how data sent to a row that is not in the tree stays outside.
  5. 05 Prebuilt UI Components Measuring which direction the color a prebuilt component such as a button gives its content travels in the tree, and how wrapping the content in a layout changes that direction.
  6. 06 Scaffold Structure Measuring how the padding a screen scaffold gives its content travels down the tree, while content written into the scaffold's slot but reading the screen's state is fed along a deep path.
  7. 07 Navigation and Routes Measuring that a destination chosen by a route is not in the UI tree until navigation finishes, so the argument sent to it goes outside first and then down, and the result returned goes outside.
  8. 08 Theme and Typography Measuring how a theme provided at the root descends to the deep text in the tree, how the closest provider changes when a subtree provides its own theme, and how the direction changes with it.
  9. 09 Animations Measuring that an animation carries two moves: the target value goes down from the owner of the state, while the per-frame intermediate value comes from the frame clock outside the tree and reaches the node with an outside move.
  10. 10 Accessibility Measuring that the labels of children in the semantics tree go up to the merging ancestor, that the same direction holds for direct and indirect children, and that the merged label reaches the screen reader with an outside move.
  11. 11 The Classic View System Measuring the comparison of the classic view hierarchy with the declarative tree, the outside direction of data going to a wrapped view, and the move crossing the boundary of the two trees; the closing table of the course's seventeen lessons.

Final exam

UI Development with Jetpack Compose — Final Exam

In preparation

This course's question bank is not complete yet. The exam opens here automatically once enough questions are added.

Start typing to search.

↑↓ ↵ Esc navigate · open · close