From abf1b9d78809d76b9536c7c14cc7a3ece079df01 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20M=C3=BCllner?= Date: Thu, 5 Mar 2026 08:36:25 +0100 Subject: [PATCH] perf: use cached network images --- lib/screens/garage_screen.dart | 9 ++++++--- lib/widgets/car_card.dart | 9 ++++++--- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/lib/screens/garage_screen.dart b/lib/screens/garage_screen.dart index e0c92d6..28bef84 100644 --- a/lib/screens/garage_screen.dart +++ b/lib/screens/garage_screen.dart @@ -1,5 +1,6 @@ import 'dart:io'; +import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:image_picker/image_picker.dart'; import '../main.dart'; @@ -534,10 +535,12 @@ class GarageScreenState extends State { child: AspectRatio( aspectRatio: 16 / 10, child: imageUrl != null && imageUrl.isNotEmpty - ? Image.network( - imageUrl, + ? CachedNetworkImage( + imageUrl: imageUrl, fit: BoxFit.cover, - errorBuilder: (context, error, stackTrace) => Column( + fadeInDuration: Duration.zero, + fadeOutDuration: Duration.zero, + errorWidget: (context, url, error) => Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Expanded(child: _imagePlaceholder()), diff --git a/lib/widgets/car_card.dart b/lib/widgets/car_card.dart index b929209..97941e4 100644 --- a/lib/widgets/car_card.dart +++ b/lib/widgets/car_card.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:cached_network_image/cached_network_image.dart'; import '../theme/app_colors.dart'; /// A styled card for displaying a single Hot Wheels car in the garage. @@ -66,10 +67,12 @@ class CarCard extends StatelessWidget { : AppColors.brandGradientSoft, ), child: imageUrl != null && imageUrl!.isNotEmpty - ? Image.network( - imageUrl!, + ? CachedNetworkImage( + imageUrl: imageUrl!, fit: BoxFit.cover, - errorBuilder: (context, error, stackTrace) { + fadeInDuration: Duration.zero, + fadeOutDuration: Duration.zero, + errorWidget: (context, url, error) { onImageError?.call(); return _PlaceholderIcon(isDark: isDark); },