android / architecture-components-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 465 units with 3,399 lines of code in units (42.2% of code).
    • 0 very long units (0 lines of code)
    • 0 long units (0 lines of code)
    • 19 medium size units (501 lines of code)
    • 76 small units (1,090 lines of code)
    • 370 very small units (1,808 lines of code)
0% | 0% | 14% | 32% | 53%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
kt0% | 0% | 17% | 39% | 43%
java0% | 0% | 11% | 24% | 64%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
PersistenceMigrationsSample0% | 0% | 13% | 22% | 63%
GithubBrowserSample0% | 0% | 15% | 34% | 49%
WorkManagerSample0% | 0% | 34% | 41% | 23%
PagingWithNetworkSample0% | 0% | 19% | 50% | 30%
BasicSample0% | 0% | 12% | 15% | 72%
WorkManagerMultiprocessSample0% | 0% | 67% | 0% | 32%
PersistenceContentProviderSample0% | 0% | 11% | 47% | 41%
NavigationBasicSample0% | 0% | 0% | 71% | 28%
PagingSample0% | 0% | 0% | 39% | 60%
NavigationAdvancedSample0% | 0% | 0% | 32% | 67%
BasicRxJavaSample0% | 0% | 0% | 11% | 88%
BasicRxJavaSampleKotlin0% | 0% | 0% | 0% | 100%
ViewBindingSample0% | 0% | 0% | 0% | 100%
LiveDataSample0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
override suspend fun load()
in PagingWithNetworkSample/app/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/repository/inDb/PageKeyedRemoteMediator.kt
43 5 2
override fun run()
in GithubBrowserSample/app/src/main/java/com/android/example/github/repository/FetchNextSearchPageTask.kt
40 4 0
public void setProductList()
in BasicSample/app/src/main/java/com/example/android/persistence/ui/ProductAdapter.java
33 5 1
override fun onChanged()
in GithubBrowserSample/app/src/main/java/com/android/example/github/ui/search/SearchViewModel.kt
30 2 1
fun updateFromCombinedLoadStates()
in PagingWithNetworkSample/lib/src/main/java/com/android/example/paging/pagingwithnetwork/reddit/paging/LoadStatesMerger.kt
29 1 1
override fun doWork()
in WorkManagerSample/lib/src/main/java/com/example/background/workers/UploadWorker.kt
29 4 0
override fun onCreate()
in WorkManagerSample/app/src/main/java/com/example/background/SelectImageActivity.kt
28 2 1
override fun onCreate()
in WorkManagerMultiprocessSample/app/src/main/java/com/example/background/multiprocess/MainActivity.kt
27 1 1
void getUser()
in PersistenceMigrationsSample/app/src/sqlite/java/com/example/android/persistence/migrations/UserRepository.java
24 3 1
void getUser()
in PersistenceMigrationsSample/app/src/room3/java/com/example/android/persistence/migrations/UserRepository.java
24 3 1
void updateUserName()
in PersistenceMigrationsSample/app/src/room3/java/com/example/android/persistence/migrations/UserRepository.java
23 3 2
override fun onViewCreated()
in GithubBrowserSample/app/src/main/java/com/android/example/github/ui/repo/RepoFragment.kt
22 1 2
public User getUser()
in PersistenceMigrationsSample/app/src/sqlite/java/com/example/android/persistence/migrations/LocalUserDataSource.java
22 5 0
void updateUserName()
in PersistenceMigrationsSample/app/src/sqlite/java/com/example/android/persistence/migrations/UserRepository.java
22 3 2
fun create()
in GithubBrowserSample/app/src/main/java/com/android/example/github/api/ApiResponse.kt
21 5 1
private static AppDatabase buildDatabase()
in BasicSample/app/src/main/java/com/example/android/persistence/db/AppDatabase.java
21 1 2
override fun applyFilter()
in WorkManagerSample/lib/src/main/java/com/example/background/workers/filters/GrayScaleFilterWorker.kt
21 1 1
override fun applyFilter()
in WorkManagerSample/lib/src/main/java/com/example/background/workers/filters/WaterColorFilterWorker.kt
21 1 1
public Cursor query()
in PersistenceContentProviderSample/app/src/main/java/com/example/android/contentprovidersample/provider/SampleContentProvider.java
21 5 5
override fun onCreateView()
in GithubBrowserSample/app/src/main/java/com/android/example/github/ui/user/UserFragment.kt
20 1 3