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`)