Mobil Flutter uygulaması herkese açık bir istemcidir; exchangerate.dev bearer anahtarını içermemelidir. Anahtarı küçük bir sunucu tarafı /api/fx proxy’sine koyun, Flutter’ın {from,to} istemesini sağlayın ve dönen kur, kaynak, piyasa oturumu ve gözlem zamanını tip güvenli modelde birlikte tutun.
Kimlik bilgisini sunucunun arkasına koyun
Sunucu rotanız from ve to kabul eder, Authorization: Bearer $EXCHANGERATE_API_KEY ekler, /v1/latest/{from}?symbols={to} çağırır ve uygulamanın ihtiyacı olan alanları döndürür. Anahtarı sunucu ortamında tutun. Uygulama proxy URL’sini --dart-define=FX_PROXY_BASE_URL=… ile alır; upstream anahtarı hiçbir zaman almaz.
HTTP bağımlılığını ekleyin
Bir Flutter uygulaması oluşturun, güncel http paketini pubspec.yaml dosyasına ekleyin ve tam Flutter dönüştürücüyü lib/main.dart olarak kaydedin. flutter run --dart-define=FX_PROXY_BASE_URL=https://your-app.example/api/fx ile çalıştırın. Minimal Node proxy’yi indirin, sunucu ortamında EXCHANGERATE_API_KEY ayarlayın ve Node 20 veya daha yenisiyle node flutter-currency-converter-proxy.mjs çalıştırın. Yerel testte loopback 8787 portunu dinler. Bir cihaz bağlamadan önce kendi kimlik doğrulamalı HTTPS backend’iniz ve istek limitleriniz üzerinden yayınlayın; dosya para birimi ve tutarı doğrular, anahtarı iletir ve yalnızca gereken tip güvenli kotasyon alanlarını döndürür. Standart Flutter Material widget’larını ve tip güvenli FxQuote modelini kullanır. Flutter’ın resmi networking tarifi paket kurulumunu ve istek desenini açıklar.
Render etmeden önce kotasyonu doğrulayın
Model eksik, pozitif olmayan, sonlu olmayan veya sayısal olmayan rate ile eksik data_updated_at değerini reddeder. Böylece HTML hata sayfası, proxy hatası veya boş JSON dönüşüm ekranına girmez. İstemci ayrıca isteği on saniyeyle sınırlar ve 2xx dışı durumları gösterir.
Yüklenme, hata ve tazeliği gösterin
Ekran istek sürerken düğmeyi devre dışı bırakır, ilerleme göstergesi gösterir ve proxy başarısız olduğunda okunabilir hata tutar. Başarıdan sonra tutarı, görüntülenen kuru, kaynağı, piyasa oturumunu, gözlem zamanını, uygulama cache yaşını (cihazın yanıtı yüklemesinden beri geçen süre) ve gözlem yaşını (data_updated_at üzerinden) gösterir. Kullanıcı verinin canlı işlem günü gözlemi mi yoksa günlük referans mı olduğunu görebilir.
Görüntü için yuvarlayın, değeri koruyun
Örneğin desteklenen para birimlerinde JPY’yi 0, USD, EUR, GBP ve IDR’yi 2 ondalıkla gösterin; okunabilirlik için kuru 6 ondalıkla gösterin. Bu yalnızca sunum yuvarlamasıdır. Ayrıştırılmış sayısal kuru koruyun ve üretim muhasebe sınırında decimal veya fixed-point stratejisi kullanın; ikili kayan noktalı görüntü değerini mutabakat kaydı yapmayın.
Müşteri yolunu test edin
Uygulamayı test proxy yanıtıyla çalıştırın; ardından timeout, HTTP 401/429, bozuk JSON, eksik kur ve eski data_updated_at durumlarını deneyin. Flutter’a özgü ağ, TLS ve proxy dağıtımı gerçek cihaz veya emülatörle de test edilmelidir; indirilebilir dosya çalıştırılabilir istemci örneğidir, barındırılan proxy değildir.
