Skip to Content

What Did I Watch – Technical Review of a Minimalist Tracking App

22 March 2026 by
TechStora

Problem Statement

Problem identification begins with a simple observation: users often forget whether a movie or show has been watched. The app addresses this by providing a lightweight log that records each entry. By avoiding social graphs or recommendation engines, the solution remains focused on the core need.

Memory gaps appear when friends suggest a title or when a user browses a catalog. The pain point is amplified on devices that host large libraries. A direct entry system reduces uncertainty and saves time.

Design Overview

SwiftUI forms the visual backbone, offering declarative layout that matches platform conventions. The architecture separates data retrieval, storage, and presentation layers, which improves maintainability. A single source of truth resides in a local database that persists user selections.

Modularity is reinforced by using protocol‑based abstractions for the network client and the speech recognizer. This approach permits swapping implementations without touching UI code. The result is a clean dependency graph.

Implementation Details

Network communication relies on the TMDB API, delivering accurate titles, posters and metadata. Requests are performed with URLSession and decoded via Codable structs, ensuring type safety. Error handling includes graceful fallback to cached data.

Voice input uses the system speech framework, translating spoken words into text queries. The recognition pipeline runs on a background queue, keeping the UI responsive. Users can switch language on the fly, and the recognizer respects the selected locale.

Internationalization Strategy

Localization files contain strings for more than twenty languages, covering English, Persian, Arabic, Chinese, Spanish, Korean and others. The UI automatically adapts layout direction based on language, handling right‑to‑left scripts correctly. All static text is fetched from the localized bundle at runtime.

Search queries are sent to TMDB with a language parameter, guaranteeing that results appear in the users preferred language. The voice module also respects locale, enabling natural speech in each supported language. This consistency improves user confidence.

User Experience Considerations

Interaction design emphasizes a single tap to open the microphone, then immediate transcription display. The feedback loop includes a subtle haptic cue when a match is found, reinforcing successful input. The list view presents each entry with a thumbnail, title and date, all rendered with SwiftUI components.

Performance targets a launch time under one second, achieved by lazy loading images and pre‑fetching popular titles. Memory usage stays low because images are cached in a bounded in‑memory store. The result is a fluid experience on older devices.

Testing and Deployment

Unit tests cover the network parser, database CRUD operations and speech handling logic. Each test uses XCTest expectations to verify asynchronous behavior, ensuring reliability. Continuous integration runs the suite on every pull request.

App Store submission required a privacy manifest describing microphone usage, which was generated from the code annotations. The review process took several days, during which the build was monitored for compliance. Once approved, the binary was distributed globally.

Future Directions

Feature roadmap includes optional export of the watch list to common formats such as CSV, enabling personal analytics. Another idea is to integrate with calendar services to remind users of upcoming releases. Exploration of machine‑learning based duplicate detection could further reduce manual effort.

Community involvement may bring third‑party plugins that add niche visual themes or custom sorting rules. By keeping the core code open for extension, the app can evolve without compromising its original simplicity. Long‑term maintenance will focus on keeping dependencies up to date.

Conclusion

Summary of this analysis highlights a disciplined approach to building a purpose‑driven iOS app. The combination of SwiftUI, TMDB data, and voice capabilities delivers a tool that solves a real user problem without excess. Continued refinement and community feedback will shape its role in personal media tracking.