Specifications & UI Design

App Programming - Day 1

From Idea to Design

Learn to specify, design, and plan your application

What Apps Do You Use Every Day?

Think about the apps you opened this morning...

πŸ“Έ

Instagram

Share photos, stories, reels

πŸš—

Uber

Book rides, track drivers

πŸ—ΊοΈ

Google Maps

Navigate, explore places

🎡

Spotify

Stream music, playlists

Every app started as an idea. This week, YOUR idea becomes an app.

Your 5-Day Journey

From zero to a working application in one week

1
Design
Specs & UI
2
Build
First Web App
3
Your Project
Start Building
4
Develop
AI-Driven Dev
5
Present
Demo Day

Today: Day 1

  • Understand how apps are built
  • Write specifications
  • Design your app in Figma
  • Set up GitHub

By Friday

  • You will have built a real app
  • Deployed live on the internet
  • Present it to the class
  • No prior experience needed!
Guided project: Days 1-2, we all build the same app together — StudyPlanner, a task manager for students. Days 3-5, you build your own project!

Setting Up Antigravity

Your coding playground for today's exercises

Antigravity is a simple coding environment that runs in your browser. You will use it throughout the day to try small exercises and see code in action — no installation needed.

Setup (5 min)

What You Can Do

  • Write HTML, CSS, and JavaScript
  • See the result instantly in the preview
  • Ask the AI to generate code for you
  • Save and share your work

Quick Test

Type this in the editor and press Run:

<h1>Hello World!</h1>
<p>My name is [your name]</p>

If you see "Hello World!" in the preview, you are ready!

Keep this tab open! You will come back to Antigravity several times during the slides for small "Try It!" exercises.

The Browser: Your Window to the Web

You already use one every day - let's understand it

A browser is a program on your computer or phone that lets you visit websites. Chrome, Safari, Firefox, and Edge are all browsers. Right now, you are looking at this presentation in a browser.

Your Computer Browser (Chrome) β‘  Request The Internet Server A computer far away that stores the website β‘‘ Response: sends back HTML, CSS, JS, images β†’ browser displays the page

What is a URL?

The address you type to visit a website. Like a street address, but for the internet: https://www.google.com, https://github.com.

Try It! (2 min)

What is an Application?

Software that solves a problem for users

Website vs. Web App - What is the difference?

A website shows you information (like a newspaper). A web application lets you do things: create, edit, organize, share. Gmail is a web app (you compose emails). Wikipedia is a website (you read articles).

Web Apps

Run in your browser - no installation needed

Examples: Gmail, Notion, Google Docs, Netflix

Native Apps

Installed from App Store or Play Store

Examples: WhatsApp, Instagram, TikTok

Hybrid Apps

Web technology inside a native wrapper

Examples: Uber, Airbnb, Discord

Try It! (3 min)

Open your phone. Pick 3 apps. For each one, decide:

Anatomy of an App

Every application has three layers

πŸ‘€ User Frontend What the user sees Button 🍽️ The dining room HTML + CSS + JavaScript Backend The brain & logic βš™οΈ πŸ”§ βš™οΈ πŸ‘¨β€πŸ³ The kitchen Python, Java, Node.js Database The memory users, tasks, settings... πŸͺ The pantry SQL, JSON, MongoDB

Try It! (2 min)

Think of Instagram. Can you identify each layer?

How Apps Are Built

Code is only step 4 out of 6!

1
Idea
What problem?
2
Specs
What features?
3
Design
How it looks?
4
Build
Write code
5
Test
Does it work?
6
Deploy
Go live!
Surprise! Professional developers spend more time on steps 1-3 (planning) than on step 4 (coding). Good planning = less bugs, less rework, faster results.

Today we focus on steps 1, 2, and 3

The idea, the specifications, and the design. Tomorrow, we code!

What Are Specifications?

The blueprint before building

Definition

A specification (or "spec") is a detailed description of what your application should do, who it is for, and how it should behave. It answers: "What are we building and why?"

Without Specs

  • Everyone imagines something different
  • Constant changes and confusion
  • Missed features discovered too late
  • Wasted time and money

With Specs

  • Everyone agrees on what to build
  • Clear checklist of features
  • Problems found early (on paper!)
  • Faster development, fewer surprises

You would never build a house without blueprints. Why build an app without specifications?

