Skip to content
All projects
Smart TVOpen source

Smart TV Geo-Aware Weather Dashboard

A native Flutter application engineered for Android TV. It leverages automated IP-based geographic resolution to instantly deliver localized meteorological data, utilizing a spatial D-Pad navigation matrix designed specifically for hardware remotes.

Tech stack

Languages
Frameworks & libraries

Performance & metrics

  • Zero-latency focus transitions achieved by minimizing widget rebuilds during rapid D-Pad navigation
  • Strict timeout constraints prevent infinite splash-screen hangs on degraded or offline network connections
  • Optimized layout rendering utilizing FittedBox and Flex constraints to guarantee consistent, pixel-perfect scaling across diverse 1080p and 4K television panels

Why I built it

Standard weather applications on Smart TVs are frequently clunky mobile ports that fail to utilize D-Pad navigation correctly and require tedious manual city searching via on-screen keyboards. I engineered this native application to eliminate user friction entirely. By implementing an aggressive IP-based geo-location sequence during the splash phase, the application instantly resolves the user's specific Turkish region and city. This allows the TV to bypass setup screens and immediately display relevant forecast data without requiring a single remote control click.

Architecture & decisions

Built with Flutter and rigidly locked to landscape orientation for TV displays. The architecture relies on a decoupled, state-driven UI where spatial focus management is handled explicitly for hardware D-Pads via InkWell.onFocusChange and implicit FocusNode trees. Network pipelines (http) are dispatched asynchronously, parsing raw OpenWeatherMap JSON payloads directly into localized UI states. The boot sequence features a strict 4-second timeout-bounded HTTP request to geo.json for IP resolution, ensuring the application fails gracefully to a default state (Marmara/Istanbul) rather than locking up the UI if the network drops.

Key features

  1. 01Zero-click onboarding via automated IP-to-Region geographic resolution
  2. 02Spatial D-Pad navigation matrix optimized for Android TV remote controls
  3. 03Asynchronous integration with the OpenWeatherMap 5-day forecast API
  4. 04Graceful network fallback mechanisms with strict asynchronous timeout boundaries
  5. 05Hardware-accelerated UI animations (AnimatedContainer, FadePageRoute) intrinsically tied to hardware focus states

Technical review

This project perfectly demonstrates how to build fluid, non-touch interfaces for the living room. Interfacing with Android TV requires abandoning mobile touch paradigms; therefore, the entire UI is constructed around focus states rather than tap events. By combining this specialized hardware navigation with instant, API-driven geographic resolution, the application provides an enterprise-grade, zero-configuration user experience tailored strictly for immediate data consumption on large displays.