Information Architecture and Screen Inventory

Capítulo 5

Estimated reading time: 13 minutes

+ Exercise

What Information Architecture (IA) Means in an App

Information Architecture (IA) is the plan for how your app’s information and actions are organized so people can find what they need, understand where they are, and complete tasks without confusion. In practice, IA answers questions like: What sections does the app have? What belongs together? What is the main navigation? How deep do users need to go to reach a specific item? What labels do we use so the structure is understandable?

IA is not the same as visual design. You can have a beautiful interface that still feels “messy” if the structure is unclear. IA is also not the same as feature lists. Two apps can have the same features but feel completely different depending on how those features are grouped and how users move between them.

For beginners, a useful way to think about IA is: it is the map of your app. Screens are places on the map, navigation is the roads, and labels are the signs. A good map reduces wrong turns and makes the destination easy to reach.

Key IA building blocks

  • Content and objects: The “things” users interact with (e.g., tasks, messages, products, bookings, notes, profiles).

  • Categories and groupings: How those things are clustered (e.g., “Orders” vs “Saved” vs “Account”).

    Continue in our app.
    • Listen to the audio with the screen off.
    • Earn a certificate upon completion.
    • Over 5000 courses for you to explore!
    Or continue reading below...
    Download App

    Download the app

  • Hierarchy: What is top-level vs detail-level (e.g., list of orders → order detail → tracking detail).

  • Navigation model: How users move (tabs, drawer, bottom nav, search-first, step-by-step flows).

  • Labeling system: The words used for sections, buttons, filters, and headings.

  • Findability tools: Search, filters, sorting, and shortcuts.

What a Screen Inventory Is and Why You Need One

A screen inventory is a structured list of all screens (and sometimes states) your app will include, along with their purpose and key elements. It is a planning artifact that helps you avoid missing screens, duplicating screens, or creating navigation that leads nowhere.

Beginners often jump straight into drawing wireframes and end up with gaps like: no empty states, no error states, no confirmation screens, no way to edit something after creating it, or no clear entry points to important features. A screen inventory forces you to account for the complete experience.

What to include in a screen inventory

  • Screen name: A consistent naming convention (e.g., “Orders List”, “Order Detail”).

  • Screen ID: A unique code (e.g., ORD-01) for easy reference in discussions and tickets.

  • Type: List, detail, form, modal, onboarding, settings, etc.

  • Primary goal: What the user is trying to accomplish here.

  • Entry points: Where users come from (navigation, deep links, notifications).

  • Exit paths: Where users go next (back, next step, related screens).

  • Key UI components: Search bar, filters, CTA buttons, tabs, etc.

  • Data requirements: What data is displayed or collected.

  • States: Loading, empty, error, offline, permission denied, success.

  • Notes: Edge cases, constraints, analytics events, accessibility notes.

Step-by-Step: Building IA from Objects to Navigation

Step 1: List your core objects and their relationships

Start by writing down the nouns in your app. These are the objects that will likely become lists and detail screens. Then note how they relate: one-to-many, many-to-many, or nested relationships.

Example (a simple fitness coaching app):

  • Objects: Workout Plan, Workout, Exercise, Set, Progress Entry, Coach Message, User Profile.

  • Relationships: A Workout Plan contains many Workouts; a Workout contains many Exercises; an Exercise can appear in many Workouts; Progress Entries relate to Workouts and dates.

This step helps you predict the minimum screen types you will need: list screens for collections, detail screens for single objects, and create/edit forms for objects users can modify.

Step 2: Group objects into top-level sections

Now decide what belongs together at the top level. A common beginner mistake is to create a top-level tab for every feature. Instead, aim for 3–5 top-level sections that match how users think about their tasks.

Continuing the fitness app example, possible top-level sections:

  • Plan: Today’s workout, upcoming workouts, plan overview.

  • Progress: History, charts, personal records.

  • Messages: Coach chat, notifications related to coaching.

  • Profile: Settings, goals, account.

