microsoft / appcenter-sdk-react-native
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
  • 48% duplication:
    • 5,902 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,859 duplicated lines
  • 181 duplicates
system48% (2,859 lines)
Duplication per Extension
js63% (2,192 lines)
m38% (326 lines)
java21% (219 lines)
tsx18% (70 lines)
bzl97% (34 lines)
cpp60% (12 lines)
ts5% (6 lines)
Duplication per Component (primary)
TestApp/app96% (908 lines)
DemoApp/app95% (905 lines)
TestApp3441% (128 lines)
appcenter-analytics/ios53% (110 lines)
TestAppTypescript/src18% (89 lines)
DemoApp/android64% (83 lines)
TestApp/android62% (77 lines)
DemoApp/jest100% (74 lines)
TestApp/jest100% (74 lines)
DemoApp/ios77% (74 lines)
TestApp/ios75% (74 lines)
TestAppTypescript/android51% (35 lines)
TestApp34/ios57% (34 lines)
TestAppTypescript/ios57% (34 lines)
appcenter-analytics/android11% (24 lines)
appcenter-crashes/android5% (20 lines)
appcenter/android11% (16 lines)
appcenter-analytics14% (14 lines)
appcenter-analytics/scripts34% (13 lines)
appcenter-crashes/scripts33% (13 lines)
TestApp34/js100% (13 lines)
TestApp58% (10 lines)
TestAppTypescript71% (10 lines)
DemoApp58% (10 lines)
TestApp34/android38% (10 lines)
appcenter/scripts20% (7 lines)
AppCenterReactNativeShared/android0% (0 lines)
AppCenterReactNativeShared/ios0% (0 lines)
appcenter-analytics/jest0% (0 lines)
appcenter-crashes0% (0 lines)
appcenter-crashes/ios0% (0 lines)
appcenter-link-scripts/src0% (0 lines)
appcenter0% (0 lines)
appcenter/ios0% (0 lines)

Duplication Between Components (50+ lines)

