# app performance

Published articles for app performance.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## How R8 made Kotlin Coroutines on Android 2x faster

DevFeed: [How R8 made Kotlin Coroutines on Android 2x faster](<https://devfeed.tech/articles/how-r8-made-kotlin-coroutines-on-android-2x-faster-22684.md>)

Original publisher: [Read original article](<http://android-developers.googleblog.com/2026/07/how-r8-made-kotlin-coroutines-2x-faster.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-07-27T13:00:00Z

Content type: article

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-3.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [R8](<https://devfeed.tech/topics/r8.md>), [Android](<https://devfeed.tech/topics/android.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [atomic](<https://devfeed.tech/tags/atomic.md>), [compose](<https://devfeed.tech/tags/compose.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [performance](<https://devfeed.tech/tags/performance.md>), [programming](<https://devfeed.tech/tags/programming.md>), [r8](<https://devfeed.tech/tags/r8.md>)

### AI overview

This article explains how R8 in AGP 9.2.0 optimizes Atomic*FieldUpdater calls into Unsafe variants, improving common operations by 2x to 4x. The optimization particularly benefits kotlinx.atomicfu and can make launching and cancelling Kotlin coroutines up to 2x faster. It also describes how coroutine overhead affected Jetpack Compose performance and how ART method traces helped identify bottlenecks.

### Source excerpt

Posted by Andrei Shikov, Senior Software Engineer, Android Toolkit and Jonathan Starup, Software Engineer, R8 Team Starting from AGP 9.2.0, R8 optimizes most Atomic*FieldUpdater calls into Unsafe variants that perform 2x to 4x better on common operations. This has a particularly large impact on the kotlinx.atomicfu library that implements atomics for kotlinx.coroutines, making launching and cancelling coroutines up to 2x faster. In order to get the benefits, update your AGP to 9.2.0 or above. With the majority of Android apps adopting Kotlin as their main language of choice, kotlinx.coroutines has become a de-facto standard for asynchronous programming. The library offers a well-designed and structured way of managing concurrent flows that is native to Kotlin. Jetpack Compose was no exception, adopting coroutines for managing pointer events, animations and other interactions. At the time of writing, most concurrent APIs in Compose call suspend functions under the hood and are launching and/or cancelling coroutines to handle updates. As the Compose team started to investigate performance, coroutines were discovered to be a bottleneck for many operations that happen outside of composition. As an example, 80% of the time spent on creating and updating Modifier.clickable was consumed by launching and cancelling internal coroutines that handled InteractionSource updates. Based on those observations, much of early performance work was focused on removing coroutines from the default path and delaying initialization until necessary. The cost of a coroutine The easiest way to analyze a function's internal behavior on Android is to capture an Android Runtime (ART) method trace. An ART method trace is a tool that records the execution flow of an app, showing exactly which methods are called, their order, and how much time is spent in each, allowing developers to identify performance bottlenecks. For an empty LaunchedEffect { } call, it would look something like this: LaunchedE

## How R8 made Kotlin Coroutines on Android 2x faster

DevFeed: [How R8 made Kotlin Coroutines on Android 2x faster](<https://devfeed.tech/articles/how-r8-made-kotlin-coroutines-on-android-2x-faster-4227.md>)

Original publisher: [Read original article](<https://android-developers.googleblog.com/2026/07/how-r8-made-kotlin-coroutines-2x-faster.html>)

Author: Android Developers (noreply@blogger.com)

Published: 2026-07-27T13:00:00Z

Content type: article

Language: en

Sources: [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog.md>), [Android Developers Blog](<https://devfeed.tech/sources/android-developers-blog-2.md>)

Topics: [Coroutines](<https://devfeed.tech/topics/coroutines.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [R8](<https://devfeed.tech/topics/r8.md>), [Android](<https://devfeed.tech/topics/android.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [Programming](<https://devfeed.tech/topics/programming.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-gradle-plugin](<https://devfeed.tech/tags/android-gradle-plugin.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [atomic](<https://devfeed.tech/tags/atomic.md>), [compose](<https://devfeed.tech/tags/compose.md>), [coroutines](<https://devfeed.tech/tags/coroutines.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [performance](<https://devfeed.tech/tags/performance.md>), [programming](<https://devfeed.tech/tags/programming.md>), [r8](<https://devfeed.tech/tags/r8.md>)

### AI overview

This article explains how R8 optimization in AGP 9.2.0 improves Kotlin coroutines performance on Android. By optimizing AtomicFieldUpdater calls, the change makes launching and cancelling coroutines up to twice as fast, addressing coroutine-related bottlenecks in Jetpack Compose and other Android operations.

### Source excerpt

Posted by Andrei Shikov, Senior Software Engineer, Android Toolkit and Jonathan Starup, Software Engineer, R8 Team Starting from AGP 9.2.0, R8 optimizes most Atomic*FieldUpdater calls into Unsafe variants that perform 2x to 4x better on common operations. This has a particularly large impact on the kotlinx.atomicfu library that implements atomics for kotlinx.coroutines, making launching and cancelling coroutines up to 2x faster. In order to get the benefits, update your AGP to 9.2.0 or above. With the majority of Android apps adopting Kotlin as their main language of choice, kotlinx.coroutines has become a de-facto standard for asynchronous programming. The library offers a well-designed and structured way of managing concurrent flows that is native to Kotlin. Jetpack Compose was no exception, adopting coroutines for managing pointer events, animations and other interactions. At the time of writing, most concurrent APIs in Compose call suspend functions under the hood and are launching and/or cancelling coroutines to handle updates. As the Compose team started to investigate performance, coroutines were discovered to be a bottleneck for many operations that happen outside of composition. As an example, 80% of the time spent on creating and updating Modifier.clickable was consumed by launching and cancelling internal coroutines that handled InteractionSource updates. Based on those observations, much of early performance work was focused on removing coroutines from the default path and delaying initialization until necessary. The cost of a coroutine The easiest way to analyze a function's internal behavior on Android is to capture an Android Runtime (ART) method trace. An ART method trace is a tool that records the execution flow of an app, showing exactly which methods are called, their order, and how much time is spent in each, allowing developers to identify performance bottlenecks. For an empty LaunchedEffect { } call, it would look something like this: LaunchedE

## Updates to Terms of Service

DevFeed: [Updates to Terms of Service](<https://devfeed.tech/articles/updates-to-terms-of-service-1117.md>)

Original publisher: [Read original article](<https://vercel.com/changelog/updates-to-terms-of-service-march-2026>)

Author: Wendra Liang

Published: 2026-03-17T13:00:00Z

Content type: news

Language: en

Sources: [Vercel News](<https://devfeed.tech/sources/vercel-news.md>)

Topics: [AI Chat](<https://devfeed.tech/topics/ai-chat.md>)

Tags: [agents](<https://devfeed.tech/tags/agents.md>), [ai](<https://devfeed.tech/tags/ai.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [data](<https://devfeed.tech/tags/data.md>), [deployment](<https://devfeed.tech/tags/deployment.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [models](<https://devfeed.tech/tags/models.md>), [policy](<https://devfeed.tech/tags/policy.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [telemetry](<https://devfeed.tech/tags/telemetry.md>), [training](<https://devfeed.tech/tags/training.md>), [updates](<https://devfeed.tech/tags/updates.md>), [vercel](<https://devfeed.tech/tags/vercel.md>)

### AI overview

Vercel announced Terms of Service and Privacy Policy updates covering agentic infrastructure features and optional AI model training. The changes describe data use, plan-based default settings, opt-out options, and redaction of sensitive content before use or sharing.

### Source excerpt

Agents are reshaping the tools developers use, the applications they build, and the infrastructure that runs them. We've updated our Terms of Service and Privacy Policy to reflect how Vercel uses data to support agentic features, improve our platform, and contribute to the AI ecosystem. What is changing?Agentic infrastructure capabilities We are developing features that allow Vercel to do more to keep your apps running efficiently, including: Proactively investigating and mitigating incidents Analyzing web app performance data and suggesting improvements Identifying where your spend is going and creating PRs to optimize usage Vercel may also use data to help improve our tools to fight fraud and abuse of the Vercel platform. Optional AI model training You may choose whether to allow Vercel to: Use your code and Vercel agent chats to improve Vercel models Share your code and Vercel agent chats with AI model providers Defaults by plan for optional AI model training: Hobby (including Trial Pro): Opted in for AI model training by default, with self-serve opt-out in Team and Project Settings Pro (paid): Opted out of AI model training by default, with self-serve opt-in in Team and Project Settings Enterprise: Opted out of any AI model training Sharing this data helps improve the performance of agentic tools for everyone. Participating in this model training program is fully optional, with easy opt-out in Team Settings -> Data Preferences. If you choose to opt out by March 31st 2026 11:59:59 PST, Vercel will not use your data to train AI or share it with third parties. If you choose to opt out after March 31st 2026 11:59:59 PST, your data will not be used or shared from that point forward. If you are opted in, the training datasets would include: Code and Vercel agent chats Build and deployment telemetry data and build errors Aggregate traffic stats All personal information, account details, environment variables, API keys, and other sensitive content is anonymized and redac

## Bringing Lighthouse to the App: Building Performance Metrics for React Native

DevFeed: [Bringing Lighthouse to the App: Building Performance Metrics for React Native](<https://devfeed.tech/articles/bringing-lighthouse-to-the-app-building-performance-metrics-for-react-native-29994.md>)

Original publisher: [Read original article](<https://engineering.indeedblog.com/blog/2026/03/bringing-lighthouse-to-the-app-building-performance-metrics-for-react-native/>)

Author: Ben Cripps

Published: 2026-03-03T19:13:53Z

Content type: article

Language: en

Sources: [Indeed](<https://devfeed.tech/sources/indeed.md>)

Topics: [React Native](<https://devfeed.tech/topics/react-native.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Core Web Vitals](<https://devfeed.tech/topics/core-web-vitals.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [app-performance](<https://devfeed.tech/tags/app-performance.md>), [core-web-vitals](<https://devfeed.tech/tags/core-web-vitals.md>), [google](<https://devfeed.tech/tags/google.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [performance](<https://devfeed.tech/tags/performance.md>), [react-native](<https://devfeed.tech/tags/react-native.md>), [time-to-interactive](<https://devfeed.tech/tags/time-to-interactive.md>), [unsorted](<https://devfeed.tech/tags/unsorted.md>)

### AI overview

Indeed describes an open-source React Native repository for measuring Lighthouse-style performance metrics in mobile apps. The article explains adapting Core Web Vitals concepts to React Native, including Time to First Frame and Time to Interactive, to assess screen loading and interaction readiness.

### Source excerpt

At Indeed we've open sourced a new React Native repository which makes it simple to measure Lighthouse scores in your mobile apps. We think it will help other organizations better measure their app performance, especially for companies similar to Indeed who are transitioning from a web-first to an app-first approach. You can check out the [...]

## DroidCon: Debugging App Performance at Scale

DevFeed: [DroidCon: Debugging App Performance at Scale](<https://devfeed.tech/articles/droidcon-debugging-app-performance-at-scale-25715.md>)

Original publisher: [Read original article](<https://blog.shreyaspatil.dev/droidcon-debugging-app-performance-at-scale/>)

Author: Shreyas Patil

Published: 2026-01-19T04:58:14Z

Content type: article

Language: en

Sources: [Shreyas Patil's Blog](<https://devfeed.tech/sources/shreyas-patil-s-blog.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [community](<https://devfeed.tech/tags/community.md>), [conference](<https://devfeed.tech/tags/conference.md>), [droidcon](<https://devfeed.tech/tags/droidcon.md>), [droidconindia](<https://devfeed.tech/tags/droidconindia.md>), [performance](<https://devfeed.tech/tags/performance.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [public-speaking](<https://devfeed.tech/tags/public-speaking.md>), [recap](<https://devfeed.tech/tags/recap.md>), [talk](<https://devfeed.tech/tags/talk.md>), [tech-talk](<https://devfeed.tech/tags/tech-talk.md>)

### AI overview

A recap of the author's DroidCon India 2025 session on debugging Android app performance at scale. The article links to the session recording and slides and discusses the event, audience response, and developer community.

### Source excerpt

Recap of my DroidCon India 2025 talk on debugging Android app performance at scale. Watch the session and learn about performance profiling tools.

## How Blinkit's Droid Dex Adapts Android App Performance to Device Capabilities

DevFeed: [How Blinkit's Droid Dex Adapts Android App Performance to Device Capabilities](<https://devfeed.tech/articles/how-blinkit-cracked-android-s-performance-puzzle-with-droid-dex-20084.md>)

Original publisher: [Read original article](<https://lambda.blinkit.com/droid-dex-1f807901626f?source=rss----42df4a1e8725---4>)

Author: Karan Gourisaria

Published: 2025-06-26T07:03:41Z

Content type: article

Language: en

Sources: [Grofers](<https://devfeed.tech/sources/grofers.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Optimization](<https://devfeed.tech/topics/optimization.md>), [Development](<https://devfeed.tech/topics/development.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [Caching](<https://devfeed.tech/topics/caching.md>), [User experience (UX)](<https://devfeed.tech/topics/ux.md>)

Tags: [adaptive](<https://devfeed.tech/tags/adaptive.md>), [android](<https://devfeed.tech/tags/android.md>), [android-development](<https://devfeed.tech/tags/android-development.md>), [anr](<https://devfeed.tech/tags/anr.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [caching](<https://devfeed.tech/tags/caching.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [fragmentation](<https://devfeed.tech/tags/fragmentation.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [mobile-development](<https://devfeed.tech/tags/mobile-development.md>), [performance](<https://devfeed.tech/tags/performance.md>), [real-time](<https://devfeed.tech/tags/real-time.md>)

### AI overview

This article describes Blinkit's Droid Dex, a system that classifies device performance and adapts Android app behavior accordingly. It presents device fragmentation as a source of out-of-memory errors, slower screen rendering, and ANRs, and describes adaptations such as concurrency limits, caching levels, power-saving mode, and simplified animations.

### Source excerpt

How Blinkit Cracked Android's Performance Puzzle with Droid DexAdaptive real-time performance tuning -- fewer ANRs, smoother UX, and smarter device-specific optimization Picture this: Your app runs buttery-smooth on Pixel 7 Pro while throwing ANRs on a Redmi Note 4. Users on a Fold 6 have to experience the same janky transitions as those on a INR 6,000 device. Sounds familiar? Welcome to Android development in 2025, where device fragmentation is one of the biggest challenges. This is the story of how Blinkit solved Android's most notorious problem: intelligent, real-time performance adaptation. 📱 The Problem: One Codebase, Infinite Devices Device Fragmentation isn't just a developer headache -- it's a business liability. At Blinkit, we serve millions of users across India's most diverse Android ecosystem, from ultra-budget to flagship devices. Consider these jaw-dropping stats from our production data: 57% of total OOMs occur on devices with less than 4GB of RAM The average time to render key screens is 2.5 times slower on budget phones compared to flagships 20% of users drop off after experiencing a single ANR Traditional solutions? They're all broken: 🔴 The Conservative Trap: Design for the weakest device. Result? Premium users get a subpar experience. 🔴 The Aggressive Fallacy: Optimize for flagships. Result? 60% of users face OOMs and ANRs. We needed something better -- something smarter, that could make apps think about performance in real-time. 🔥 Introducing: Droid Dex Imagine your app could sense the device it's running on and instantly adapt: "This phone can handle 4 concurrent videos, aggressive caching, and premium transitions" or "This device needs power-saving mode, minimal caching, and simplified animations"? That's exactly what Droid Dex does. It's not just another performance library -- it's an intelligent performance classification system that lets your app adapt to its environment. // Make your app performance-aware with a single call DroidDex.getPerformanc

## Mobile Observability Beyond Crash Tracking and Aggregate Metrics

DevFeed: [Mobile Observability Beyond Crash Tracking and Aggregate Metrics](<https://devfeed.tech/articles/a-call-to-arms-bringing-observability-2-0-to-mobile-part-1-38564.md>)

Original publisher: [Read original article](<https://hanson.wtf/2024/12/09/a-call-to-arms-bringing-observability-2-0-to-mobile-part-1/>)

Author: Hanson

Published: 2024-12-10T07:38:37Z

Content type: opinion

Language: en

Sources: [hanson.wtf](<https://devfeed.tech/sources/hanson-wtf.md>)

Topics: [observability](<https://devfeed.tech/topics/observability.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [telemetry](<https://devfeed.tech/topics/telemetry.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [crashes](<https://devfeed.tech/tags/crashes.md>), [latency](<https://devfeed.tech/tags/latency.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [observability](<https://devfeed.tech/tags/observability.md>), [performance](<https://devfeed.tech/tags/performance.md>), [sdks](<https://devfeed.tech/tags/sdks.md>), [tech](<https://devfeed.tech/tags/tech.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

The article argues that basic mobile monitoring, such as crash counts and aggregate performance metrics, does not provide true observability. It advocates actionable production data that helps developers investigate who is affected by issues and why.

### Source excerpt

The Observability-Free Zone For most companies, "mobile observability" is a misnomer. I say this because the data that most mobile devs have to "observe" their app in production is laughably simplistic. The vast majority make due with basic crash tracking and precomputed metric aggregates as the only lens into how their app is performing in [...]

## Spotting Latency Regressions Ahead of Time at Teams Mobile

DevFeed: [Spotting Latency Regressions Ahead of Time at Teams Mobile](<https://devfeed.tech/articles/spotting-latency-regressions-ahead-of-time-at-teams-mobile-22785.md>)

Original publisher: [Read original article](<https://medium.com/microsoft-mobile-engineering/spotting-latency-regressions-ahead-of-time-at-teams-mobile-e0e5a5ef6390?source=rss----87f10537e947---4>)

Author: Saumye Srivastava

Published: 2024-02-02T18:18:47Z

Content type: article

Language: en

Sources: [Android@Microsoft - Medium](<https://devfeed.tech/sources/android-microsoft-medium.md>)

Topics: [Latency](<https://devfeed.tech/topics/latency.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [telemetry](<https://devfeed.tech/topics/telemetry.md>), [Android](<https://devfeed.tech/topics/android.md>), [App](<https://devfeed.tech/topics/app.md>), [Grafana](<https://devfeed.tech/topics/grafana.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [dashboards](<https://devfeed.tech/topics/dashboards.md>), [Database](<https://devfeed.tech/topics/database.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [dashboards](<https://devfeed.tech/tags/dashboards.md>), [database](<https://devfeed.tech/tags/database.md>), [grafana](<https://devfeed.tech/tags/grafana.md>), [latency](<https://devfeed.tech/tags/latency.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-testing](<https://devfeed.tech/tags/performance-testing.md>), [telemetry](<https://devfeed.tech/tags/telemetry.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

This article describes how the Teams Mobile Android team measures and monitors latency in critical app scenarios using scenario telemetry. It explains how execution time, metadata, device information, status, steps, and correlation IDs are recorded and visualized to detect regressions earlier, while noting that latency graphs alone can make diagnosis and rollout response difficult.

### Source excerpt

In the realm of mobile applications, subpar performance not only results in user frustration but also contributes to high user dissatisfaction scores (DSAT), a lower app Net Promoter Score (NPS), and increased uninstallations. Developers continually implement numerous code optimizations in each release, bringing about substantial improvements in App Vitals and critical user scenarios such as application launch, chat loading time, and channel loading time. Our Android codebase sees contributions from over 350 developers on a monthly basis, with a staggering 50+ commits merged into the mainline every day. The pace of innovation remains high, as we introduce more than 20 new features daily to our internal users across the organization and our partners. In this dynamic environment, the need to maintain optimal app performance is paramount, emphasizing the importance of identifying and mitigating latency issues before they have a chance to impact user experience. All code is guilty until proven innocent.-- Uncle BobScenario Measurement & Monitoring We employ a method called scenario telemetry to measure execution time at the beginning and end of critical usage scenarios of our app. The latency telemetry for all usage scenarios is recorded in our database along with user details. The ScenarioContext handle facilitates the transfer of context information related to a user scenario throughout the app, including execution time, metadata, device information, status, steps, and correlation ID. fun onCreate() { val scenarioContext = scenarioManager.startScenario(AppScenarioNames.App.APP_START_WARM_FIRST_DRAW); // do critical work, load screen scenarioManager.stopScenario(scenarioContext); } Creating dashboards at Microsoft is a straightforward process, involving crafting a query on our internal portal that our internal framework executes every minute to chart into graphs. You can send the usage telemetry to your internal or third party Database and host a Grafana instance for

## How Meetup Used Android Baseline Profiles to Reduce Cold Startup Time by 36%

DevFeed: [How Meetup Used Android Baseline Profiles to Reduce Cold Startup Time by 36%](<https://devfeed.tech/articles/from-snail-to-sonic-how-baseline-profiles-supercharged-meetup-s-android-app-23969.md>)

Original publisher: [Read original article](<https://medium.com/making-meetup/from-snail-to-sonic-how-baseline-profiles-supercharged-meetups-android-app-3a2f0670052e?source=rss----6981e268ba45---4>)

Author: Colin Lee

Published: 2023-07-19T19:26:13Z

Content type: article

Language: en

Sources: [Making Meetup - Medium](<https://devfeed.tech/sources/making-meetup-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Benchmark](<https://devfeed.tech/topics/benchmark.md>), [App](<https://devfeed.tech/topics/app.md>), [Google](<https://devfeed.tech/topics/google.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [app-startup](<https://devfeed.tech/tags/app-startup.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [google](<https://devfeed.tech/tags/google.md>), [google-i-o](<https://devfeed.tech/tags/google-i-o.md>), [meetup](<https://devfeed.tech/tags/meetup.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-development](<https://devfeed.tech/tags/mobile-app-development.md>), [mobile-app-performance](<https://devfeed.tech/tags/mobile-app-performance.md>), [performance](<https://devfeed.tech/tags/performance.md>), [pixel](<https://devfeed.tech/tags/pixel.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>)

### AI overview

Meetup integrated Android baseline profiles into its main app and measured a 36% improvement in best-case cold startup time on a Pixel 3, from 970ms to 620ms. The article explains that baseline profiles let the JVM pre-compile functions before they are needed, while noting that the business impact on conversion, retention, and revenue was not established.

### Source excerpt

As consumers, we've all been there -- you download a new app, launch it for the first time, and are frustrated by how long it takes to start up. If an app is sluggish at first launch, it leaves a bad first impression that's hard to overcome. At Meetup, we realized having slower apps was likely costing us users and revenue. So we implemented a simple change that cut our app's startup time by 36%, delivering a smoother experience that helps us to convert and retain users. And -- we did it without even writing much code. The Meetup mobile app, which now uses baseline profiles to start up to 36% faster Here's how we did it. Google recently introduced a technology called baseline profiles that optimizes Android apps for faster launch times. It allows the Java Virtual Machine (JVM) to pre-compile functions so they're ready before they're needed. As soon as it was announced at Google I/O 2022, I began adding baseline profiles to Meetup's Android apps. Recently, I conducted a benchmark test to measure the impact. The results were astounding. We integrated baseline profiles into our main Meetup Android app and saw best case cold app startup times on a Pixel 3 drop from 970ms to 620ms -- a 36% improvement. For app performance, a 36% improvement is remarkable. On a large refactoring initiative at a previous company, we were only able to achieve a 10% improvement in performance. Easy performance wins like baseline profiles don't come across your desk every day. This is what a baseline profile actually looks like before it is converted into binary For a more detailed understanding of baseline profiles, I recommend watching the Google video below. The takeaway for any mobile app business is clear. Your app startup experience shapes lasting first impressions. Is your app fast and friction-less or sluggish and buggy? Investing in performance optimizations like baseline profiles can deliver a big competitive advantage by creating smoother first-time user experiences. The result is high

## User-Centric Mobile Performance

DevFeed: [User-Centric Mobile Performance](<https://devfeed.tech/articles/user-centric-mobile-performance-25633.md>)

Original publisher: [Read original article](<https://blog.p-y.wtf/user-centric-mobile-performance>)

Author: Pierre-Yves Ricau

Published: 2023-07-06T20:15:44Z

Content type: article

Language: en

Sources: [Py's blog](<https://devfeed.tech/sources/py-s-blog.md>)

Topics: [User Experience](<https://devfeed.tech/topics/user-experience.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [article](<https://devfeed.tech/tags/article.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [customer-experience](<https://devfeed.tech/tags/customer-experience.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [performance](<https://devfeed.tech/tags/performance.md>), [performance-metrics](<https://devfeed.tech/tags/performance-metrics.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

An approach to mobile performance that prioritizes user-centric metrics over technical resource and workload metrics. It distinguishes smoothness and responsiveness measures while treating CPU, memory, database, and similar technical metrics as secondary diagnostic signals.

### Source excerpt

👋 Hi, this is P-Y, over the last three years I've been steering Square's focus on mobile performance and building a framework for thinking about it and prioritizing work. In this article I share my approach, let me know what you think! Useful metri...

## Mastering Android App Performance: Analyzing Bottlenecks with Perfetto 🚦

DevFeed: [Mastering Android App Performance: Analyzing Bottlenecks with Perfetto 🚦](<https://devfeed.tech/articles/mastering-android-app-performance-analyzing-bottlenecks-with-perfetto-25737.md>)

Original publisher: [Read original article](<https://blog.shreyaspatil.dev/mastering-android-app-performance-analyzing-bottlenecks-with-perfetto/>)

Author: Shreyas Patil

Published: 2023-03-13T13:00:39Z

Content type: tutorial

Language: en

Sources: [Shreyas Patil's Blog](<https://devfeed.tech/sources/shreyas-patil-s-blog.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [tracing](<https://devfeed.tech/topics/tracing.md>), [Traces](<https://devfeed.tech/topics/traces.md>), [Emulator](<https://devfeed.tech/topics/emulator.md>), [browser](<https://devfeed.tech/topics/browser.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [browser](<https://devfeed.tech/tags/browser.md>), [commands](<https://devfeed.tech/tags/commands.md>), [emulator](<https://devfeed.tech/tags/emulator.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [main-thread](<https://devfeed.tech/tags/main-thread.md>), [perfetto](<https://devfeed.tech/tags/perfetto.md>), [performance](<https://devfeed.tech/tags/performance.md>), [profiling](<https://devfeed.tech/tags/profiling.md>), [terminal](<https://devfeed.tech/tags/terminal.md>), [tracing](<https://devfeed.tech/tags/tracing.md>)

### AI overview

A practical Android tutorial on using Perfetto system tracing to investigate UI slowness and jank. It creates a sample app with deliberately heavy main-thread work, records a trace, and examines the resulting timelines to locate performance bottlenecks.

### Source excerpt

Master Android app performance profiling with Perfetto. Learn how to identify and fix UI janks and bottlenecks using system tracing.

## How to Use Upstash with Serverless Cloud

DevFeed: [How to Use Upstash with Serverless Cloud](<https://devfeed.tech/articles/how-to-use-upstash-with-serverless-cloud-14238.md>)

Original publisher: [Read original article](<https://www.serverless.com/blog/how-to-use-upstash-with-serverless-cloud>)

Author: Eslam Hefnawy

Published: 2022-05-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Serverless Blog](<https://devfeed.tech/sources/serverless-blog.md>)

Topics: [Serverless](<https://devfeed.tech/topics/serverless.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [app](<https://devfeed.tech/tags/app.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [aws](<https://devfeed.tech/tags/aws.md>), [aws-lambda](<https://devfeed.tech/tags/aws-lambda.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [faas](<https://devfeed.tech/tags/faas.md>), [function-as-a-service](<https://devfeed.tech/tags/function-as-a-service.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [performance](<https://devfeed.tech/tags/performance.md>), [serverless](<https://devfeed.tech/tags/serverless.md>), [serverless-architecture](<https://devfeed.tech/tags/serverless-architecture.md>), [serverless-framework](<https://devfeed.tech/tags/serverless-framework.md>), [with](<https://devfeed.tech/tags/with.md>)

### AI overview

A walkthrough of using Serverless Cloud and Upstash together to offer users improved app performance.

### Source excerpt

This is a walkthrough on how easy it is to use both Serverless Cloud and Upstash together to easily and quickly offer your users the app performance they deserve.

## Why are Enterprises Shifting to Containers with Kubernetes in 2022?

DevFeed: [Why are Enterprises Shifting to Containers with Kubernetes in 2022?](<https://devfeed.tech/articles/why-are-enterprises-shifting-to-containers-with-kubernetes-in-2022-17689.md>)

Original publisher: [Read original article](<https://ionir.com/why-are-enterprises-shifting-to-containers-with-kubernetes-in-2022/>)

Author: Kirby Wadsworth

Published: 2022-03-29T12:00:50Z

Content type: article

Language: en

Sources: [ionir](<https://devfeed.tech/sources/ionir.md>)

Topics: [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [data](<https://devfeed.tech/topics/data.md>), [Docker Compose](<https://devfeed.tech/topics/docker-compose.md>)

Tags: [app-performance](<https://devfeed.tech/tags/app-performance.md>), [blog](<https://devfeed.tech/tags/blog.md>), [cloud-native](<https://devfeed.tech/tags/cloud-native.md>), [container](<https://devfeed.tech/tags/container.md>), [container-native](<https://devfeed.tech/tags/container-native.md>), [containers](<https://devfeed.tech/tags/containers.md>), [data-mobility](<https://devfeed.tech/tags/data-mobility.md>), [idc](<https://devfeed.tech/tags/idc.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [recent-posts-featured](<https://devfeed.tech/tags/recent-posts-featured.md>), [stateful](<https://devfeed.tech/tags/stateful.md>), [storage](<https://devfeed.tech/tags/storage.md>), [survey](<https://devfeed.tech/tags/survey.md>)

### AI overview

The article explains why enterprises are moving workloads to containers with Kubernetes, focusing on resource utilization, data mobility, application performance, stability, portability, and support for stateful workloads through container-native storage.

### Source excerpt

Vendor agnostic. Better resource utilization. Enhanced portability. Sounds like the making of one incredible data mobility cocktail! The key ingredient here is leveraging containers with Kubernetes (K8s). And we're not the only ones advocating to adopt containers for amplified data mobility. The post Why are Enterprises Shifting to Containers with Kubernetes in 2022? appeared first on ionir.

## Sharing Thread Pools Across Libraries in Android Applications

DevFeed: [Sharing Thread Pools Across Libraries in Android Applications](<https://devfeed.tech/articles/reduce-reuse-recycle-your-thread-pools-25909.md>)

Original publisher: [Read original article](<https://chao2zhang.medium.com/reduce-reuse-recycle-your-thread-pools-%EF%B8%8F-81e2f54d8a1d?source=rss-d19045640fe------2>)

Author: Chao Zhang

Published: 2021-12-20T18:26:36Z

Content type: tutorial

Language: en

Sources: [Stories by Chao Zhang on Medium](<https://devfeed.tech/sources/stories-by-chao-zhang-on-medium.md>)

Topics: [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Concurrent Programming](<https://devfeed.tech/topics/concurrent-programming.md>), [Android](<https://devfeed.tech/topics/android.md>), [Library](<https://devfeed.tech/topics/library.md>), [App](<https://devfeed.tech/topics/app.md>), [Network](<https://devfeed.tech/topics/network.md>), [Jetpack](<https://devfeed.tech/topics/jetpack.md>), [Jetpack Compose](<https://devfeed.tech/topics/jetpack-compose.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [libraries](<https://devfeed.tech/tags/libraries.md>), [memory](<https://devfeed.tech/tags/memory.md>), [okhttp](<https://devfeed.tech/tags/okhttp.md>), [overhead](<https://devfeed.tech/tags/overhead.md>), [performance](<https://devfeed.tech/tags/performance.md>), [thread](<https://devfeed.tech/tags/thread.md>), [threading](<https://devfeed.tech/tags/threading.md>), [threads](<https://devfeed.tech/tags/threads.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

This Android development tutorial explains how creating threads for asynchronous tasks can increase memory pressure, scheduling overhead, and context-switching costs. It discusses using thread pools and proposes configuring libraries such as OkHttp and AndroidX WorkManager to share a common pool, while considering the benefits and costs.

### Source excerpt

Photo: Héctor J. Rivas from Unsplash Real-world applications today are mostly multi-threaded. This means developers should be mindful of managing the concurrency of their applications. Mastering the threading can help boost an app's performance. On the other hand, using concurrency without fully understanding it could lead to problems that negatively impact the app's health. For Android applications, every thread is mapped to a system-level thread at runtime. Each thread costs a minimum of 64k of memory on Android, If we always create a thread for any new asynchronous task, we will create memory pressure on the app. The app performance may suffer because spawning up new threads and context switching among threads are both taking up time and resources. If a thread is referenced even if it is not active, it will be kept in memory and can't be cleaned up by the garbage collector. Thread pools can help us manage concurrency more efficiently. ThreadPoolExecutor creates a pool of worker threads and schedules the tasks for them to execute. It can grow the pool size to meet the demand as new tasks arrive, and it can shrink the pool when threads are idle and no longer need to be kept alive. Thread pool, therefore, improves the app performance by reducing the per-task overhead and controls the resource usage by bounding the resources. Thread pool seems the solution to our concurrency headache, and many libraries have adopted this technique, such as OkHttp and AndroidX WorkManager. Each library maintains its own thread pool by default. When we include these libraries in our application, since each library spins up new threads by itself without the awareness of other thread pools, we come full circle. Hundreds of threads exist in our application because those libraries do not know each other. In this story, we are going to walk through an example of configuring libraries to share a common thread pool. We will also summarize the benefits and costs of managing thread pools, as it

## Unlocking your app's best experience with Firebase Performance Monitoring

DevFeed: [Unlocking your app's best experience with Firebase Performance Monitoring](<https://devfeed.tech/articles/unlocking-your-app-s-best-experience-with-firebase-performance-monitoring-16403.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2021/08/unlocking-your-apps-best-experience>)

Author: Nitin Kaushik

Published: 2021-08-02T00:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Monitoring](<https://devfeed.tech/topics/monitoring.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Development](<https://devfeed.tech/topics/development.md>)

Tags: [app-performance](<https://devfeed.tech/tags/app-performance.md>), [app-quality](<https://devfeed.tech/tags/app-quality.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [crashlytics](<https://devfeed.tech/tags/crashlytics.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [monitoring](<https://devfeed.tech/tags/monitoring.md>), [performance-metrics](<https://devfeed.tech/tags/performance-metrics.md>), [performance-monitoring](<https://devfeed.tech/tags/performance-monitoring.md>), [releases](<https://devfeed.tech/tags/releases.md>), [test-lab](<https://devfeed.tech/tags/test-lab.md>)

### AI overview

This article explains how Firebase Performance Monitoring helps developers understand app performance from users' perspectives. It covers real-time performance metrics, monitoring releases during development and after launch, and analyzing screen-rendering and network-request data across user segments.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## The Firebase guide to building stable, high-performing apps

DevFeed: [The Firebase guide to building stable, high-performing apps](<https://devfeed.tech/articles/the-firebase-guide-to-building-stable-high-performing-apps-16394.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2021/07/the-firebase-guide-to-building-stable-high-performing-apps>)

Author: Firebase Team

Published: 2021-07-22T00:00:00Z

Content type: tutorial

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [App](<https://devfeed.tech/topics/app.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Testing](<https://devfeed.tech/topics/testing.md>)

Tags: [app-performance](<https://devfeed.tech/tags/app-performance.md>), [app-quality](<https://devfeed.tech/tags/app-quality.md>), [apps](<https://devfeed.tech/tags/apps.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [bugs](<https://devfeed.tech/tags/bugs.md>), [building](<https://devfeed.tech/tags/building.md>), [crashlytics](<https://devfeed.tech/tags/crashlytics.md>), [debug](<https://devfeed.tech/tags/debug.md>), [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [guide](<https://devfeed.tech/tags/guide.md>), [latency](<https://devfeed.tech/tags/latency.md>), [performance](<https://devfeed.tech/tags/performance.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [technical](<https://devfeed.tech/tags/technical.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>)

### AI overview

This introduction to a three-part Firebase blog series explains why app stability and performance affect user retention, reviews, and acquisition. It discusses ongoing app-quality work, including testing, debugging, tracing code changes, and using customized reporting and real-time insights to identify relevant metrics.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Droidcon Italy recap

DevFeed: [Droidcon Italy recap](<https://devfeed.tech/articles/droidcon-italy-recap-28644.md>)

Original publisher: [Read original article](<https://jeroenmols.com/blog/2016/04/08/droidconit/>)

Author: info@jeroenmols.com (Jeroen Mols)

Published: 2016-04-08T00:00:00Z

Content type: article

Language: en

Sources: [Jeroen Mols](<https://devfeed.tech/sources/jeroen-mols.md>)

Topics: [Development](<https://devfeed.tech/topics/development.md>), [User Experience](<https://devfeed.tech/topics/user-experience.md>), [App](<https://devfeed.tech/topics/app.md>), [render](<https://devfeed.tech/topics/render.md>), [APK](<https://devfeed.tech/topics/apk.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Gson](<https://devfeed.tech/topics/gson.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [apk](<https://devfeed.tech/tags/apk.md>), [app](<https://devfeed.tech/tags/app.md>), [app-development](<https://devfeed.tech/tags/app-development.md>), [app-performance](<https://devfeed.tech/tags/app-performance.md>), [blogs](<https://devfeed.tech/tags/blogs.md>), [conference](<https://devfeed.tech/tags/conference.md>), [dependencies](<https://devfeed.tech/tags/dependencies.md>), [design](<https://devfeed.tech/tags/design.md>), [designer](<https://devfeed.tech/tags/designer.md>), [developer](<https://devfeed.tech/tags/developer.md>), [developers](<https://devfeed.tech/tags/developers.md>), [development](<https://devfeed.tech/tags/development.md>), [droidcon](<https://devfeed.tech/tags/droidcon.md>), [experience](<https://devfeed.tech/tags/experience.md>), [gson](<https://devfeed.tech/tags/gson.md>), [lint](<https://devfeed.tech/tags/lint.md>), [performance](<https://devfeed.tech/tags/performance.md>), [proguard](<https://devfeed.tech/tags/proguard.md>), [recap](<https://devfeed.tech/tags/recap.md>), [tools](<https://devfeed.tech/tags/tools.md>)

### AI overview

A recap of Droidcon Italy covering collaboration between developers and designers to improve user experience, Android layout rendering performance, and reducing DEX method counts through APK analysis, Proguard configuration, dependency cleanup, and tools such as ClassyShark.

### Source excerpt

A conference about our favorite Green little robots? In sunny Italy? With great food and a party? Yeah, I can image how you must feel in case you missed it... I on the other hand was fortunate enough to attend and speak at this awesome conference.