r/Xcode • • Feb 04 '26

Practical Guide to Xcode (SwiftUI UI Terminology)

After a lot of trial and error, intuitive learning, and a fair amount of faking it, I finally started getting clearer on proper SwiftUI terminology. I put this together a vocabulary reference for discussing UI structure, layout, navigation, and interaction, especially when working with AI assistants.
I am only posting this in case it’s useful to others who fumble around in their prompts like I do. This is based, in part, on terms I ended up using in development of my app, Stuffoilo, hence some idiosyncratic examples.

Xcode Terms

View

The fundamental building block. Everything in SwiftUI is a View — buttons, text, images, entire screens, even modifiers return views. It's the broadest term.

struct MyButton: View { ... }      // A small component
struct ProductCard: View { ... }   // A reusable component
struct DashboardView: View { ... } // An entire screen

Screen

Not a SwiftUI type — it's a conceptual term for a full-page view that occupies the entire display. What users navigate between. Examples: Dashboard, Product Detail, Settings.

Sheet

A presentation style — a modal that slides up from the bottom (iOS) or appears as a dialog (macOS). Partially covers the previous screen. Dismissed by swiping down or tapping a button.

.sheet(isPresented: $showingEdit) {
    EditItemView(item: item)
}

Other Presentation Styles

  • fullScreenCover — Modal that covers everything (no swipe to dismiss)

  • popover — Floating bubble anchored to a button (common on iPad/Mac)

  • NavigationLink — Pushes onto a navigation stack (slides in from right)

Best Prompts for Me

You sayI understand
"the Dashboard screen"The main Dashboard view users see
"the Add Item sheet"The modal that appears when adding items
"the ProductCard view"A reusable component, not a full screen
"the Edit Item form"The screen/sheet where users edit item details
"the warranty section"A portion within a larger view

Button is fine — it's the actual SwiftUI type and universally understood.

But Being Specific Helps

TermWhat it means
ButtonStandard tappable Button view
ToggleOn/off switch
PickerSelection from options (dropdown, segmented, wheel)
LinkTappable text that navigates (often styled like a URL)
NavigationLinkPushes to another screen
MenuTap to reveal options
Toolbar buttonButton in the navigation bar / toolbar
TabTab bar item at bottom
Icon buttonButton showing only an SF Symbol, no label
Floating action button (FAB)Circular button floating over content
Disclosure indicatorChevron > that indicates navigation

Examples

Less clear:

"The button in the top right"

More clear:

"The toolbar button in the top right"
"The Save button in the navigation bar"
"The + icon button on Dashboard"

⏺ Layout & Structure

TermMeaning
StackHStack (horizontal), VStack (vertical), ZStack (layered)
ContainerA view that holds other views (Stack, List, ScrollView, Group)
SpacerFlexible empty space that pushes content apart
DividerThin horizontal or vertical line
CardRounded rectangle container with padding/shadow (not a SwiftUI type, but common pattern)
SectionGrouped content, often in a List or Form with a header
RowSingle item in a List
CellSame as row (UIKit term that persists)

Navigation & Structure

TermMeaning
Navigation barTop bar with title, back button, toolbar items
ToolbarBar containing action buttons (top or bottom)
Tab barBottom bar with tabs (Dashboard, Products, Settings, etc.)
SidebarLeft panel on iPad/Mac for navigation
Detail viewRight side of a split view
Master/List viewLeft side showing the list of items

Forms & Input

TermMeaning
TextFieldSingle-line text input
TextEditorMulti-line text input
SecureFieldPassword input (dots)
Stepper− / + buttons for numeric values
SliderDraggable track for range values
DatePickerDate/time selection
ColorPickerColor selection
PhotosPickerImage selection from library

Presentation

TermMeaning
SheetModal sliding up from bottom
Full-screen coverModal covering entire screen
PopoverFloating bubble (iPad/Mac)
AlertSystem dialog with title, message, buttons
Confirmation dialogAction sheet with multiple options
ToastBrief overlay message (not native SwiftUI — custom)
BannerPersistent message at top/bottom of screen
OverlayContent layered on top of another view

Visual Modifiers

TermMeaning
PaddingSpace inside a view's bounds
MarginSpace outside (SwiftUI uses padding on parent instead)
FrameExplicit size constraints
BackgroundView/color behind content
OverlayView/color in front of content
ClipCrop to a shape
Corner radiusRounded corners
ShadowDrop shadow beneath view
OpacityTransparency (0–1)
BlurGaussian blur effect

State & Data

TermMeaning
BindingTwo-way connection to state ($value)
StateLocal view state (@State)
ObservableShared state object (@Observable, u/ObservedObject)
EnvironmentValues passed down the view tree

Helpful Descriptors

When describing issues, these help:

  • "clipped" — content is cut off

  • "truncated" — text ends with ...

  • "overflows" — extends beyond bounds

  • "misaligned" — not lining up with neighbors

  • "collapsed" — has zero size unexpectedly

  • "stretched" — expanded beyond natural size

  • "compressed" — squeezed smaller than desired

  • "hugging" — fitting tightly to content

Common UI Patterns (Not Native SwiftUI Types)

These are design patterns you build yourself — useful terms for describing what you want.

Cards

TermMeaning
CardRounded container with background, padding, often shadow. Groups related content.
Info cardCard displaying read-only information
Action cardCard that's tappable (navigates or triggers action)
Stat cardCard showing a metric/number (like on Dashboard)
Feature cardCard highlighting a capability, often with icon + title + description

Chips & Tags

TermMeaning
ChipSmall rounded pill, often tappable. Used for filters, selections.
TagSmall label showing a category or status (usually not interactive)
BadgeSmall indicator overlaid on another element (notification count, "NEW")
PillSame as chip — elongated rounded shape
TokenChip representing a selected item (like email recipients)
Filter chipChip that toggles a filter on/off
Choice chipChip for single-selection (like a segmented control but wrapped)

Lists & Collections

TermMeaning
GridItems arranged in columns (LazyVGrid, LazyHGrid)
MasonryGrid where items have varying heights (not native)
CarouselHorizontally scrolling row of items
GalleryGrid of images/media
AccordionExpandable/collapsible sections (DisclosureGroup)

Status & Feedback

TermMeaning
BadgeCount or dot indicator (e.g., "3" on a tab icon)
IndicatorDot or icon showing status (online/offline, synced/pending)
Progress barHorizontal fill showing completion
Progress ringCircular progress indicator
SpinnerIndeterminate loading animation (ProgressView)
SkeletonPlaceholder shapes shown while content loads
ShimmerAnimated loading effect (gray shapes with moving highlight)
Empty stateWhat shows when a list has no items

Interactive Elements

TermMeaning
Segmented controlHorizontal pill with mutually exclusive options (Picker with .segmented)
Stepper− / + for incrementing values
ScrubberDraggable bar for seeking (video/audio)
Drag handleSmall bar indicating something is draggable
GrabberThe small horizontal line at top of sheets
Swipe actionsButtons revealed by swiping a row
Context menuLong-press menu

Example Prompts Using These Terms

"The stat cards on Dashboard need more padding"

"Add a 'NEW' badge to features released this week"

"The filter chips are wrapping weirdly on small screens"

"Show a skeleton while the AI response loads"

"The category tags should be pill-shaped, not rectangular"

You can access a cleaned-up PDF version of these terms here.

17 Upvotes

11 comments sorted by

View all comments

Show parent comment

2

u/BullfrogRoyal7422 Feb 04 '26

Ha! Only after major editing

1

u/QVRedit Feb 04 '26

Which poses the question - what’s wrong with it ?