User Stories

Describe features from the user's perspective

As a [type of user], I want to [perform an action], so that [I get a benefit].

The User Story Format

StudyPlanner Story 1

As a student, I want to create tasks with a due date, so that I can track my assignments.

StudyPlanner Story 2

As a student, I want to mark tasks as complete, so that I can see my progress.

StudyPlanner Story 3

As a student, I want to filter tasks by subject, so that I can focus on one course at a time.

Why user stories? They keep you focused on real people and real needs - not just cool features nobody asked for.

Try It! (3 min)

Think of Spotify. Write 2 user stories using the format above:

Good vs. Bad Specifications

Specificity is everything

Bad Specifications

  • "The app should be nice"
  • "Users can do stuff with tasks"
  • "It should work on phones"
  • "Make it fast"
  • "Add social features"

Problem: Vague, unmeasurable, open to interpretation

Good Specifications

  • "Students can create tasks with a title, due date, and priority level"
  • "Each task shows a checkbox to mark as complete"
  • "Tasks are sorted by due date, soonest first"
  • "Students can filter tasks by subject (Math, English, etc.)"
  • "The dashboard shows completion statistics"

Strength: Specific, testable, unambiguous

Test your spec: Can someone check a box "done" or "not done"? If yes, it is a good spec. If not, make it more specific.

What is UI/UX?

Two sides of the same coin

UI - User Interface

How the app looks

  • Colors, fonts, icons
  • Button shapes and sizes
  • Layout and spacing
  • Visual consistency

"Can I see it clearly?"

UX - User Experience

How the app feels

  • Is it easy to navigate?
  • Can I find what I need?
  • Does it respond quickly?
  • Is the flow logical?

"Can I use it easily?"

The Door Analogy

A beautiful glass door with no handle = great UI, terrible UX. A plain door that opens smoothly = simple UI, great UX. The best apps nail both.

4 Design Principles for Beginners

Follow these rules and your app will look professional

1

Consistency
Same colors, fonts, and button styles everywhere. Users should never feel "lost."

2

Simplicity
Remove everything unnecessary. If a screen feels cluttered, delete elements until it feels clear.

3

Visual Hierarchy
The most important thing should be the biggest and boldest. Guide the user's eye naturally.

4

Feedback
When a user clicks a button, something should happen visually. Never leave users wondering "did that work?"

Stitch AI

Generate app designs from text descriptions

Stitch is a free AI design tool by Google. You describe what you want in plain English, and it generates professional-looking screens in seconds. No design skills needed.

β‘ 

Describe

Tell Stitch what you want: "A student planner app with task list, checkboxes, due dates, and priority tags"

β‘‘

Generate

Stitch creates a professional design in seconds. It handles layout, spacing, and visual hierarchy for you.

β‘’

Export

Download your generated screens as images. You will import them into Figma for refinement.

Go to: stitch.withgoogle.com — sign in with your Google account to get started.

Demo: Designing with Stitch

Watch the teacher demonstrate, then try it yourself

Live Demo

Follow along step by step:

StudyPlanner Prompts to Try

"A clean task list page for a student planner app,
mobile-first design with checkboxes, task titles,
due dates, and colored priority tags."

"A task creation form with fields for title,
due date, subject dropdown, and priority level
selector. Modern minimal style."

"A dashboard showing upcoming deadlines, task
completion statistics, and a quick-add button.
Clean white design with blue accents."

From Stitch to Figma

Import your AI-generated designs and refine them

Figma is a free, browser-based design tool used by professional designers at Google, Microsoft, Uber, and Airbnb. You will import your Stitch AI screens into Figma to refine, customize, and share them.

β‘ 

Create

Sign up at figma.com (free) and create a new design file

β‘‘

Import

Drag and drop your Stitch exports into Figma as a starting point

β‘’

Refine

Adjust colors, text, and layout. Add missing elements, fix details, make it yours.

β‘£

Share

Generate a shareable link so your teacher and teammates can view your designs

Go to: figma.com and create a free account if you have not done so already.

Figma Key Concepts

The four building blocks you need to know

Frames

The "canvas" for each screen of your app. Think of frames as individual pages or screens.

Start with: iPhone 14 or Desktop frame

Components

Reusable elements like buttons, cards, or navigation bars. Change one, and all copies update.

