Overview › Performance

Performance

Heavy app startup, dual image libs (Coil + Glide), no baseline profile.

76 findings in this category
60
SCORE

Summary

Several known performance risk areas: heavy synchronous initialization in CostcoApplication, two image-loading libraries shipped, no baseline profile, and uncertain LazyList/RecyclerView discipline.

Findings

HIGH

Heavy synchronous app startup

CostcoApplication eagerly initializes 20+ injected dependencies (TimeManager, FontMap, FlowManager, LocaleManager, BiometricUtil, ConfigManager, VolleyManager, WarehouseManager, ...).
Costco/src/main/java/com/costco/app/android/CostcoApplication.java
Recommendation: Use androidx.startup.Initializer for explicit, ordered startup; defer non-critical init to idleHandler or a coroutine on Dispatchers.IO after first frame; measure with Macrobenchmark.
HIGH

Two image libraries shipped

Both Coil 2.7.0 and Glide 5.0.5 are dependencies. Two libraries means duplicate disk caches, duplicate bitmap pools, and bigger APK.
Recommendation: Pick Coil (Compose-native) and remove Glide; or vice-versa. Migrate call sites in a single sprint.
MEDIUM

No baseline profile

No baselineProfile in build files — first-run startup and frame-rate are not optimized via AOT compilation hints.
Recommendation: Generate a baseline profile for Home → PDP → Cart journey; ship it via Macrobenchmark.
MEDIUM

Compose recomposition discipline

No project-wide signal of compose-stability metrics or composition tracing usage.
Recommendation: Run the Compose Compiler stability report; refactor unstable types (e.g. List<T>ImmutableList<T> via kotlinx.collections.immutable).
LOW

OkHttp cache + warm-up

Confirm OkHttp cache is sized appropriately (typically 10–50 MB) and that DNS / TLS sessions are warmed for the first BFF call.

Recommended performance instrumentation

ToolUse
MacrobenchmarkStartup + scrolling benchmarks
Baseline ProfilesAOT compile critical paths
Firebase PerformanceAlready integrated — instrument BFF traces
Perfetto / Android Studio ProfilerFrame drops + jank diagnosis
LeakCanaryDebug-only memory leak detection

Specific findings in this category

76 shown
Costco Android · Code Review Report · Generated 2026-05-07 · 626 machine-curated findings