flutter / uxr
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 55% duplication:
    • 6,530 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 3,641 duplicated lines
  • 1,406 duplicates
system55% (3,641 lines)
Duplication per Extension
dart61% (3,613 lines)
R6% (28 lines)
Duplication per Component (primary)
nav2-usability/scenario_code/lib/skipping-stacks59% (827 lines)
nav2-usability/scenario_code/lib/sign-in-routing63% (773 lines)
nav2-usability/scenario_code/lib/nested-routing53% (629 lines)
nav2-usability/scenario_code/lib/dynamic-linking56% (519 lines)
nav2-usability/scenario_code/lib/deeplink-pathparam70% (488 lines)
nav2-usability/scenario_code/lib/deeplink-queryparam74% (377 lines)
survey-analysis4% (28 lines)
nav2-usability/scenario_code/ios/Runner0% (0 lines)
nav2-usability/scenario_code/web0% (0 lines)
nav2-usability/scenario_code0% (0 lines)
nav2-usability/scenario_code/macos/Flutter0% (0 lines)
nav2-usability/scenario_code/macos/Runner0% (0 lines)
nav2-usability/scenario_code/android/app0% (0 lines)

Duplication Between Components (50+ lines)

G nav2-usability/scenario_code/lib/deeplink-pathparam nav2-usability/scenario_code/lib/deeplink-pathparam nav2-usability/scenario_code/lib/skipping-stacks nav2-usability/scenario_code/lib/skipping-stacks nav2-usability/scenario_code/lib/deeplink-pathparam--nav2-usability/scenario_code/lib/skipping-stacks 792 nav2-usability/scenario_code/lib/dynamic-linking nav2-usability/scenario_code/lib/dynamic-linking nav2-usability/scenario_code/lib/deeplink-pathparam--nav2-usability/scenario_code/lib/dynamic-linking 393 nav2-usability/scenario_code/lib/deeplink-queryparam nav2-usability/scenario_code/lib/deeplink-queryparam nav2-usability/scenario_code/lib/deeplink-pathparam--nav2-usability/scenario_code/lib/deeplink-queryparam 436 nav2-usability/scenario_code/lib/sign-in-routing nav2-usability/scenario_code/lib/sign-in-routing nav2-usability/scenario_code/lib/deeplink-pathparam--nav2-usability/scenario_code/lib/sign-in-routing 206 nav2-usability/scenario_code/lib/nested-routing nav2-usability/scenario_code/lib/nested-routing nav2-usability/scenario_code/lib/deeplink-pathparam--nav2-usability/scenario_code/lib/nested-routing 166 nav2-usability/scenario_code/lib/dynamic-linking--nav2-usability/scenario_code/lib/skipping-stacks 482 nav2-usability/scenario_code/lib/dynamic-linking--nav2-usability/scenario_code/lib/sign-in-routing 226 nav2-usability/scenario_code/lib/dynamic-linking--nav2-usability/scenario_code/lib/nested-routing 158 nav2-usability/scenario_code/lib/deeplink-queryparam--nav2-usability/scenario_code/lib/skipping-stacks 330 nav2-usability/scenario_code/lib/deeplink-queryparam--nav2-usability/scenario_code/lib/dynamic-linking 178 nav2-usability/scenario_code/lib/deeplink-queryparam--nav2-usability/scenario_code/lib/sign-in-routing 180 nav2-usability/scenario_code/lib/deeplink-queryparam--nav2-usability/scenario_code/lib/nested-routing 180 nav2-usability/scenario_code/lib/sign-in-routing--nav2-usability/scenario_code/lib/skipping-stacks 230 nav2-usability/scenario_code/lib/nested-routing--nav2-usability/scenario_code/lib/skipping-stacks 180 nav2-usability/scenario_code/lib/nested-routing--nav2-usability/scenario_code/lib/sign-in-routing 148

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 1,406 duplicates...
Size#FoldersFilesLinesCode
95 x 2 nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
router.dart
skipping_stacks_beamer.dart
393:504 (26%)
145:256 (47%)
view
61 x 2 nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
dynamic_linking_beamer.dart
dynamic_linking_navi.dart
101:171 (44%)
110:180 (44%)
view
60 x 2 nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
dynamic_linking_beamer.dart
router.dart
105:171 (43%)
190:256 (33%)
view
60 x 2 nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
dynamic_linking_navi.dart
router.dart
114:180 (43%)
190:256 (33%)
view
58 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_beamer.dart
router.dart
135:206 (35%)
234:305 (22%)
view
53 x 2 nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
router.dart
sign_in_routing_go_router.dart
299:358 (20%)
150:209 (29%)
view
44 x 2 nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
sign_in_routing_beamer.dart
sign_in_routing_go_router.dart
150:197 (28%)
162:209 (24%)
view
44 x 2 nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
router.dart
sign_in_routing_beamer.dart
311:358 (17%)
150:197 (28%)
view
42 x 2 nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_.../lib/deeplink-pathparam
deeplink_pathparam_beamer.dart
router.dart
55:103 (48%)
211:259 (23%)
view
42 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_auto_route.dart
nested_routing_qlevar_router.dart
129:179 (30%)
122:172 (32%)
view
41 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_beamer.dart
nested_routing_qlevar_router.dart
157:206 (25%)
123:172 (31%)
view
41 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_auto_route.dart
router.dart
130:179 (29%)
256:305 (16%)
view
41 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_beamer.dart
nested_routing_go_router.dart
157:206 (25%)
150:199 (23%)
view
41 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_go_router.dart
router.dart
150:199 (23%)
256:305 (16%)
view
41 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_go_router.dart
nested_routing_qlevar_router.dart
150:199 (23%)
123:172 (31%)
view
41 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_auto_route.dart
nested_routing_go_router.dart
130:179 (29%)
150:199 (23%)
view
41 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_qlevar_router.dart
router.dart
123:172 (31%)
256:305 (16%)
view
41 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_auto_route.dart
nested_routing_beamer.dart
130:179 (29%)
157:206 (25%)
view
40 x 2 nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
sign_in_routing_auto_route.dart
sign_in_routing_go_router.dart
153:203 (24%)
136:186 (22%)
view
39 x 2 nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
router.dart
sign_in_routing_beamer.dart
261:309 (15%)
100:148 (24%)
view
Duplicated Units
The list of top 19 duplicated units.
See data for all 19 unit duplicates...
Size#FoldersFilesLinesCode
30 x 3 nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
router.dart
dynamic_linking_navi.dart
dynamic_linking_beamer.dart
202:232 
126:156 
117:147 
view
24 x 3 nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
router.dart
sign_in_routing_auto_route.dart
sign_in_routing_go_router.dart
308:332 
176:200 
159:183 
view
23 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
router.dart
nested_routing_beamer.dart
250:273 
151:174 
view
21 x 3 nav2-usability/scenario_...lib/deeplink-queryparam
nav2-usability/scenario_...lib/deeplink-queryparam
nav2-usability/scenario_...lib/deeplink-queryparam
deeplink_queryparam_navi.dart
router.dart
deeplink-queryparam_beamer.dart
102:123 
141:162 
73:94 
view
20 x 7 nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
sign_in_routing_qlevar_router.dart
sign_in_routing_navi.dart
router.dart
sign_in_routing_beamer.dart
sign_in_routing_auto_route.dart
sign_in_routing_vrouter.dart
sign_in_routing_go_router.dart
148:168 
222:242 
339:359 
178:198 
207:227 
195:215 
190:210 
view
19 x 2 nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
router.dart
skipping_stacks_beamer.dart
462:481 
214:233 
view
18 x 2 nav2-usability/scenario_code/lib/sign-in-routing
nav2-usability/scenario_code/lib/sign-in-routing
router.dart
sign_in_routing_beamer.dart
271:289 
110:128 
view
17 x 2 nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
router.dart
skipping_stacks_beamer.dart
432:449 
184:201 
view
14 x 3 nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
router.dart
skipping_stacks_beamer.dart
skipping_stacks_navi.dart
403:417 
155:169 
228:242 
view
14 x 4 nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
router.dart
dynamic_linking_go_router.dart
dynamic_linking_navi.dart
dynamic_linking_beamer.dart
243:257 
153:167 
167:181 
158:172 
view
14 x 6 nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_.../lib/deeplink-pathparam
deeplink_pathparam_go_router.dart
deeplink_pathparam_beamer.dart
router.dart
deeplink_pathparam_qlevar_router.dart
deeplink_pathparam_navi.dart
deeplink_pathparam_vrouter.dart
101:115 
90:104 
246:260 
61:75 
143:157 
89:103 
view
14 x 2 nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_.../lib/deeplink-pathparam
deeplink_pathparam_beamer.dart
router.dart
65:79 
221:235 
view
13 x 5 nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
router.dart
skipping_stacks_beamer.dart
skipping_stacks_navi.dart
skipping_stacks_vrouter.dart
skipping_stacks_go_router.dart
492:505 
244:257 
313:326 
177:190 
192:205 
view
13 x 2 nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
dynamic_linking_vrouter.dart
dynamic_linking_auto_route.dart
147:160 
130:143 
view
9 x 2 nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_.../lib/deeplink-pathparam
skipping_stacks_navi.dart
deeplink_pathparam_navi.dart
173:183 
65:75 
view
7 x 2 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
router.dart
nested_routing_beamer.dart
235:242 
136:143 
view
6 x 4 nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_...lib/deeplink-queryparam
nav2-usability/scenario_code/lib/nested-routing
skipping_stacks_auto_route.dart
deeplink_pathparam_auto_route.dart
deeplink_queryparam_auto_route.dart
nested_routing_auto_route.dart
69:75 
43:49 
42:48 
38:44 
view
6 x 12 nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/skipping-stacks
nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_code/lib/dynamic-linking
nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_.../lib/deeplink-pathparam
nav2-usability/scenario_...lib/deeplink-queryparam
nav2-usability/scenario_...lib/deeplink-queryparam
nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
...
router.dart
skipping_stacks_navi.dart
router.dart
dynamic_linking_navi.dart
router.dart
deeplink_pathparam_navi.dart
deeplink_queryparam_navi.dart
router.dart
router.dart
nested_routing_navi.dart
...
134:140 
55:61 
53:59 
41:47 
67:73 
46:52 
45:51 
51:57 
46:52 
31:37 
...
view
6 x 8 nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nav2-usability/scenario_code/lib/nested-routing
nested_routing_auto_route.dart
nested_routing_auto_route.dart
router.dart
nested_routing_beamer.dart
nested_routing_vrouter.dart
nested_routing_qlevar_router.dart
nested_routing_go_router.dart
nested_routing_navi.dart
152:158 
163:169 
278:284 
179:185 
147:153 
145:151 
172:178 
192:198 
view