Like templates for repeated items

Text

Add headings, paragraphs, labels. Choose fonts, sizes, and weights to create hierarchy.

Tip: use only 2-3 font sizes

Layers

Elements stack on top of each other. The layers panel shows the order and lets you organize.

Like sheets of transparent paper

Files & Folders on Your Computer

The building blocks of every project

Everything on your computer is stored as files inside folders. A photo, a Word document, a song, a web page — they are all files. Folders organize files, just like drawers in a filing cabinet.

What is a File?

A file is a single document stored on your computer. Every file has a name and an extension (the part after the dot) that tells the computer what type it is.

  • report.docx → Word document
  • photo.jpg → image
  • song.mp3 → audio
  • index.html → web page
  • style.css → design rules

What is a Folder?

A folder is a container that holds files and other folders. Folders can be nested inside each other, creating a tree structure.

Documents/
β”œβ”€β”€ School/
β”‚   β”œβ”€β”€ essay.docx
β”‚   └── notes.pdf
β”œβ”€β”€ Photos/
β”‚   └── vacation.jpg
└── Music/
    └── playlist.mp3

Try It! (2 min)

Open the File Explorer (Windows) or Finder (Mac) on your computer.

What is Code?

Instructions written in a language a computer can understand

Code is text that tells a computer exactly what to do — like a recipe tells a cook how to prepare a dish. It is written in plain text files (not Word, not PDF — just plain text), using a programming language.

β‘ 

You write instructions

"Display a blue button with the text Sign In"

β‘‘

Computer reads them

The browser interprets the code line by line

β‘’

Result appears

A blue "Sign In" button shows up on the screen

Good news: You will not write code by hand in this course. An AI assistant called Antigravity will write it for you based on your instructions in plain English. But you need to understand what code is to manage your project.

Try It! (2 min)

Programming Languages

Different languages for different jobs

Just like humans speak French, English, or Spanish, computers understand different programming languages. Each language is best at a specific task. For web apps, you need three:

HTML — Structure

Defines what is on the page: headings, paragraphs, buttons, images, links. Think of it as the skeleton of your page.

<h1>Welcome</h1>
<p>This is my app.</p>
<button>Sign In</button>

CSS — Design

Controls how things look: colors, fonts, spacing, layout. Think of it as the clothing and makeup.

button {
  background: blue;
  color: white;
  padding: 10px 20px;
}

JavaScript — Behavior

Makes things happen: click a button, show a message, load data. Think of it as the brain and muscles.

button.onclick = function() {
  alert("Hello!");
}
You do not need to memorize any of this. This is just so these words are not scary when you see them tomorrow. Antigravity will write all of it for you.

Try It! (3 min)

In Antigravity, paste this HTML and press Run to see your first web page:

<h1>My Study Planner</h1>
<p>Welcome to my app!</p>
<button>Add Task</button>

Vibe Coding: Let AI Write Code For You

The new way to build software — by describing what you want

Vibe coding means describing what you want in plain English and letting an AI assistant generate the code for you. Instead of learning to write code yourself, you learn to communicate clearly with an AI.

Your words become the code.

Traditional Coding

You learn a programming language (months/years), type every character by hand, debug errors yourself. Powerful, but very slow to start.

Vibe Coding (this week!)

You describe what you want in English, the AI generates the code, you review and refine. You become the director, the AI is the developer.

What is Prompt Engineering?

The skill of writing clear, precise instructions for an AI. The better your prompt, the better the result. This is the #1 skill you will practice this week. It is a bit like being a good manager: if you give vague instructions, you get vague results.

Good vs. Bad Prompts

The quality of your instructions determines the quality of the code

Bad Prompts

  • "Make me an app"
  • "Add a page"
  • "Make it look nice"
  • "Fix the bug"

Problem: Too vague. The AI has to guess what you want.

Good Prompts

  • "Create a task list page with a title, a list of tasks showing title and due date, and an add button"
  • "The button should be blue (#3B82F6), rounded corners, and say 'Add Task'"

Strength: Specific, detailed, visual.

Try It! (3 min)

Write a prompt for an AI to create the home page of your dream app. Be as specific as possible about colors, layout, and features. Share with your neighbor — can they picture exactly what you described?

What is a Software Project?

All the files that make up your app, organized in one folder