G DemoApp/app DemoApp/app TestApp/app TestApp/app DemoApp/app--TestApp/app 1806 TestApp34 TestApp34 TestApp/app--TestApp34 56 DemoApp/jest DemoApp/jest TestApp/jest TestApp/jest DemoApp/jest--TestApp/jest 148 DemoApp/ios DemoApp/ios TestApp/ios TestApp/ios DemoApp/ios--TestApp/ios 148 DemoApp/android DemoApp/android TestApp/android TestApp/android DemoApp/android--TestApp/android 148 TestAppTypescript/android TestAppTypescript/android DemoApp/android--TestAppTypescript/android 62 TestApp/android--TestAppTypescript/android 52 TestAppTypescript/src TestAppTypescript/src TestApp34--TestAppTypescript/src 140 TestApp34/ios TestApp34/ios TestAppTypescript/ios TestAppTypescript/ios TestApp34/ios--TestAppTypescript/ios 68

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 181 duplicates...
Size#FoldersFilesLinesCode
136 x 2 DemoApp/app/screens
TestApp/app/screens
CrashesScreen.js
CrashesScreen.js
104:277 (69%)
104:277 (69%)
view
125 x 2 DemoApp/app/screens
TestApp/app/screens
TransmissionScreen.js
TransmissionScreen.js
19:174 (57%)
18:173 (57%)
view
103 x 2 DemoApp/app/screens
TestApp/app/screens
AppCenterScreen.js
AppCenterScreen.js
116:242 (59%)
115:241 (59%)
view
85 x 2 DemoApp/app
TestApp/app
SharedStyles.js
SharedStyles.js
6:93 (100%)
6:93 (100%)
view
80 x 2 DemoApp/app
TestApp/app
AttachmentsProvider.js
AttachmentsProvider.js
8:125 (100%)
8:125 (100%)
view
61 x 2 DemoApp/app/screens
TestApp/app/screens
AppCenterScreen.js
AppCenterScreen.js
22:111 (35%)
21:110 (35%)
view
57 x 2 DemoApp/app/screens
TestApp/app/screens
TransmissionScreen.js
TransmissionScreen.js
178:245 (26%)
175:242 (26%)
view
52 x 2 DemoApp/app/screens
TestApp/app/screens
CrashesScreen.js
CrashesScreen.js
14:89 (26%)
14:89 (26%)
view
44 x 2 DemoApp/jest
TestApp/jest
preprocessor.js
preprocessor.js
4:52 (100%)
4:52 (100%)
view
42 x 2 DemoApp/ios/DemoApp
TestApp/ios/TestApp
DemoAppNative.m
TestAppNative.m
32:98 (89%)
32:98 (89%)
view
37 x 2 DemoApp/app
TestApp/app
App.js
App.js
16:61 (78%)
15:60 (84%)
view
30 x 2 DemoApp/jest
TestApp/jest
setup.js
setup.js
7:49 (100%)
7:49 (100%)
view
29 x 2 DemoApp/app/screens
TestApp/app/screens
PropertiesConfiguratorView.js
PropertiesConfiguratorView.js
10:42 (100%)
10:42 (100%)
view
27 x 2 DemoApp/app/screens
TestApp/app/screens
TransmissionScreen.js
TransmissionScreen.js
261:292 (12%)
258:289 (12%)
view
22 x 2 DemoApp/app/screens
TestApp/app/screens
AnalyticsScreen.js
AnalyticsScreen.js
34:61 (23%)
33:59 (23%)
view
22 x 2 DemoApp/android/app/src/main/java/com/demoapp
TestApp/android/app/src/main/java/com/testapp
DemoAppNativeModule.java
TestAppNativeModule.java
79:113 (37%)
70:104 (36%)
view
20 x 2 DemoApp/app/screens
TestApp/app/screens
AnalyticsScreen.js
AnalyticsScreen.js
65:88 (21%)
61:84 (21%)
view
20 x 2 TestApp/app
TestApp34
App.js
MainScreen.js
34:55 (45%)
44:65 (37%)
view
20 x 2 DemoApp/app
TestApp34
App.js
MainScreen.js
35:56 (42%)
44:65 (37%)
view
19 x 2 TestApp34/ios/TestApp34Tests
TestAppTypescript/ios/TestAppTypescriptTests
TestApp34Tests.m
TestAppTypescriptTests.m
44:73 (61%)
41:70 (61%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 32 unit duplicates...
Size#FoldersFilesLinesCode
100 x 2 DemoApp/app/screens
TestApp/app/screens
CrashesScreen.js
CrashesScreen.js
104:216 
104:216 
view
32 x 2 DemoApp/jest
TestApp/jest
preprocessor.js
preprocessor.js
12:45 
12:45 
view
24 x 2 DemoApp/app/screens
TestApp/app/screens
TransmissionScreen.js
TransmissionScreen.js
72:96 
71:95 
view
20 x 2 DemoApp/app/screens
TestApp/app/screens
AppCenterScreen.js
AppCenterScreen.js
116:136 
115:135 
view
20 x 2 DemoApp/app/screens
TestApp/app/screens
CrashesScreen.js
CrashesScreen.js
37:63 
37:63 
view
19 x 2 DemoApp/app/screens
TestApp/app/screens
AppCenterScreen.js
AppCenterScreen.js
77:98 
76:97 
view
17 x 2 DemoApp/app
TestApp/app
AttachmentsProvider.js
AttachmentsProvider.js
32:49 
32:49 
view
13 x 2 DemoApp/app
TestApp/app
AttachmentsProvider.js
AttachmentsProvider.js
85:98 
85:98 
view
13 x 2 DemoApp/app/screens
TestApp/app/screens
CrashesScreen.js
CrashesScreen.js
250:263 
250:263 
view
12 x 2 DemoApp/jest
TestApp/jest
setup.js
setup.js
13:27 
13:27 
view
12 x 3 DemoApp/app
TestApp/app
TestApp34
App.js
App.js
MainScreen.js
41:53 
40:52 
50:62 
view
11 x 2 DemoApp/android/app/src/main/java/com/demoapp
TestApp/android/app/src/main/java/com/testapp
DemoAppNativeModule.java
TestAppNativeModule.java
107:118 
98:109 
view
11 x 2 appcenter-analytics/andr...r/reactnative/analytics
appcenter-crashes/androi...ter/reactnative/crashes
ReactNativeUtils.java
AppCenterReactNativeCrashesUtils.java
91:105 
165:179 
view
10 x 2 DemoApp/app/screens
TestApp/app/screens
TransmissionScreen.js
TransmissionScreen.js
118:128 
117:127 
view
10 x 2 DemoApp/app/screens
TestApp/app/screens
TransmissionScreen.js
TransmissionScreen.js
190:200 
187:197 
view
9 x 2 DemoApp/app
TestApp/app
AttachmentsProvider.js
AttachmentsProvider.js
66:75 
66:75 
view
9 x 2 DemoApp/app/screens
TestApp/app/screens
AppCenterScreen.js
AppCenterScreen.js
226:235 
225:234 
view
8 x 3 DemoApp/android/app/src/main/java/com/demoapp
TestApp/android/app/src/main/java/com/testapp
TestAppTypescript/androi...c/main/java/com/testapp
DemoAppNativeModule.java
TestAppNativeModule.java
TestAppNativeModule.java
81:91 
72:82 
33:43 
view
8 x 2 DemoApp/app
TestApp/app
AttachmentsProvider.js
AttachmentsProvider.js
100:108 
100:108 
view
8 x 2 DemoApp/app
TestApp/app
AttachmentsProvider.js
AttachmentsProvider.js
111:119 
111:119 
view