BaseCodeByte
UI

UI Frameworks Lessons

Build modern UIs with React, Vue, Angular, Svelte, jQuery UI, Bootstrap and more.

Course outline

Tracks and lessons

Track 01intermediate

React

The world's most popular library for building user interfaces. Created by Facebook, React uses a component-based model and virtual DOM.

01What is React?React Overview React (also called React.js) is an open-source JavaScript library for building user interfaces, maintained by Meta. Components — the building blocks. Everything is a component. Virtual DOM — React keeps an in-memory representation of. beginner

React Overview React (also called React.js) is an open-source JavaScript library for building user interfaces, maintained by Meta. Components — the building blocks. Everything is a component. Virtual DOM — React keeps an in-memory representation of.

Example
// Create a new React app (Vite recommended)
npm create vite@latest my-app -- --template react
cd my-app && npm install && npm run dev

// Or with Create React App (legacy)
npx create-react-app my-app
Quiz

React was created by:

What is JSX?

What does the React Virtual DOM help with?

02Components & PropsReact Components & Props Everything in React is a component — a reusable, self-contained piece of UI. Components accept props (properties) as inputs and return JSX. Function Components // Simple component function Greeting({ name }) { return <h1&gbeginner

React Components & Props Everything in React is a component — a reusable, self-contained piece of UI. Components accept props (properties) as inputs and return JSX. Function Components // Simple component function Greeting({ name }) { return <h1&g

Example
// Simple component
function Greeting({ name }) {
  return <h1>Hello, {name}!</h1>;
}

// Usage
<Greeting name="Alice" />
Quiz

What are React props?

Which is the correct way to pass a prop?

What prop allows you to pass children between component tags?

03State & useState HookReact State & useState While props are read-only inputs, state is data that changes over time inside a component. React. import { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); // initial value = 0 return ( &lt;dintermediate