A Project = One Folder

A software project is simply a folder on your computer that contains all the files your app needs to work:

  • HTML files (structure)
  • CSS files (design)
  • JavaScript files (behavior)
  • Images, icons, fonts
  • Configuration files

A typical beginner project: 10-30 files.

Example Project

study-planner/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ app/
β”‚   β”‚   β”œβ”€β”€ page.tsx      (home page)
β”‚   β”‚   β”œβ”€β”€ tasks/
β”‚   β”‚   β”‚   └── page.tsx  (tasks page)
β”‚   β”‚   └── layout.tsx    (shared layout)
β”‚   └── styles/
β”‚       └── globals.css   (design)
β”œβ”€β”€ public/
β”‚   └── logo.png          (images)
β”œβ”€β”€ data/
β”‚   └── tasks.json        (data)
└── package.json          (config)
Key concept: When someone says "show me your project," they mean "show me this folder." When we put it on GitHub, we upload this entire folder.

Try It! (2 min)

What is "The Cloud"?

It is just someone else's computer

πŸ’» Your Laptop Files only you can see Laptop breaks = gone ⚠️ πŸ“¦ GitHub Stores your code online πŸš€ Vercel Runs your app for the world Anyone in the World πŸ‘© πŸ‘¨ πŸ‘©β€πŸ’» πŸ“± Visits your app URL from any browser deploys
This week: You push code to GitHub (backup + sharing) β†’ Vercel reads it and deploys your app β†’ anyone can visit it with a URL.

Try It! (2 min)

You already use "the cloud" every day! List 3 cloud services you use:

The Problem with Managing Code

Why we need special tools for code projects

Imagine you are writing an essay in Word. Simple: one file, one person, save and done. Now imagine:

30+ files

Your project has dozens of files that all depend on each other. Change one, and others might break.

Multiple people

Three teammates editing the same files at the same time. How do you merge everyone's work?

"It was working yesterday"

You made 10 changes today and something broke. Which change caused the bug? How do you go back?

No Ctrl+Z

Ctrl+Z only works within one file, in one session. You need to undo changes you made 3 days ago across 5 files.

This is why Version Control was invented. It solves all of these problems.

What is Version Control?

A time machine for your project

It saves snapshots of your entire project at key moments, so you can always go back in time.

v1 Create project Mon 9am v2 Add home page Mon 2pm v3 Add task list Tue 10am v4 Oops, broke it! πŸ› Tue 3pm Go back to v3! βœ“ v5 Fix & continue Tue 4pm Each circle is a commit = a saved snapshot of your entire project
✦

History

See every change ever made: what, when, and by whom

✦

Undo

Go back to any previous version instantly

✦

Collaboration

Multiple people work together without conflicts

Try It! (2 min)

Think of a time you wished you could "undo" something on your computer:

Git vs. GitHub

Two different things that work together

Git

A tool installed on your computer

  • Tracks every change to every file
  • Works offline, locally on your machine
  • Saves "snapshots" of your project called commits
  • Free and created by the inventor of Linux

Think: your personal time machine for files

GitHub

A website to share and store your code

  • Stores your project in the cloud (online backup)
  • Lets others see, review, and contribute
  • Hosts your project publicly or privately
  • Used by 100M+ developers and every major company

Think: Google Drive, but designed for code projects

Analogy: Git is like pressing "Save" on your laptop. GitHub is like uploading that save to Google Drive so it is backed up online and you can share it.

What is Open Source?

Why so many tools are free (and why GitHub exists)

Open source means the code is publicly available for anyone to read, use, modify, and share — for free. It is built by communities of volunteers and companies who believe software should be accessible to everyone.

Open Source Tools We Use

  • Git — version control (free forever)
  • Next.js — our app framework (by Vercel)
  • Node.js — runs JavaScript outside the browser
  • Linux — runs most of the internet's servers

Why Does This Matter?

  • You can build a complete app with $0 in software costs
  • GitHub is where open source projects live
  • Companies hire people who contribute to open source
  • Your GitHub profile is your developer portfolio

Try It! (2 min)

Creating a GitHub Account

Your first step into the developer world

Hands-On: Create Your GitHub Account

Follow these steps to get started:

Tip: Choose a professional username - future employers will look at your GitHub profile. Use your name or a clean handle, not "xXgamer2007Xx".