Notice that “Exercises” is not necessarily a top-level section. It might be accessed within a workout, or via search, depending on the app’s focus.

Step 3: Choose a navigation model that fits the structure

Navigation is the physical expression of IA. Pick a model that supports your top-level sections and the most common switching behavior.

  • Bottom navigation: Best when users frequently switch between 3–5 peer sections (e.g., Plan, Progress, Messages, Profile).

  • Tab navigation inside a section: Useful for subcategories (e.g., Progress: “History” and “Charts”).

  • Search-first: Works when users primarily look up items (e.g., a parts catalog or large recipe database).

  • Step-by-step flow: Best for linear tasks (e.g., booking, checkout, onboarding).

Also decide how deep links and notifications land users. If a notification opens “Workout Detail”, your IA must define what happens when the user taps Back: do they return to the section root, or to the previous screen?

Step 4: Draft a sitemap (screen hierarchy)

A sitemap is a tree-like view of screens and how they nest. It is not a user flow; it is the structural hierarchy. Keep it readable and avoid mixing too many cross-links in the first draft.

Example sitemap snippet:

Plan (tab)  PLAN-01 Today  PLAN-02 Plan Overview    PLAN-03 Workout Detail      PLAN-04 Exercise DetailProgress (tab)  PROG-01 History  PROG-02 ChartsMessages (tab)  MSG-01 Conversations  MSG-02 Chat ThreadProfile (tab)  PROF-01 Profile  PROF-02 Settings    PROF-03 Notifications Settings    PROF-04 Privacy

At this stage, you are checking for completeness: do you have a place for each object? Do you have a reasonable path to reach it?

Step 5: Define labeling and naming conventions

Labels are part of IA because they determine whether users understand the structure. Use words that match user expectations and keep them consistent across navigation, headings, and buttons.

  • Prefer concrete labels: “Orders” is clearer than “Activity” if it contains orders.

  • Avoid duplicates: If you have “Saved” and “Favorites”, users may not know the difference.

  • Use consistent verbs: If you use “Add” in one place, don’t use “Create” elsewhere for the same action.

For your internal documentation, adopt a consistent screen naming pattern such as: [Object] + [View Type] (e.g., “Order List”, “Order Detail”, “Order Edit”). This makes the screen inventory easier to scan.

Step-by-Step: Creating a Practical Screen Inventory

Step 1: Start from your sitemap and list every screen

Turn each node in your sitemap into a row in your inventory. Include both main screens and supporting screens (e.g., “Filter”, “Sort”, “Select Address”). If a screen is a modal or bottom sheet, still list it; it affects scope and implementation.

Step 2: Add create/edit and management screens for each object

For each object users can manage, check whether you need:

  • Create: A form to add a new item.

  • Edit: A form to modify an existing item.

  • Delete confirmation: Often a dialog or dedicated confirmation state.

  • Permissions: Who can edit what (even if you don’t implement roles yet, note constraints).

Example (for “Address” in a delivery app): Address List, Add Address, Edit Address, Confirm Delete Address, Select Address (during checkout).

Step 3: Add system and edge-case screens (the ones people forget)

Many apps feel unfinished because these screens are missing. Add them explicitly to your inventory so they are designed and built intentionally.

  • Authentication-related: Sign in, sign up, password reset, email/phone verification (if applicable), logged-out state.

  • Empty states: No items yet (e.g., “No orders”), with guidance and a CTA.

  • Loading states: Skeletons or spinners; define what loads and when.

  • Error states: Network error, server error, validation error, payment failure.

  • Offline state: What can still be viewed? What actions are blocked?

  • Permissions: Location/camera/notifications denied, and how to recover.

  • Legal and account: Terms, privacy policy, delete account, data export (if needed).

Even if you do not implement all of these immediately, listing them clarifies what “complete” means and prevents last-minute surprises.

Step 4: Define screen states as part of the inventory

A “screen” is rarely one static layout. It has states depending on data and user actions. You can track states as sub-rows or a dedicated column.