React State & useState While props are read-only inputs, state is data that changes over time inside a component. React. import { useState } from 'react'; function Counter() { const [count, setCount] = useState(0); // initial value = 0 return ( &lt;d

Example
import { useState } from 'react';

function Counter() {
  const [count, setCount] = useState(0); // initial value = 0

  return (
    <div>
      <p>Count: {count}</p>
      <button onClick={() => setCount(count + 1)}>+</button>
      <button onClick={() => setCount(count - 1)}>-</button>
      <button onClick={() => setCount(0)}>Reset</button>
    </div>
  );
}
Quiz

useState returns what?

How should you update a state array to add an item?

When does React re-render a component?

04useEffect & EventsuseEffect & Event Handling useEffect Hook useEffect runs side effects after render — data fetching, subscriptions, DOM manipulation. import { useState, useEffect } from 'react'; function UserProfile({ userId }) { const [user, setUser] = useState(nulladvanced

useEffect & Event Handling useEffect Hook useEffect runs side effects after render — data fetching, subscriptions, DOM manipulation. import { useState, useEffect } from 'react'; function UserProfile({ userId }) { const [user, setUser] = useState(null

Example
import { useState, useEffect } from 'react';

function UserProfile({ userId }) {
  const [user, setUser] = useState(null);

  // Runs after every render where userId changed
  useEffect(() => {
    fetch(`/api/users/${userId}`)
      .then(r => r.json())
      .then(data => setUser(data));

    // Cleanup function (runs before next effect or unmount)
    return () => {
      // Cancel requests, clear timers, unsubscribe
    };
  }, [userId]); // dependency array

  if (!user) return <p>Loading...</p>;
  return <p>{user.name}</p>;
}
Quiz

An empty dependency array [] in useEffect means:

What is the function returned from useEffect for?

How do you prevent form default browser submission in React?

Track 02beginner

Vue.js

The progressive JavaScript framework for building user interfaces. Vue is approachable, versatile, and performant.

01Vue.js IntroductionWhat is Vue.js? Vue.js (pronounced "view") was created by Evan You in 2014. It's a progressive framework — you. &lt;!-- CDN (quick start) --&gt; &lt;script src="https://unpkg.com/vue@3/dist/vue.global.js"&gt;&lt;/script&gt; &lt;!-- Or with Vite --&gtbeginner

What is Vue.js? Vue.js (pronounced "view") was created by Evan You in 2014. It's a progressive framework — you. &lt;!-- CDN (quick start) --&gt; &lt;script src="https://unpkg.com/vue@3/dist/vue.global.js"&gt;&lt;/script&gt; &lt;!-- Or with Vite --&gt

Example
<!-- CDN (quick start) -->
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>

<!-- Or with Vite -->
npm create vite@latest my-vue-app -- --template vue
cd my-vue-app && npm install && npm run dev
Quiz

What does v-model do in Vue?

What is the Vue 3 Composition API function to make a primitive reactive?

Which Vue directive renders a list?

02Components & ReactivityVue Components & Reactivity Single File Components (SFC) &lt;!-- Button.vue --&gt; &lt;template&gt; &lt;button :class="['btn', `btn-${variant}`]" @click="$emit('click')"&gt; {{ label }} &lt;/button&gt; &lt;/template&gt; &lt;script setup&gt; defineProbeginner

Vue Components & Reactivity Single File Components (SFC) &lt;!-- Button.vue --&gt; &lt;template&gt; &lt;button :class="['btn', `btn-${variant}`]" @click="$emit('click')"&gt; {{ label }} &lt;/button&gt; &lt;/template&gt; &lt;script setup&gt; definePro

Example
<!-- Button.vue -->
<template>
  <button :class="['btn', `btn-${variant}`]" @click="$emit('click')">
    {{ label }}
  </button>
</template>

<script setup>
defineProps({ label: String, variant: { type: String, default: 'primary' } });
defineEmits(['click']);
</script>

<style scoped>
.btn { padding: 8px 16px; border-radius: 6px; }
.btn-primary { background: #42B883; color: white; }
</style>
Quiz

What is a Vue Single File Component (.vue)?

How does a child component communicate with parent in Vue?

Which hook runs after a Vue component is added to the DOM?

03Vue Router & StateVue Router & State Management import { createRouter, createWebHistory } from 'vue-router'; import Home from './views/Home.vue'; import About from './views/About.vue'; import User from './views/User.vue'; const router = createRouter({ history: createWintermediate

Vue Router & State Management import { createRouter, createWebHistory } from 'vue-router'; import Home from './views/Home.vue'; import About from './views/About.vue'; import User from './views/User.vue'; const router = createRouter({ history: createW

Example
import { createRouter, createWebHistory } from 'vue-router';
import Home from './views/Home.vue';
import About from './views/About.vue';
import User from './views/User.vue';

const router = createRouter({
  history: createWebHistory(),
  routes: [
    { path: '/',          component: Home },
    { path: '/about',     component: About },
    { path: '/user/:id',  component: User },  // dynamic segment
    { path: '/:pathMatch(.*)*', component: NotFound }, // 404
  ]
});

// In App.vue
// <router-view />  ← where matched component renders
// <router-link to="/about">About</router-link>
Quiz

What component does Vue Router use to render the matched view?

How do you access URL params in Vue Router (Composition API)?

What is Pinia used for in Vue?

Track 03advanced

Angular (platform)

Google's platform for building scalable enterprise web applications with TypeScript, dependency injection, and a full opinionated framework.

01Angular Overview & CLIAngular Overview Angular (not AngularJS) is a complete application framework by Google, released in 2016. It's written in. npm install -g @angular/cli ng new my-app cd my-app && ng serve # Generate components, services, modules ng generate component beginner

Angular Overview Angular (not AngularJS) is a complete application framework by Google, released in 2016. It's written in. npm install -g @angular/cli ng new my-app cd my-app && ng serve # Generate components, services, modules ng generate component

Example
ng new app
ng generate component dashboard
ng generate service api
Quiz

Which decorator marks an Angular class as a component?

What CLI command creates a new Angular component?

In Angular templates, what does (click)="method()" do?

02Services & Dependency InjectionServices & Dependency Injection Angular's DI system lets you create shared services that are injected into components automatically. Services handle. import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; imporbeginner

Services & Dependency Injection Angular's DI system lets you create shared services that are injected into components automatically. Services handle. import { Injectable } from '@angular/core'; import { HttpClient } from '@angular/common/http'; impor

Example
constructor(private api: ApiService) {}
Quiz

What does providedIn: "root" mean in @Injectable?

What is an Observable in Angular/RxJS?

Where does Angular perform DI?

03Forms & RoutingAngular Forms & Routing import { FormBuilder, Validators } from '@angular/forms'; @Component({ ... }) export class LoginForm { form = this.fb.group({ email: ['', [Validators.required, Validators.email]], password: ['', [Validators.required, Validatorintermediate

Angular Forms & Routing import { FormBuilder, Validators } from '@angular/forms'; @Component({ ... }) export class LoginForm { form = this.fb.group({ email: ['', [Validators.required, Validators.email]], password: ['', [Validators.required, Validator

Example
import { FormBuilder, Validators } from '@angular/forms';

@Component({ ... })
export class LoginForm {
  form = this.fb.group({
    email:    ['', [Validators.required, Validators.email]],
    password: ['', [Validators.required, Validators.minLength(8)]]
  });

  constructor(private fb: FormBuilder) {}

  onSubmit() {
    if (this.form.valid) {
      console.log(this.form.value); // { email, password }
    }
  }
}

// Template
// <form [formGroup]="form" (ngSubmit)="onSubmit()">
//   <input formControlName="email" />
//   <span *ngIf="form.get('email')?.invalid">Invalid email</span>
//   <button type="submit">Login</button>
// </form>
Quiz

What module provides reactive forms in Angular?

What does lazy loading in Angular Router do?

How do you access route params in Angular?

Track 04beginner

Svelte

The compiler-based framework that writes no virtual DOM — Svelte compiles your components to.

01Svelte IntroductionWhat is Svelte? Svelte was created by Rich Harris in 2016. Unlike React or Vue, Svelte is a compiler. No runtime framework code (just your app) No virtual DOM diffing npm create svelte@latest my-app cd my-app && npm install && npm run devbeginner

What is Svelte? Svelte was created by Rich Harris in 2016. Unlike React or Vue, Svelte is a compiler. No runtime framework code (just your app) No virtual DOM diffing npm create svelte@latest my-app cd my-app && npm install && npm run dev

Example
npm create svelte@latest my-app
cd my-app && npm install && npm run dev
Quiz

What makes Svelte fundamentally different from React/Vue?

What does $: in Svelte mean?

How do you bind a variable to an input in Svelte?

02Stores & LifecycleSvelte Stores & Lifecycle Stores — Shared Reactive State // stores.js import { writable, readable, derived } from 'svelte/store'; export const count = writable(0); export const name = writable('World'); // Derived store (like computed) export const gintermediate

Svelte Stores & Lifecycle Stores — Shared Reactive State // stores.js import { writable, readable, derived } from 'svelte/store'; export const count = writable(0); export const name = writable('World'); // Derived store (like computed) export const g

Example
// stores.js
import { writable, readable, derived } from 'svelte/store';

export const count = writable(0);
export const name  = writable('World');

// Derived store (like computed)
export const greeting = derived(name, $name => `Hello, ${$name}!`);

// In component — $ auto-subscribes and unsubscribes
<script>
  import { count, greeting } from './stores.js';
</script>

<p>{$greeting}</p>
<button on:click={() => $count++}>{$count}</button>
Quiz

What does the $ prefix do when using a Svelte store in a component?

Which Svelte function runs when a component is added to the DOM?

Which store type is read-only and for external data sources?

Track 05beginner

jQuery UI

A curated set of user interface interactions, effects, widgets, and themes built on jQuery.

01jQuery UI OverviewjQuery UI jQuery UI extends jQuery with UI interactions (drag, drop, resize, select, sort), widgets (datepicker, dialog, tabs. &lt;link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css"&gt; &lt;script src="https://cobeginner

jQuery UI jQuery UI extends jQuery with UI interactions (drag, drop, resize, select, sort), widgets (datepicker, dialog, tabs. &lt;link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css"&gt; &lt;script src="https://co

Example
<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.2/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://code.jquery.com/ui/1.13.2/jquery-ui.min.js"></script>
Quiz

Which jQuery UI feature lets users drag elements in a list to reorder them?

What does .draggable({ axis: "x" }) do?

Which CSS file must you include for jQuery UI widgets to look correct?

02Widgets & EffectsjQuery UI Widgets & Effects $('#accordion').accordion({ active: 0, // open first panel collapsible: true });intermediate

jQuery UI Widgets & Effects $('#accordion').accordion({ active: 0, // open first panel collapsible: true });

Example
$('#accordion').accordion({
  active: 0,      // open first panel
  collapsible: true
});
Quiz

Which widget creates collapsible content panels with headers?

How do you open a jQuery UI dialog programmatically?

What does collapsible: true do in the accordion widget?

Track 06beginner

Bootstrap JS

Bootstrap's JavaScript plugins power modals, tooltips, dropdowns, carousels, and more — now built as ES modules with zero jQuery dependency.

01Bootstrap JS OverviewBootstrap JavaScript Components Bootstrap 5 ships its own JavaScript plugins as ES modules (no jQuery!). Each component — Modal. &lt;!-- CDN --&gt; &lt;link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheebeginner

Bootstrap JavaScript Components Bootstrap 5 ships its own JavaScript plugins as ES modules (no jQuery!). Each component — Modal. &lt;!-- CDN --&gt; &lt;link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="styleshee

Example
<!-- CDN -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>

<!-- Or via npm -->
npm install bootstrap
import 'bootstrap';
Quiz

Bootstrap 5 JavaScript requires which library?

Which data attribute triggers a Bootstrap modal?

Which Bootstrap class adds fade animation to a modal?

02Tooltips, Toasts & EventsTooltips, Toasts, Popovers & Events // Initialize all tooltips const tooltipEls = document.querySelectorAll('[data-bs-toggle="tooltip"]'); [...tooltipEls].map(el => new bootstrap.Tooltip(el)); // Or single: const tip = new bootstrap.Tooltip('#btn', {intermediate

Tooltips, Toasts, Popovers & Events // Initialize all tooltips const tooltipEls = document.querySelectorAll('[data-bs-toggle="tooltip"]'); [...tooltipEls].map(el => new bootstrap.Tooltip(el)); // Or single: const tip = new bootstrap.Tooltip('#btn', {

Example
// Initialize all tooltips
const tooltipEls = document.querySelectorAll('[data-bs-toggle="tooltip"]');
[...tooltipEls].map(el => new bootstrap.Tooltip(el));

// Or single:
const tip = new bootstrap.Tooltip('#btn', { placement: 'top', title: 'Save changes' });
tip.show(); tip.hide(); tip.dispose();
Quiz

Why do Bootstrap tooltips require manual initialization?

What event fires when a Bootstrap modal is FULLY hidden?

What option sets auto-hide delay on a Bootstrap Toast?

Track 07beginner

Foundation (ZURB)

ZURB Foundation — a responsive front-end framework with accessible UI components and a powerful.

01Foundation OverviewZURB Foundation Foundation is an enterprise-grade responsive framework by ZURB. It's known for its accessibility, flexible grid (XY. &lt;!-- CDN --&gt; &lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/foundation-sites@6.8.1/dist/css/foundbeginner

ZURB Foundation Foundation is an enterprise-grade responsive framework by ZURB. It's known for its accessibility, flexible grid (XY. &lt;!-- CDN --&gt; &lt;link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/foundation-sites@6.8.1/dist/css/found

Example
<!-- CDN -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/foundation-sites@6.8.1/dist/css/foundation.min.css">
<script src="https://cdn.jsdelivr.net/npm/foundation-sites@6.8.1/dist/js/foundation.min.js"></script>
<script>$(document).foundation();</script>
Quiz

How do you initialize all Foundation plugins automatically?

Which Foundation component is equivalent to a modal dialog?

Foundation XY Grid uses which class for a column?

02Foundation JS PluginsFoundation JS Plugins &lt;div class="orbit" role="region" data-orbit&gt; &lt;ul class="orbit-container"&gt; &lt;li class="orbit-slide"&gt;&lt;img src="img1.jpg"&gt;&lt;/li&gt; &lt;li class="orbit-slide"&gt;&lt;img src="img2.jpg"&gt;&lt;/li&gt; &lt;/uintermediate

Foundation JS Plugins &lt;div class="orbit" role="region" data-orbit&gt; &lt;ul class="orbit-container"&gt; &lt;li class="orbit-slide"&gt;&lt;img src="img1.jpg"&gt;&lt;/li&gt; &lt;li class="orbit-slide"&gt;&lt;img src="img2.jpg"&gt;&lt;/li&gt; &lt;/u

Example
<div class="orbit" role="region" data-orbit>
  <ul class="orbit-container">
    <li class="orbit-slide"><img src="img1.jpg"></li>
    <li class="orbit-slide"><img src="img2.jpg"></li>
  </ul>
  <nav class="orbit-bullets">
    <button class="is-active" data-slide="0"></button>
    <button data-slide="1"></button>
  </nav>
</div>
Quiz

What Foundation component makes multiple columns equal height?

Which Foundation plugin creates an image/content slideshow?

What is Motion UI in Foundation?

Track 08advanced

Ext JS (Sencha)

Sencha Ext JS — a comprehensive enterprise JavaScript framework for building data-intensive, desktop-class web.

01Ext JS OverviewSencha Ext JS Ext JS is a full-stack enterprise application framework by Sencha. It includes 140+ high-performance UI components. // Download from sencha.com or use npm (requires license) npm install @sencha/ext-modern-runtime // Or use open-source Gbeginner

Sencha Ext JS Ext JS is a full-stack enterprise application framework by Sencha. It includes 140+ high-performance UI components. // Download from sencha.com or use npm (requires license) npm install @sencha/ext-modern-runtime // Or use open-source G

Example
// Download from sencha.com or use npm (requires license)
npm install @sencha/ext-modern-runtime

// Or use open-source GPL version
Quiz

What is Ext JS's data store (Ext.data.Store) used for?

Which config option in Ext JS specifies the component type?

Ext JS is primarily designed for which use case?

02MVC & Data BindingExt JS MVC Pattern Ext.define('MyApp.model.User', { extend: 'Ext.data.Model', fields: [ { name: 'id', type: 'int' }, { name: 'name', type: 'string' }, { name: 'email', type: 'string' }, { name: 'age', type: 'int' } ], validators: { name: 'presence', intermediate

Ext JS MVC Pattern Ext.define('MyApp.model.User', { extend: 'Ext.data.Model', fields: [ { name: 'id', type: 'int' }, { name: 'name', type: 'string' }, { name: 'email', type: 'string' }, { name: 'age', type: 'int' } ], validators: { name: 'presence',

Example
Ext.define('MyApp.model.User', {
  extend: 'Ext.data.Model',
  fields: [
    { name: 'id',    type: 'int' },
    { name: 'name',  type: 'string' },
    { name: 'email', type: 'string' },
    { name: 'age',   type: 'int' }
  ],
  validators: {
    name:  'presence',
    email: 'email'
  },
  proxy: {
    type: 'rest',
    url:  '/api/users'
  }
});
Quiz

What does Ext.define() do in Ext JS?

What is an Ext JS ViewModel used for?

Which proxy type loads data from a REST API in Ext JS?

Track 09intermediate

Webix

Webix — a JavaScript UI library with 100+ widgets for building complex data management.

01Webix OverviewWebix UI Library Webix is a JS UI library known for its spreadsheet, scheduler, gantt chart, file manager, and. &lt;link rel="stylesheet" href="https://cdn.webix.com/edge/webix.css"&gt; &lt;script src="https://cdn.webix.com/edge/webix.js"&gt;&lt;/scrbeginner

Webix UI Library Webix is a JS UI library known for its spreadsheet, scheduler, gantt chart, file manager, and. &lt;link rel="stylesheet" href="https://cdn.webix.com/edge/webix.css"&gt; &lt;script src="https://cdn.webix.com/edge/webix.js"&gt;&lt;/scr

Example
<link rel="stylesheet" href="https://cdn.webix.com/edge/webix.css">
<script src="https://cdn.webix.com/edge/webix.js"></script>
Quiz

How does Webix UI define layouts?

What is $$(id) in Webix?

Webix's most powerful data component for tabular data is?

02Data Binding & EventsWebix Data Binding & Events // From URL $$('myList').load('/api/contacts'); // Direct data $$('myList').parse([ { id: 1, name: 'Alice', email: 'alice@ex.com' }, { id: 2, name: 'Bob', email: 'bob@ex.com' } ]); // WebixDataCollection (shared data) consintermediate

Webix Data Binding & Events // From URL $$('myList').load('/api/contacts'); // Direct data $$('myList').parse([ { id: 1, name: 'Alice', email: 'alice@ex.com' }, { id: 2, name: 'Bob', email: 'bob@ex.com' } ]); // WebixDataCollection (shared data) cons

Example
// From URL
$$('myList').load('/api/contacts');

// Direct data
$$('myList').parse([
  { id: 1, name: 'Alice', email: 'alice@ex.com' },
  { id: 2, name: 'Bob',   email: 'bob@ex.com' }
]);

// WebixDataCollection (shared data)
const contacts = new webix.DataCollection({ url: '/api/contacts' });
$$('list').sync(contacts);
$$('form').bind(contacts);
Quiz

What does $$("list").sync(collection) do in Webix?

How do you get all form values in Webix?

What method attaches an event listener in Webix?

Track 10advanced

OpenUI5 (SAP)

SAP's open-source enterprise UI framework for building professional business applications with SAPUI5-compatible components and Fiori design.

01OpenUI5 OverviewOpenUI5 / SAPUI5 OpenUI5 (open-source) and SAPUI5 (SAP-licensed) are enterprise frameworks by SAP for building Fiori-style business applications. Used. &lt;script id="sap-ui-bootstrap" src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js" beginner

OpenUI5 / SAPUI5 OpenUI5 (open-source) and SAPUI5 (SAP-licensed) are enterprise frameworks by SAP for building Fiori-style business applications. Used. &lt;script id="sap-ui-bootstrap" src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"

Example
<script id="sap-ui-bootstrap"
  src="https://openui5.hana.ondemand.com/resources/sap-ui-core.js"
  data-sap-ui-theme="sap_horizon"
  data-sap-ui-libs="sap.m"
  data-sap-ui-compatVersion="edge"
  data-sap-ui-async="true">
</script>
Quiz

OpenUI5 is primarily created and maintained by:

What is the preferred view format in UI5?

What data binding syntax does UI5 use in XML views?

02UI5 Controls & ODataUI5 Controls & OData Integration // Button new sap.m.Button({ text: 'Save', type: 'Emphasized', press: () => {} }); // Input new sap.m.Input({ value: '{/name}', placeholder: 'Enter name' }); // Table new sap.m.Table({ columns: [ new sap.m.Column({ heintermediate

UI5 Controls & OData Integration // Button new sap.m.Button({ text: 'Save', type: 'Emphasized', press: () => {} }); // Input new sap.m.Input({ value: '{/name}', placeholder: 'Enter name' }); // Table new sap.m.Table({ columns: [ new sap.m.Column({ he

Example
// Button
new sap.m.Button({ text: 'Save', type: 'Emphasized', press: () => {} });

// Input
new sap.m.Input({ value: '{/name}', placeholder: 'Enter name' });

// Table
new sap.m.Table({
  columns: [
    new sap.m.Column({ header: new sap.m.Label({ text: 'Name' }) }),
    new sap.m.Column({ header: new sap.m.Label({ text: 'Status' }) })
  ],
  items: { path: '/orders', template:
    new sap.m.ColumnListItem({ cells: [
      new sap.m.Text({ text: '{name}' }),
      new sap.m.ObjectStatus({ text: '{status}', state: '{state}' })
    ]})
  }
});
Quiz

What is OData in the context of UI5?

Which UI5 library contains mobile-optimized controls (Button, List, Table)?

What is Fiori in SAP/UI5?