What is a Repository?

Your project's home on GitHub

Repository = Project Folder

A repository (or "repo") is a folder that contains all the files for one project, plus the complete history of every change ever made. Think of it as a smart folder that remembers everything.

A Repo Contains

  • Your code files (HTML, CSS, JS...)
  • A README file (project description)
  • History of all changes
  • Issues (to-do items and bugs)

Example Repo Structure

my-awesome-app/
β”œβ”€β”€ index.html      (main page)
β”œβ”€β”€ style.css       (design)
β”œβ”€β”€ script.js       (interactivity)
β”œβ”€β”€ images/
β”‚   └── logo.png
└── README.md       (description)

Creating Your First Repository

Let's do this together

Hands-On: Create Your First Repo

Follow along with the teacher:

Congratulations! You now have a project on GitHub. You are officially part of the developer community.

GitHub Issues

Your project's to-do list

3 Open 2 Closed Add a navigation bar to the homepage feature #1 opened 2 hours ago by you Login button does not work on mobile bug #2 opened 1 hour ago by you Add dark mode toggle nice-to-have #3 opened 30 minutes ago by you

Each issue can be assigned to someone, given a label (bug, feature, nice-to-have), and closed when completed. It is your project's to-do list.

Pro tip: Professional teams use issues for every single task. No issue = no work gets done.

From Design to Issues

Turn your Figma screens into actionable GitHub issues

Figma Screen

You designed a login page with:

  • Email input field
  • Password input field
  • Blue "Sign In" button
  • Link to registration page

GitHub Issues

Create one issue per element:

  • Issue #1: Create login page layout
  • Issue #2: Add email validation
  • Issue #3: Style Sign In button
  • Issue #4: Link to registration

Example Issue

Title: Create task list page
Label: feature

Description:
Build the task list page based on the Figma design.

Acceptance criteria:
- [ ] Page shows a list of tasks with title and due date
- [ ] Each task has a checkbox to mark as complete
- [ ] Tasks are sorted by due date (soonest first)
- [ ] An "Add Task" button is visible at the top
Acceptance criteria = a checklist of conditions that must be true for the issue to be considered "done." Each criterion should be testable: you can check the box or you cannot. Labels (feature, bug, ui, data) help you categorize your issues.

Today's Deliverables

What you should have by the end of today

1

GitHub Account
Created and verified, with a professional username

2

Repository + README
Your project repo with specs and user stories in the README

3

Figma Design
At least 3 screens designed with Stitch AI, refined by you

4

5+ GitHub Issues
Tasks from your Figma design, with labels and acceptance criteria

Checkpoint: Raise your hand when you have all 4 deliverables. The teacher will review and give feedback before you leave today.

Time to Practice!

Apply everything you learned today

Practical Work 1

Specifications & UI Design

Open Practical Work →

6 Exercises

GitHub, Specs, Stitch AI, Figma, Issues

4-5 Hours

Step-by-step guided tutorial

Beginner

No prior knowledge required

Ideation: Your Own App Project

Only when you have completed the slides + practical work above

Prerequisite: You must have finished Practical Work 1 and submitted all 4 deliverables (GitHub account, repository, Figma design, 5+ issues) before starting this activity.

1. Form a Pair

Find a partner. You will work as a binom (team of 2) for the rest of the week. Choose someone whose strengths complement yours — one might be more creative, the other more organized.

2. Choose an App Idea

Together, pick an application idea that solves a real problem you both care about. It should be simple enough to build in 2 days, but useful enough to demo on Friday.

3. Start Your Figma Design

Use Stitch AI to generate your first 3 screens, then import and refine them in Figma. Think about:

  • What does the home page look like?
  • What is the main feature screen?
  • What does the creation/input form look like?

Ideas to Get You Started

Day 1 Complete!

What You Learned Today

✓ How browsers, URLs, and the web work
✓ What apps are and how they are built
✓ Specifications, user stories, and UI/UX
✓ Designing with Stitch AI and Figma
✓ Files, folders, code, and programming languages
✓ The cloud, version control, and open source
✓ Git, GitHub, repositories, and issues

Tomorrow, Day 2: We bring your designs to life with real code! You will write your first HTML, CSS, and JavaScript - and see your app running in a browser.

Slide Overview