android / user-interface-samples
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 671 units with 6,046 lines of code in units (53.9% of code).
    • 0 very long units (0 lines of code)
    • 15 long units (1,012 lines of code)
    • 47 medium size units (1,452 lines of code)
    • 77 small units (1,178 lines of code)
    • 532 very small units (2,404 lines of code)
0% | 16% | 24% | 19% | 39%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java0% | 17% | 25% | 16% | 40%
kt0% | 15% | 22% | 23% | 38%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
Notifications0% | 36% | 20% | 12% | 30%
InteractiveSliceProviderKotlin0% | 40% | 22% | 10% | 26%
DownloadableFonts0% | 49% | 16% | 9% | 25%
WindowManager0% | 15% | 22% | 17% | 44%
DragAndDrop0% | 77% | 0% | 15% | 6%
People0% | 9% | 14% | 25% | 50%
ElevationDrag0% | 0% | 38% | 11% | 50%
ClippingBasic0% | 0% | 30% | 13% | 55%
TextStyling0% | 0% | 41% | 12% | 45%
ElevationBasic0% | 0% | 31% | 14% | 53%
TextLinkify0% | 0% | 39% | 12% | 47%
SliceViewerKotlin0% | 0% | 24% | 39% | 35%
TextStylingKotlin0% | 0% | 68% | 0% | 31%
TextRoundedBackgroundKotlin0% | 0% | 42% | 36% | 20%
DownloadableFontsKotlin0% | 0% | 38% | 13% | 47%
SplashScreen0% | 0% | 48% | 28% | 23%
AppShortcuts0% | 0% | 11% | 47% | 41%
DarkTheme0% | 0% | 21% | 39% | 38%
EmojiCompat0% | 0% | 34% | 20% | 44%
AppWidget0% | 0% | 18% | 44% | 37%
PreferencesKotlin0% | 0% | 0% | 59% | 40%
EmojiCompatKotlin0% | 0% | 0% | 59% | 40%
ImmersiveMode0% | 0% | 0% | 100% | 0%
DocumentCentricApps0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
override fun buildSlice()
in InteractiveSliceProviderKotlin/app/src/main/java/com/example/android/interactivesliceprovider/slicebuilders/WifiSliceBuilder.kt
85 6 0
private void updateRulesFromCheckboxes()
in WindowManager/app/src/main/java/com/example/windowmanagersample/embedding/SplitActivityBase.java
81 6 0
override fun onCreate()
in DragAndDrop/app/src/main/java/dev/hadrosaur/draganddropsample/MainActivity.kt
74 2 1
private void generateMessagingStyleNotification()
in Notifications/Application/src/main/java/com/example/android/wearable/wear/wearnotifications/MainActivity.java
73 4 0
private void generateMessagingStyleNotification()
in Notifications/Wearable/src/main/java/com/example/android/wearable/wear/wearnotifications/StandaloneMainActivity.java
72 3 0
private void generateBigPictureStyleNotification()
in Notifications/Wearable/src/main/java/com/example/android/wearable/wear/wearnotifications/StandaloneMainActivity.java
71 2 0
private void generateBigPictureStyleNotification()
in Notifications/Application/src/main/java/com/example/android/wearable/wear/wearnotifications/MainActivity.java
70 3 0
private void generateBigTextStyleNotification()
in Notifications/Wearable/src/main/java/com/example/android/wearable/wear/wearnotifications/StandaloneMainActivity.java
69 2 0
override fun onViewCreated()
in People/app/src/main/java/com/example/android/people/ui/chat/ChatFragment.kt
68 7 2
override fun buildSlice()
in InteractiveSliceProviderKotlin/app/src/main/java/com/example/android/interactivesliceprovider/slicebuilders/WeatherSliceBuilder.kt
65 1 0
override fun buildSlice()
in InteractiveSliceProviderKotlin/app/src/main/java/com/example/android/interactivesliceprovider/slicebuilders/RideSliceBuilder.kt
64 1 0
private void generateBigTextStyleNotification()
in Notifications/Application/src/main/java/com/example/android/wearable/wear/wearnotifications/MainActivity.java
60 1 0
private void initializeSeekBars()
in DownloadableFonts/app/src/main/java/com/example/android/downloadablefonts/MainActivity.java
55 1 0
protected void onCreate()
in DownloadableFonts/app/src/main/java/com/example/android/downloadablefonts/MainActivity.java
53 3 1
private MessagingStyleCommsAppData()
in Notifications/Shared/src/main/java/com/example/android/wearable/wear/common/mock/MockDatabase.java
52 1 1
private void generateInboxStyleNotification()
in Notifications/Wearable/src/main/java/com/example/android/wearable/wear/wearnotifications/StandaloneMainActivity.java
48 3 0
private void generateInboxStyleNotification()
in Notifications/Application/src/main/java/com/example/android/wearable/wear/wearnotifications/MainActivity.java
47 3 0
private static List findElements()
in TextStyling/app/src/main/java/com/android/example/text/styling/parser/Parser.java
45 8 2
public void println()
in ElevationBasic/Application/src/main/java/com/example/android/common/logger/LogView.java
44 9 4
public void println()
in ClippingBasic/Application/src/main/java/com/example/android/common/logger/LogView.java
44 9 4