Skip to content

Commit 3834471

Browse files
committed
use cached network image instead of network image
1 parent aff6331 commit 3834471

4 files changed

Lines changed: 126 additions & 30 deletions

File tree

lib/widgets/custom_project_grid_image.dart

Lines changed: 11 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import 'package:flutter/material.dart';
2+
import 'package:cached_network_image/cached_network_image.dart';
23
import 'package:flutter_portfolio/res/constants.dart';
34

45
class CustomProjectGridImage extends StatelessWidget {
@@ -20,39 +21,19 @@ class CustomProjectGridImage extends StatelessWidget {
2021
@override
2122
Widget build(BuildContext context) {
2223
final radius = borderRadius;
23-
final image = Image.network(
24-
imageUrl,
24+
final image = CachedNetworkImage(
25+
imageUrl: imageUrl,
2526
height: height,
2627
width: width,
2728
fit: fit,
28-
frameBuilder: (context, child, frame, sync) {
29-
if (frame == null) {
30-
return SizedBox(
31-
height: height,
32-
width: width,
33-
child: Container(
34-
color: bgColor,
35-
),
36-
);
37-
}
38-
39-
return child;
40-
},
41-
loadingBuilder: (context, child, loadingProgress) {
42-
// If loadingProgress is null, the image has finished loading
43-
if (loadingProgress == null) {
44-
return child; // Return the loaded image
45-
}
46-
47-
return SizedBox(
48-
height: height,
49-
width: width,
50-
child: Container(
51-
color: bgColor,
52-
),
53-
);
54-
},
55-
errorBuilder: (context, error, stackTrace) => SizedBox(
29+
placeholder: (context, url) => SizedBox(
30+
height: height,
31+
width: width,
32+
child: Container(
33+
color: bgColor,
34+
),
35+
),
36+
errorWidget: (context, url, error) => SizedBox(
5637
height: height,
5738
width: width,
5839
child: Container(

macos/Flutter/GeneratedPluginRegistrant.swift

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import app_links
99
import package_info_plus
1010
import path_provider_foundation
1111
import shared_preferences_foundation
12+
import sqflite_darwin
1213
import url_launcher_macos
1314
import video_player_avfoundation
1415
import wakelock_plus
@@ -18,6 +19,7 @@ func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
1819
FPPPackageInfoPlusPlugin.register(with: registry.registrar(forPlugin: "FPPPackageInfoPlusPlugin"))
1920
PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin"))
2021
SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin"))
22+
SqflitePlugin.register(with: registry.registrar(forPlugin: "SqflitePlugin"))
2123
UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin"))
2224
FVPVideoPlayerPlugin.register(with: registry.registrar(forPlugin: "FVPVideoPlayerPlugin"))
2325
WakelockPlusMacosPlugin.register(with: registry.registrar(forPlugin: "WakelockPlusMacosPlugin"))

pubspec.lock

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,30 @@ packages:
4949
url: "https://pub.dev"
5050
source: hosted
5151
version: "2.1.1"
52+
cached_network_image:
53+
dependency: "direct main"
54+
description:
55+
name: cached_network_image
56+
sha256: "28ea9690a8207179c319965c13cd8df184d5ee721ae2ce60f398ced1219cea1f"
57+
url: "https://pub.dev"
58+
source: hosted
59+
version: "3.3.1"
60+
cached_network_image_platform_interface:
61+
dependency: transitive
62+
description:
63+
name: cached_network_image_platform_interface
64+
sha256: "9e90e78ae72caa874a323d78fa6301b3fb8fa7ea76a8f96dc5b5bf79f283bf2f"
65+
url: "https://pub.dev"
66+
source: hosted
67+
version: "4.0.0"
68+
cached_network_image_web:
69+
dependency: transitive
70+
description:
71+
name: cached_network_image_web
72+
sha256: "205d6a9f1862de34b93184f22b9d2d94586b2f05c581d546695e3d8f6a805cd7"
73+
url: "https://pub.dev"
74+
source: hosted
75+
version: "1.2.0"
5276
characters:
5377
dependency: transitive
5478
description:
@@ -137,11 +161,27 @@ packages:
137161
url: "https://pub.dev"
138162
source: hosted
139163
version: "7.0.1"
164+
fixnum:
165+
dependency: transitive
166+
description:
167+
name: fixnum
168+
sha256: b6dc7065e46c974bc7c5f143080a6764ec7a4be6da1285ececdc37be96de53be
169+
url: "https://pub.dev"
170+
source: hosted
171+
version: "1.1.1"
140172
flutter:
141173
dependency: "direct main"
142174
description: flutter
143175
source: sdk
144176
version: "0.0.0"
177+
flutter_cache_manager:
178+
dependency: transitive
179+
description:
180+
name: flutter_cache_manager
181+
sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba"
182+
url: "https://pub.dev"
183+
source: hosted
184+
version: "3.3.1"
145185
flutter_dotenv:
146186
dependency: "direct main"
147187
description:
@@ -384,6 +424,14 @@ packages:
384424
url: "https://pub.dev"
385425
source: hosted
386426
version: "1.0.0"
427+
octo_image:
428+
dependency: transitive
429+
description:
430+
name: octo_image
431+
sha256: "34faa6639a78c7e3cbe79be6f9f96535867e879748ade7d17c9b1ae7536293bd"
432+
url: "https://pub.dev"
433+
source: hosted
434+
version: "2.1.0"
387435
package_info_plus:
388436
dependency: transitive
389437
description:
@@ -613,6 +661,54 @@ packages:
613661
url: "https://pub.dev"
614662
source: hosted
615663
version: "1.10.0"
664+
sprintf:
665+
dependency: transitive
666+
description:
667+
name: sprintf
668+
sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
669+
url: "https://pub.dev"
670+
source: hosted
671+
version: "7.0.0"
672+
sqflite:
673+
dependency: transitive
674+
description:
675+
name: sqflite
676+
sha256: "2d7299468485dca85efeeadf5d38986909c5eb0cd71fd3db2c2f000e6c9454bb"
677+
url: "https://pub.dev"
678+
source: hosted
679+
version: "2.4.1"
680+
sqflite_android:
681+
dependency: transitive
682+
description:
683+
name: sqflite_android
684+
sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3"
685+
url: "https://pub.dev"
686+
source: hosted
687+
version: "2.4.0"
688+
sqflite_common:
689+
dependency: transitive
690+
description:
691+
name: sqflite_common
692+
sha256: "761b9740ecbd4d3e66b8916d784e581861fd3c3553eda85e167bc49fdb68f709"
693+
url: "https://pub.dev"
694+
source: hosted
695+
version: "2.5.4+6"
696+
sqflite_darwin:
697+
dependency: transitive
698+
description:
699+
name: sqflite_darwin
700+
sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c"
701+
url: "https://pub.dev"
702+
source: hosted
703+
version: "2.4.1+1"
704+
sqflite_platform_interface:
705+
dependency: transitive
706+
description:
707+
name: sqflite_platform_interface
708+
sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
709+
url: "https://pub.dev"
710+
source: hosted
711+
version: "2.4.0"
616712
stack_trace:
617713
dependency: transitive
618714
description:
@@ -661,6 +757,14 @@ packages:
661757
url: "https://pub.dev"
662758
source: hosted
663759
version: "2.8.4"
760+
synchronized:
761+
dependency: transitive
762+
description:
763+
name: synchronized
764+
sha256: "69fe30f3a8b04a0be0c15ae6490fc859a78ef4c43ae2dd5e8a623d45bfcf9225"
765+
url: "https://pub.dev"
766+
source: hosted
767+
version: "3.3.0+3"
664768
term_glyph:
665769
dependency: transitive
666770
description:
@@ -757,6 +861,14 @@ packages:
757861
url: "https://pub.dev"
758862
source: hosted
759863
version: "3.1.4"
864+
uuid:
865+
dependency: transitive
866+
description:
867+
name: uuid
868+
sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
869+
url: "https://pub.dev"
870+
source: hosted
871+
version: "4.5.1"
760872
vector_graphics:
761873
dependency: transitive
762874
description:

pubspec.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ dependencies:
4444
fluttertoast: ^8.2.6
4545
flutter_native_splash: ^2.4.4
4646
go_router: ^16.1.0
47+
cached_network_image: ^3.3.1
4748

4849
dev_dependencies:
4950
# encourage good coding practices. The lint set provided by the package is

0 commit comments

Comments
 (0)