android / project-replicator
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 173 units with 3,200 lines of code in units (45.4% of code).
    • 2 very long units (395 lines of code)
    • 16 long units (940 lines of code)
    • 27 medium size units (822 lines of code)
    • 40 small units (601 lines of code)
    • 88 very small units (442 lines of code)
12% | 29% | 25% | 18% | 13%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
kt12% | 29% | 25% | 18% | 13%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
plugin/src22% | 52% | 16% | 5% | 2%
code/plugin50% | 22% | 0% | 22% | 4%
code/codegen0% | 16% | 32% | 33% | 17%
generator/src0% | 15% | 23% | 28% | 33%
model/src0% | 11% | 46% | 20% | 22%
buildSrc/src0% | 0% | 72% | 0% | 27%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
fun testResources()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
278 1 0
override fun apply()
in code/plugin/src/main/kotlin/com/android/gradle/replicator/codegen/plugin/CodegenPlugin.kt
117 2 1
fun testDataBinding()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
73 1 0
fun process()
in code/codegen/src/main/kotlin/com/android/gradle/replicator/codegen/Main.kt
70 5 1
fun setupProject()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/Fixtures.kt
68 6 4
override fun generateRootModule()
in generator/src/main/kotlin/com/android/gradle/replicator/generator/project/GradleProjectGenerator.kt
61 7 1
fun testViewBinding()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
61 1 0
fun process()
in code/codegen/src/main/kotlin/com/android/gradle/replicator/resgen/Main.kt
61 5 1
fun testBuildConfig()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
56 1 0
fun testCompose()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
56 1 0
fun testRenderScript()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
56 1 0
fun testResValues()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
56 1 0
fun testAidl()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
55 1 0
fun testPrefab()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
55 1 0
fun testShaders()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
55 1 0
fun testMlModelBinding()
in plugin/src/functionalTest/kotlin/com/android/gradle/replicator/BuildFeaturesTests.kt
55 1 0
override fun apply()
in code/plugin/src/main/kotlin/com/android/gradle/replicator/codegen/plugin/JavaLibraryCodegenPlugin.kt
51 2 1
override fun read()
in model/src/main/kotlin/com/android/gradle/replicator/model/internal/filedata/AndroidResourcePropertiesAdapter.kt
51 1 1
override fun read()
in model/src/main/kotlin/com/android/gradle/replicator/model/internal/DefaultModuleInfo.kt
48 2 1
override fun apply()
in buildSrc/src/main/kotlin/AgpFunctionalTestPlugin.kt
47 1 1