Example for “Orders List”:

  • Loading: show skeleton list.

  • Empty: show message + “Start shopping” CTA.

  • Populated: list with status chips and reorder button.

  • Error: retry button + offline hint.

Example for “Checkout”:

  • Validation errors: missing address, invalid card.

  • Processing: disable CTA, show progress.

  • Success: confirmation screen with order number.

Step 5: Add navigation details (entry and exit) to prevent dead ends

For each screen, document:

  • Entry points: From which screens can you reach it? Can it be opened from a notification or deep link?

  • Primary action: The main CTA and where it goes.

  • Secondary actions: Edit, share, filter, help, etc.

  • Back behavior: Especially important for deep links and multi-step flows.

This prevents common issues like a modal that has no clear dismissal, or a detail screen opened from search that returns to an unexpected place.

Step 6: Use a simple inventory template you can maintain

You can keep the inventory in a spreadsheet or a document table. The key is consistency and easy scanning. Here is a compact template you can copy:

| ID     | Screen name           | Section   | Type   | Primary goal                    | Entry points                 | Primary actions                 | Key states                         | Notes |

Fill it with short, specific phrases. If a cell becomes long, move details to Notes and keep the main columns scannable.

Practical Example: Screen Inventory for a Simple Booking App

Imagine an app that lets users book appointments with local service providers. Below is an example inventory excerpt showing how to think in screens, states, and navigation without drawing any UI yet.

| ID      | Screen name              | Section     | Type     | Primary goal                         | Entry points                     | Primary actions                         | Key states                                  | Notes | |---------|--------------------------|-------------|----------|--------------------------------------|----------------------------------|------------------------------------------|----------------------------------------------|-------| | HOME-01 | Home                     | Home        | Hub      | Start a booking, see suggestions      | App launch, back from sections   | Search, select category, view provider    | Loading, populated, error                    | Consider location-based suggestions | | SRCH-01 | Search Results            | Home        | List     | Browse providers matching query       | Home search, category tap        | Filter, sort, open provider detail        | Loading, empty, populated, error             | Save last filters | | PROV-01 | Provider Detail           | Home        | Detail   | Evaluate provider and start booking   | Search results, deep link        | Book, call/message, view reviews          | Loading, error                               | Deep link should land here | | BOOK-01 | Select Service            | Booking     | Step     | Choose service type                   | Provider detail (Book)           | Select service, next                      | Validation error (none selected)             | Show duration and price | | BOOK-02 | Select Date & Time        | Booking     | Step     | Pick available slot                   | Select service (Next)            | Choose slot, next                         | Loading slots, no availability, error        | Timezone handling | | BOOK-03 | Enter Details             | Booking     | Form     | Provide notes/contact info            | Select date/time (Next)          | Submit, back                              | Validation errors, save draft                | Autofill phone/email | | PAY-01  | Payment                   | Booking     | Form     | Pay or confirm payment method         | Enter details (Next)             | Pay, apply promo code                     | Processing, payment failed, success          | If no payment needed, skip | | CONF-01 | Booking Confirmation       | Booking     | Confirmation | Confirm booking and next steps     | Payment success                  | Add to calendar, view booking, done        | Offline (calendar add), share                | Show cancellation policy | | APPT-01 | My Appointments            | Appointments| List     | View upcoming/past bookings           | Bottom nav, confirmation (View)  | Open appointment detail, cancel/reschedule | Loading, empty, populated, error             | Tabs: Upcoming/Past | | APPT-02 | Appointment Detail         | Appointments| Detail   | Manage a booking                       | My appointments list             | Cancel, reschedule, contact provider       | Loading, error                               | Show address/map | | AUTH-01 | Sign In                   | Account     | Auth     | Access account                         | Protected action, app start      | Sign in, go to sign up, reset password     | Validation error, server error               | Support social login later | | SET-01  | Settings                  | Account     | Settings | Manage preferences                     | Profile tab                      | Notifications, privacy, logout             | N/A                                          | Link to legal pages |

