Skip to content

Commit 0b3c8c4

Browse files
committed
fix(mobile): resolve lint errors and comply with very_good_analysis
1 parent 4175f4f commit 0b3c8c4

File tree

7 files changed

+247
-81
lines changed

7 files changed

+247
-81
lines changed

apps/mobile/analysis_options.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ analyzer:
1616
- "**/*.g.dart"
1717
# freezed generated files
1818
- "**/*.freezed.dart"
19+
# Firebase generated file
20+
- "lib/firebase_options.dart"
1921
errors:
2022
# Ignore invalid_annotation_target for json_serializable
2123
invalid_annotation_target: ignore
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import 'package:dio/dio.dart';
22

3+
/// {@template api_client}
4+
/// A client for making network requests.
5+
/// {@endtemplate}
36
class ApiClient {
4-
final Dio _dio;
5-
7+
/// {@macro api_client}
68
ApiClient({String? baseUrl})
79
: _dio = Dio(
810
BaseOptions(
@@ -12,5 +14,8 @@ class ApiClient {
1214
),
1315
);
1416

17+
final Dio _dio;
18+
19+
/// The underlying [Dio] instance.
1520
Dio get dio => _dio;
1621
}

apps/mobile/lib/core/router/router.dart

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,19 @@ import 'package:riverpod_annotation/riverpod_annotation.dart';
55
part 'router.g.dart';
66

77
@riverpod
8-
GoRouter router(RouterRef ref) {
8+
/// The main router for the application.
9+
GoRouter router(Ref ref) {
910
return GoRouter(
1011
initialLocation: '/',
1112
routes: [GoRoute(path: '/', builder: (context, state) => const HomePage())],
1213
);
1314
}
1415

16+
/// {@template home_page}
17+
/// The home page of the application.
18+
/// {@endtemplate}
1519
class HomePage extends StatelessWidget {
20+
/// {@macro home_page}
1621
const HomePage({super.key});
1722

1823
@override

apps/mobile/lib/core/theme/app_theme.dart

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
import 'package:flutter/material.dart';
22

3+
/// {@template app_theme}
4+
/// The theme configuration for the application.
5+
/// {@endtemplate}
36
class AppTheme {
47
AppTheme._();
58

9+
/// The light theme.
610
static ThemeData get light => ThemeData(
7-
useMaterial3: true,
8-
colorScheme: ColorScheme.fromSeed(
9-
seedColor: Colors.blue,
10-
brightness: Brightness.light,
11-
),
11+
colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
1212
);
1313

14+
/// The dark theme.
1415
static ThemeData get dark => ThemeData(
15-
useMaterial3: true,
1616
colorScheme: ColorScheme.fromSeed(
1717
seedColor: Colors.blue,
1818
brightness: Brightness.dark,

apps/mobile/lib/core/theme/generated_theme.dart

Lines changed: 196 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,20 +7,104 @@ import 'package:forui/forui.dart';
77

88
final generatedLightTheme = FThemes.zinc.light.copyWith(
99
colors: FThemes.zinc.light.colors.copyWith(
10-
barrier: Color.from(alpha: 1.000, red: 0.8982, green: 0.8982, blue: 0.8982, colorSpace: ColorSpace.displayP3),
11-
background: Color.from(alpha: 1.000, red: 1.0000, green: 1.0000, blue: 1.0000, colorSpace: ColorSpace.displayP3),
12-
foreground: Color.from(alpha: 1.000, red: 0.0394, green: 0.0394, blue: 0.0394, colorSpace: ColorSpace.displayP3),
13-
primary: Color.from(alpha: 1.000, red: 0.6909, green: 0.8958, blue: 0.3768, colorSpace: ColorSpace.displayP3),
14-
primaryForeground: Color.from(alpha: 1.000, red: 0.0905, green: 0.0905, blue: 0.0905, colorSpace: ColorSpace.displayP3),
15-
secondary: Color.from(alpha: 1.000, red: 0.9606, green: 0.9606, blue: 0.9606, colorSpace: ColorSpace.displayP3),
16-
secondaryForeground: Color.from(alpha: 1.000, red: 0.0905, green: 0.0905, blue: 0.0905, colorSpace: ColorSpace.displayP3),
17-
muted: Color.from(alpha: 1.000, red: 0.9606, green: 0.9606, blue: 0.9606, colorSpace: ColorSpace.displayP3),
18-
mutedForeground: Color.from(alpha: 1.000, red: 0.4515, green: 0.4515, blue: 0.4515, colorSpace: ColorSpace.displayP3),
19-
destructive: Color.from(alpha: 1.000, red: 0.8303, green: 0.1404, blue: 0.1332, colorSpace: ColorSpace.displayP3),
20-
destructiveForeground: Color.from(alpha: 1.000, red: 1.0000, green: 1.0000, blue: 1.0000, colorSpace: ColorSpace.displayP3),
21-
error: Color.from(alpha: 1.000, red: 0.8303, green: 0.1404, blue: 0.1332, colorSpace: ColorSpace.displayP3),
22-
errorForeground: Color.from(alpha: 1.000, red: 1.0000, green: 1.0000, blue: 1.0000, colorSpace: ColorSpace.displayP3),
23-
border: Color.from(alpha: 1.000, red: 0.8982, green: 0.8982, blue: 0.8982, colorSpace: ColorSpace.displayP3),
10+
barrier: Color.from(
11+
alpha: 1.000,
12+
red: 0.8982,
13+
green: 0.8982,
14+
blue: 0.8982,
15+
colorSpace: ColorSpace.displayP3,
16+
),
17+
background: Color.from(
18+
alpha: 1.000,
19+
red: 1.0000,
20+
green: 1.0000,
21+
blue: 1.0000,
22+
colorSpace: ColorSpace.displayP3,
23+
),
24+
foreground: Color.from(
25+
alpha: 1.000,
26+
red: 0.0394,
27+
green: 0.0394,
28+
blue: 0.0394,
29+
colorSpace: ColorSpace.displayP3,
30+
),
31+
primary: Color.from(
32+
alpha: 1.000,
33+
red: 0.6909,
34+
green: 0.8958,
35+
blue: 0.3768,
36+
colorSpace: ColorSpace.displayP3,
37+
),
38+
primaryForeground: Color.from(
39+
alpha: 1.000,
40+
red: 0.0905,
41+
green: 0.0905,
42+
blue: 0.0905,
43+
colorSpace: ColorSpace.displayP3,
44+
),
45+
secondary: Color.from(
46+
alpha: 1.000,
47+
red: 0.9606,
48+
green: 0.9606,
49+
blue: 0.9606,
50+
colorSpace: ColorSpace.displayP3,
51+
),
52+
secondaryForeground: Color.from(
53+
alpha: 1.000,
54+
red: 0.0905,
55+
green: 0.0905,
56+
blue: 0.0905,
57+
colorSpace: ColorSpace.displayP3,
58+
),
59+
muted: Color.from(
60+
alpha: 1.000,
61+
red: 0.9606,
62+
green: 0.9606,
63+
blue: 0.9606,
64+
colorSpace: ColorSpace.displayP3,
65+
),
66+
mutedForeground: Color.from(
67+
alpha: 1.000,
68+
red: 0.4515,
69+
green: 0.4515,
70+
blue: 0.4515,
71+
colorSpace: ColorSpace.displayP3,
72+
),
73+
destructive: Color.from(
74+
alpha: 1.000,
75+
red: 0.8303,
76+
green: 0.1404,
77+
blue: 0.1332,
78+
colorSpace: ColorSpace.displayP3,
79+
),
80+
destructiveForeground: Color.from(
81+
alpha: 1.000,
82+
red: 1.0000,
83+
green: 1.0000,
84+
blue: 1.0000,
85+
colorSpace: ColorSpace.displayP3,
86+
),
87+
error: Color.from(
88+
alpha: 1.000,
89+
red: 0.8303,
90+
green: 0.1404,
91+
blue: 0.1332,
92+
colorSpace: ColorSpace.displayP3,
93+
),
94+
errorForeground: Color.from(
95+
alpha: 1.000,
96+
red: 1.0000,
97+
green: 1.0000,
98+
blue: 1.0000,
99+
colorSpace: ColorSpace.displayP3,
100+
),
101+
border: Color.from(
102+
alpha: 1.000,
103+
red: 0.8982,
104+
green: 0.8982,
105+
blue: 0.8982,
106+
colorSpace: ColorSpace.displayP3,
107+
),
24108
hoverLighten: 0.075,
25109
hoverDarken: 0.05,
26110
disabledOpacity: 0.5,
@@ -29,20 +113,104 @@ final generatedLightTheme = FThemes.zinc.light.copyWith(
29113

30114
final generatedDarkTheme = FThemes.zinc.dark.copyWith(
31115
colors: FThemes.zinc.dark.colors.copyWith(
32-
barrier: Color.from(alpha: 0.100, red: 1.0000, green: 1.0000, blue: 1.0000, colorSpace: ColorSpace.displayP3),
33-
background: Color.from(alpha: 1.000, red: 0.0394, green: 0.0394, blue: 0.0394, colorSpace: ColorSpace.displayP3),
34-
foreground: Color.from(alpha: 1.000, red: 0.9803, green: 0.9803, blue: 0.9803, colorSpace: ColorSpace.displayP3),
35-
primary: Color.from(alpha: 1.000, red: 0.6909, green: 0.8958, blue: 0.3768, colorSpace: ColorSpace.displayP3),
36-
primaryForeground: Color.from(alpha: 1.000, red: 0.0905, green: 0.0905, blue: 0.0905, colorSpace: ColorSpace.displayP3),
37-
secondary: Color.from(alpha: 1.000, red: 0.1494, green: 0.1494, blue: 0.1494, colorSpace: ColorSpace.displayP3),
38-
secondaryForeground: Color.from(alpha: 1.000, red: 0.9803, green: 0.9803, blue: 0.9803, colorSpace: ColorSpace.displayP3),
39-
muted: Color.from(alpha: 1.000, red: 0.1494, green: 0.1494, blue: 0.1494, colorSpace: ColorSpace.displayP3),
40-
mutedForeground: Color.from(alpha: 1.000, red: 0.6302, green: 0.6302, blue: 0.6302, colorSpace: ColorSpace.displayP3),
41-
destructive: Color.from(alpha: 1.000, red: 0.9335, green: 0.4317, blue: 0.4235, colorSpace: ColorSpace.displayP3),
42-
destructiveForeground: Color.from(alpha: 1.000, red: 0.9803, green: 0.9803, blue: 0.9803, colorSpace: ColorSpace.displayP3),
43-
error: Color.from(alpha: 1.000, red: 0.9335, green: 0.4317, blue: 0.4235, colorSpace: ColorSpace.displayP3),
44-
errorForeground: Color.from(alpha: 1.000, red: 0.9803, green: 0.9803, blue: 0.9803, colorSpace: ColorSpace.displayP3),
45-
border: Color.from(alpha: 0.100, red: 1.0000, green: 1.0000, blue: 1.0000, colorSpace: ColorSpace.displayP3),
116+
barrier: Color.from(
117+
alpha: 0.100,
118+
red: 1.0000,
119+
green: 1.0000,
120+
blue: 1.0000,
121+
colorSpace: ColorSpace.displayP3,
122+
),
123+
background: Color.from(
124+
alpha: 1.000,
125+
red: 0.0394,
126+
green: 0.0394,
127+
blue: 0.0394,
128+
colorSpace: ColorSpace.displayP3,
129+
),
130+
foreground: Color.from(
131+
alpha: 1.000,
132+
red: 0.9803,
133+
green: 0.9803,
134+
blue: 0.9803,
135+
colorSpace: ColorSpace.displayP3,
136+
),
137+
primary: Color.from(
138+
alpha: 1.000,
139+
red: 0.6909,
140+
green: 0.8958,
141+
blue: 0.3768,
142+
colorSpace: ColorSpace.displayP3,
143+
),
144+
primaryForeground: Color.from(
145+
alpha: 1.000,
146+
red: 0.0905,
147+
green: 0.0905,
148+
blue: 0.0905,
149+
colorSpace: ColorSpace.displayP3,
150+
),
151+
secondary: Color.from(
152+
alpha: 1.000,
153+
red: 0.1494,
154+
green: 0.1494,
155+
blue: 0.1494,
156+
colorSpace: ColorSpace.displayP3,
157+
),
158+
secondaryForeground: Color.from(
159+
alpha: 1.000,
160+
red: 0.9803,
161+
green: 0.9803,
162+
blue: 0.9803,
163+
colorSpace: ColorSpace.displayP3,
164+
),
165+
muted: Color.from(
166+
alpha: 1.000,
167+
red: 0.1494,
168+
green: 0.1494,
169+
blue: 0.1494,
170+
colorSpace: ColorSpace.displayP3,
171+
),
172+
mutedForeground: Color.from(
173+
alpha: 1.000,
174+
red: 0.6302,
175+
green: 0.6302,
176+
blue: 0.6302,
177+
colorSpace: ColorSpace.displayP3,
178+
),
179+
destructive: Color.from(
180+
alpha: 1.000,
181+
red: 0.9335,
182+
green: 0.4317,
183+
blue: 0.4235,
184+
colorSpace: ColorSpace.displayP3,
185+
),
186+
destructiveForeground: Color.from(
187+
alpha: 1.000,
188+
red: 0.9803,
189+
green: 0.9803,
190+
blue: 0.9803,
191+
colorSpace: ColorSpace.displayP3,
192+
),
193+
error: Color.from(
194+
alpha: 1.000,
195+
red: 0.9335,
196+
green: 0.4317,
197+
blue: 0.4235,
198+
colorSpace: ColorSpace.displayP3,
199+
),
200+
errorForeground: Color.from(
201+
alpha: 1.000,
202+
red: 0.9803,
203+
green: 0.9803,
204+
blue: 0.9803,
205+
colorSpace: ColorSpace.displayP3,
206+
),
207+
border: Color.from(
208+
alpha: 0.100,
209+
red: 1.0000,
210+
green: 1.0000,
211+
blue: 1.0000,
212+
colorSpace: ColorSpace.displayP3,
213+
),
46214
hoverLighten: 0.075,
47215
hoverDarken: 0.05,
48216
disabledOpacity: 0.5,

apps/mobile/lib/main.dart

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,9 @@ import 'package:flutter/material.dart';
77
import 'package:flutter_localizations/flutter_localizations.dart';
88
import 'package:flutter_riverpod/flutter_riverpod.dart';
99
import 'package:forui/forui.dart';
10-
11-
import 'core/router/router.dart';
12-
import 'core/theme/app_theme.dart';
13-
import 'firebase_options.dart';
10+
import 'package:mobile/core/router/router.dart';
11+
import 'package:mobile/core/theme/app_theme.dart';
12+
import 'package:mobile/firebase_options.dart';
1413

1514
Future<void> main() async {
1615
await runZonedGuarded(
@@ -22,11 +21,15 @@ Future<void> main() async {
2221
);
2322

2423
FlutterError.onError = (errorDetails) {
25-
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
24+
unawaited(
25+
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails),
26+
);
2627
};
2728

2829
PlatformDispatcher.instance.onError = (error, stack) {
29-
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
30+
unawaited(
31+
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true),
32+
);
3033
return true;
3134
};
3235

@@ -39,12 +42,18 @@ Future<void> main() async {
3942
runApp(const ProviderScope(child: MyApp()));
4043
},
4144
(error, stack) {
42-
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
45+
unawaited(
46+
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true),
47+
);
4348
},
4449
);
4550
}
4651

52+
/// {@template my_app}
53+
/// The root widget of the application.
54+
/// {@endtemplate}
4755
class MyApp extends ConsumerWidget {
56+
/// {@macro my_app}
4857
const MyApp({super.key});
4958

5059
@override
@@ -60,7 +69,6 @@ class MyApp extends ConsumerWidget {
6069
title: 'Fullstack Starter',
6170
theme: AppTheme.light,
6271
darkTheme: AppTheme.dark,
63-
themeMode: ThemeMode.system,
6472
routerConfig: router,
6573
localizationsDelegates: const [
6674
GlobalMaterialLocalizations.delegate,

0 commit comments

Comments
 (0)