Smart TV
Açık Kaynak

Smart TV Coğrafi Konum Uyumlu Hava Durumu Paneli

DartFlutterOpenWeatherMap APIGeoJS APIdotenv

Android TV için geliştirilmiş native bir Flutter uygulaması. Donanım kumandaları için özel olarak tasarlanmış uzamsal bir D-Pad navigasyon matrisi kullanır ve lokalize meteorolojik verileri anında sunmak için IP tabanlı otomatik coğrafi çözümlemeden (geo-resolution) yararlanır.

Teknoloji Yığını

DartFlutterOpenWeatherMap APIGeoJS APIdotenv

Sistem Metrikleri

Hızlı D-Pad navigasyonu sırasında widget yeniden oluşturmalarını (rebuilds) en aza indirerek elde edilen sıfır gecikmeli odak geçişleri
Katı zaman aşımı kısıtlamaları sayesinde, zayıf veya çevrimdışı ağ bağlantılarında sonsuz açılış ekranı (splash-screen) donmalarını engeller
Farklı 1080p ve 4K televizyon panelleri arasında tutarlı ve piksel kusursuz ölçeklendirme garanti eden `FittedBox` ve `Flex` kısıtlamalarıyla optimize edilmiş layout render işlemi

Bunu Neden İnşa Ettim?

"Smart TV'lerdeki standart hava durumu uygulamaları genellikle D-Pad navigasyonunu düzgün kullanamayan hantal mobil portlardır ve ekran klavyesi ile can sıkıcı manuel şehir aramaları gerektirir. Kullanıcı zorluğunu (friction) tamamen ortadan kaldırmak için bu native uygulamayı geliştirdim. Açılış (splash) aşamasında agresif bir IP tabanlı coğrafi konumlandırma dizisi uygulayarak, uygulama kullanıcının bulunduğu Türkiye bölgesini ve şehrini anında çözer. Bu sayede TV, kurulum ekranlarını atlar ve tek bir kumanda tıklamasına bile gerek kalmadan ilgili hava durumu verilerini anında gösterir."

Mimari & Kararlar

Flutter ile inşa edilmiş ve TV ekranları için kesin olarak yatay (landscape) oryantasyona kilitlenmiştir. Mimari, donanım D-Pad'leri için uzamsal odak yönetiminin (spatial focus management) `InkWell.onFocusChange` ve örtük (implicit) `FocusNode` ağaçları üzerinden açıkça ele alındığı, duruma dayalı (state-driven) bir arayüze dayanır. Ağ hatları (`http`) asenkron olarak gönderilir ve ham OpenWeatherMap JSON verilerini doğrudan arayüz durumlarına ayrıştırır. Önyükleme (boot) sekansı, IP çözümlemesi için `geo.json` adresine katı bir 4 saniyelik zaman aşımı (timeout) sınırına sahip HTTP isteği içerir; bu sayede ağ kesilirse arayüz kilitlenmez, sistem güvenli bir şekilde varsayılan duruma (Marmara/İstanbul) geri döner.

Temel Özellikler

  • 01.IP'den Bölgeye otomatik coğrafi çözümleme ile sıfır tıklamalı (zero-click) başlangıç deneyimi
  • 02.Android TV kumandaları için optimize edilmiş uzamsal D-Pad navigasyon matrisi
  • 03.OpenWeatherMap 5 günlük tahmin API'si ile asenkron entegrasyon
  • 04.Katı asenkron zaman aşımı sınırlarıyla korunan, güvenli ağ geri dönüş (fallback) mekanizmaları
  • 05.Donanım odak durumlarına (focus states) doğrudan bağlı, donanım hızlandırmalı UI animasyonları (`AnimatedContainer`, `FadePageRoute`)
Bu proje, oturma odası için akıcı, dokunmatik olmayan arayüzlerin (non-touch interfaces) nasıl oluşturulacağını kusursuz bir şekilde göstermektedir. Android TV ile etkileşim kurmak, mobil dokunmatik algılarını (paradigms) terk etmeyi gerektirir; bu nedenle tüm arayüz dokunma (tap) olayları yerine odak (focus) durumları etrafında inşa edilmiştir. Bu özelleşmiş donanım navigasyonunu, anında API destekli coğrafi çözümleme ile birleştiren uygulama, büyük ekranlarda anında veri tüketimi için kesin olarak uyarlanmış, kurumsal düzeyde ve sıfır konfigürasyonlu bir kullanıcı deneyimi sunar.