This example demonstrates how the inventory captures: the booking flow steps, the “My Appointments” management area, and the supporting account screens. It also shows where states like “no availability” belong, which is critical for planning.

How IA and Screen Inventory Work Together

IA gives you the structure (sections, hierarchy, navigation). The screen inventory makes that structure concrete and buildable (a list of screens with responsibilities and states). When you maintain both, you can answer practical questions quickly:

  • Do we have a screen for every object users need to view and manage?

  • Is there a consistent path to reach key screens from the main navigation?

  • Are there any screens that do the same job and should be merged?

  • Are we missing empty/error/permission states that will affect development time?

  • Can notifications and deep links land users in the right place without breaking back navigation?

Common IA Patterns for Beginner Apps (and When to Use Them)

Hub-and-spoke

A central Home screen links to major areas. Useful when users start from a single “launch point” (e.g., search, scan, quick action). Risk: Home becomes overloaded. Use clear grouping and limit the number of primary actions.

Tabbed sections

Bottom tabs for peer sections. Useful when users frequently switch contexts (e.g., browse, saved, messages, profile). Risk: too many tabs or unclear labels. Keep the number small and ensure each tab has a clear purpose.

Master-detail

A list leads to a detail screen, often with actions like edit, share, or purchase. This is one of the most common patterns because it matches how objects work. Risk: forgetting how users return to the list or how they discover related items.

Wizard/step flow

A linear sequence for complex tasks like booking or checkout. Risk: users need to review or edit earlier steps. Plan for “Back” and “Edit” entry points from a review step.

Practical Checks to Validate Your IA Before Wireframing

Check 1: The “where would I tap?” test

Pick 10 common tasks and, using only your sitemap and inventory, point to the exact screen where each task starts and ends. If you cannot do it confidently, your IA likely has gaps or unclear grouping.

Check 2: Depth and complexity

Count how many taps it takes to reach important screens from app launch. If key tasks require going 4–6 levels deep, consider adding shortcuts, improving top-level grouping, or adding search.

Check 3: Duplicate concepts

Scan your inventory for screens that sound similar: “Saved”, “Favorites”, “Bookmarks”; “History”, “Activity”, “Recent”. Either clarify the difference in labels and content, or merge them.

Check 4: State completeness

For each list and form screen, ensure you have at least: loading, empty, error, and success/confirmation (when applicable). This is one of the fastest ways to make your plan more realistic for development.

Check 5: Cross-links and escape routes

Ensure every screen has a clear way out: back, cancel, close, or done. For modals and multi-step flows, define what happens if the user exits halfway through. If drafts are saved, note it; if not, warn the user.

Turning the Inventory into Build-Ready Planning Artifacts

Once your inventory is stable, it becomes a backbone for the next planning steps: wireframes, user flows, and development tasks. To make it build-ready, add two lightweight enhancements:

  • Component notes: Identify reusable components like “Provider card”, “Appointment status chip”, “Primary CTA bar”. This reduces design and development duplication.

  • Data and API hints: For each screen, list the key data fields needed (e.g., Provider: name, rating, distance, availability). This helps developers estimate and prevents late discovery of missing data.

Keep these notes short and practical. The goal is not to fully specify the backend, but to ensure each screen’s purpose and requirements are clear enough to design and implement without constant rework.

Now answer the exercise about the content:

Which statement best describes why a screen inventory is useful during app planning?

You are right! Congratulations, now go to the next page

You missed! Try again.

A screen inventory lists all screens (and states) plus key details like entry and exit paths, which helps avoid gaps, duplication, and dead ends in navigation.

Next chapter

User Flows for Key Tasks

Arrow Right Icon
Free Ebook cover App Development Planning for Beginners: From Idea to Screens and Features
50%

App Development Planning for Beginners: From Idea to Screens and Features

New course

10 pages

Download the app to earn free Certification and listen to the courses in the background, even with the screen off.