Pragmatic AI Labs

Rust GUI From Zero

Pragmatic AI Labs

Rust GUI From Zero

Noah Gift

Instructor: Noah Gift

Included with Coursera Plus

Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

6 hours to complete
Flexible schedule
Learn at your own pace
Gain insight into a topic and learn the fundamentals.
Beginner level

Recommended experience

6 hours to complete
Flexible schedule
Learn at your own pace

What you'll learn

  • Build native desktop applications in Rust using iced, FLTK, GTK4, relm4, and egui on Kubuntu Linux

  • Develop a counter, calculator with unit tests, to-do list, Pong game, password generator, Simon Says, and quiz app in real-time recorded sessions

  • Choose the right Rust GUI framework for a project, persist state to disk with serde or rusqlite, and ship a working binary

Details to know

Shareable certificate

Add to your LinkedIn profile

Recently updated!

May 2026

Assessments

3 assignments

Taught in English

See how employees at top companies are mastering in-demand skills

 logos of Petrobras, TATA, Danone, Capgemini, P&G and L'Oreal

There are 10 modules in this course

Frame why a native Rust GUI is the right surface when the browser is the wrong one — offline-first ingestion, microsecond latency, and data that must never leave the machine. Read CSV and query SQLite from a desktop app, plot with egui_plot and plotters, and trace the state-message-update-view loop common to retained-mode frameworks.

What's included

2 videos5 readings1 assignment

Stand up a Kubuntu Rust development environment from scratch — install rustup and the toolchain, switch from Bash to Zsh, and configure Kate with an embedded terminal for tight edit/build cycles. Then implement the iced Sandbox trait to write a Hello World and a counter button that updates state in response to messages.

What's included

5 videos4 readings1 assignment

Build a 150-line iced calculator with a state struct, a message enum, and a view function — then add unit tests that exercise the calculator's update logic without launching a window. Walk through the core iced widgets (button, text, column, row, container) and modify each to extend the calculator's behavior.

What's included

4 videos2 readings

Extend the iced patterns from Week 3 into a list-driven application. Back the to-do list with a Vec of TodoItem values in state, wire up the iced text_input widget for new-item entry, and route per-row toggle and delete actions through the message enum so each item mutates independently.

What's included

1 video2 readings

Walk through the official FLTK Pong example, then extend it across four iterations: add a pause button that halts the game loop, a slider that varies paddle speed at runtime, and a high-score file written to disk between sessions. Each step is a concrete state-and-message extension to a working game.

What's included

4 videos2 readings

Build a GTK4 password generator using the gtk4 crate's ApplicationWindow, Entry, and Button widgets, with the rand crate generating random ASCII characters. Add a ToggleButton that flips the Entry's visibility property to mask or reveal the generated password.

What's included

2 videos2 readings

Build a Simon Says game with relm4 — a Rust GUI framework that layers an ELM-style Component trait on top of GTK4. Lay out four colored buttons in a 2 by 2 grid, then add a Vec of Color values as the sequence and a playback timer that lights each button in turn before the player has to repeat the pattern.

What's included

2 videos

Build a quiz application in egui — an immediate-mode framework where the entire UI is redrawn every frame from current state. Define a Question struct, run a frame-counted timer that ticks down each draw, and accumulate a score across a multi-question quiz with a restart flow at the end.

What's included

2 videos2 readings

Compare iced, egui, GTK4, FLTK, and relm4 head-to-head — ergonomics, platform reach, async story, theming. Add provable contracts to GUI state with the assert_invariant macro so impossible UI states fail loudly at runtime, then ship a release with cargo-dist for cross-platform binaries, Flatpak for sandboxed Linux, and AppImage for portable distribution.

What's included

1 video5 readings

A culminating practice assignment that synthesizes every framework and pattern from Weeks 1 through 9 into one shippable desktop application.

What's included

2 readings1 assignment

Instructor

Noah Gift
Pragmatic AI Labs
36 Courses2,532 learners

Offered by

Why people choose Coursera for their career

Felipe M.

Learner since 2018
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."

Jennifer J.

Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."

Larry W.

Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."

Chaitanya A.

"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Coursera Plus

Open new doors with Coursera Plus

Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription

Advance your career with an online degree

Earn a degree from world-class universities - 100% online

Join over 3,400 global companies that choose Coursera for Business

Upskill your employees to excel in the digital economy

Frequently asked questions