iOS

Active problem-solving

Practice Prompts

Try it before you reveal. Each coding and system-design prompt unfolds in stages — approach, then solution — so you practice retrieval, not recognition. Mark what you solved; revisit the rest.

Solved 0 / 16
Level
  1. CodeMid

    Debounce a SwiftUI search field

    swiftuiconcurrencysearch

    A search field fires a query on every keystroke. Make it only query after the user pauses typing for 300ms, and cancel the in-flight query when a new keystroke arrives — using Swift concurrency, no Combine.

    next: new
  2. CodeSenior

    A thread-safe image cache with an actor

    concurrencyactorcache

    Many view tasks request images concurrently. Build an in-memory cache that never races, and that de-duplicates concurrent requests for the same URL so it only downloads once.

    next: new
  3. CodeMid

    Decode a messy JSON payload with Codable

    datacodablejson

    An API returns snake_case keys, ISO-8601 dates, and a nested object. Decode it into clean Swift models without hand-writing every key.

    next: new
  4. CodeSenior

    Async retry with exponential backoff

    concurrencynetworkingresilience

    Wrap an async operation so it retries on failure up to N times with exponential backoff, respects cancellation, and rethrows the last error if all attempts fail.

    next: new
  5. CodeMid

    An @Observable list view model with load states

    swiftuimvvmstate

    Build a view model that loads a list and exposes loading / loaded / empty / error states so the view can render each cleanly. Make it testable.

    next: new
  6. CodeMid

    Fetch two endpoints concurrently and combine

    concurrencynetworking

    A profile screen needs the user and their posts from two endpoints. Fetch them in parallel and combine — don't await one then the other.

    next: new
  7. CodeSenior

    A minimal Keychain token store

    securitykeychain

    Store and read an auth token securely. Explain why this belongs in the Keychain rather than UserDefaults.

    next: new
  8. CodeSenior

    Bridge a callback API to async/await

    concurrencyinterop

    You have a legacy load(completion:) that returns a Result. Expose a modern async throws version without rewriting the legacy code.

    next: new
  9. CodeSenior

    Infinite-scroll list that paginates

    swiftuiperformancepagination

    Render a long list that loads the next page as the user nears the bottom, without loading everything up front and without firing duplicate page requests.

    next: new
  10. DesignArchitect

    Design an offline-first notes app

    architecturesyncdata

    Users create and edit notes that must work fully offline and sync across devices. Design the data flow, sync strategy, and conflict resolution.

    next: new
  11. DesignArchitect

    Architect an app for 30 engineers

    architecturemodularizationspm

    A single-target app has 12-minute incremental builds and constant merge conflicts. How do you restructure it so a large team can move fast?

    next: new
  12. DesignSenior

    Design a smooth image-heavy feed

    performanceswiftuimedia

    Design a social feed of high-resolution photos that scrolls at a steady frame rate on older devices and doesn't blow the memory budget.

    next: new
  13. DesignSenior

    Design the networking & data layer

    architecturenetworkingcaching

    Design the layer between your UI and the backend: how requests, decoding, caching, auth refresh, and testing fit together.

    next: new
  14. DesignSenior

    Design navigation & deep linking

    architecturenavigation

    Design navigation for a multi-tab app that must support deep links, push-notification routing, and state restoration.

    next: new
  15. DesignSenior

    Design a CI/CD & release pipeline

    cicdreleasesigning

    Set up build, test, signing, and release for a team so every change is verified and shipping is one click — with a safe rollout.

    next: new
  16. DesignBeyond

    Design on-device semantic search

    aicoremlsearch

    Let users search their content by meaning, not just keywords, entirely on device for privacy. Design it.

    next: new