# mobile-app-performance

Published articles for mobile-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.

## Enhancing Myntra App performance: Transitioning from GIFs to Videos

DevFeed: [Enhancing Myntra App performance: Transitioning from GIFs to Videos](<https://devfeed.tech/articles/enhancing-myntra-app-performance-transitioning-from-gifs-to-videos-20135.md>)

Original publisher: [Read original article](<https://medium.com/myntra-engineering/enhancing-myntra-app-performance-transitioning-from-gifs-to-videos-2aa275a29c34?source=rss----7484818e9f88---4>)

Author: Kartik Sharma

Published: 2025-08-30T07:00:01Z

Content type: article

Language: en

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

Topics: [App](<https://devfeed.tech/topics/app.md>), [image animation](<https://devfeed.tech/topics/image-animation.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Playback](<https://devfeed.tech/topics/playback.md>), [Android](<https://devfeed.tech/topics/android.md>), [iOS](<https://devfeed.tech/topics/ios.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [gif](<https://devfeed.tech/tags/gif.md>), [h-264](<https://devfeed.tech/tags/h-264.md>), [ios](<https://devfeed.tech/tags/ios.md>), [mobile-app-performance](<https://devfeed.tech/tags/mobile-app-performance.md>), [performance](<https://devfeed.tech/tags/performance.md>), [videos](<https://devfeed.tech/tags/videos.md>)

### AI overview

Myntra describes transitioning animated content in its Android and iOS apps from GIFs to video formats. The article attributes the change to GIFs' high memory usage, lower visual quality, large file sizes, and resulting performance and loading concerns, while comparing alternatives including WebP, APNG, and H.264/HLS video.

### Source excerpt

Introduction In the fast-paced world of e-commerce, every millisecond and every pixel counts. At Myntra, where visual content drives discovery and engagement, we embarked on a critical mission: to revolutionise how animations are delivered in our Android and iOS apps. This journey led us to transition from the ubiquitous GIF format to more efficient video formats, unlocking significant performance gains and a superior user experience. Background on GIFs The Graphics Interchange Format (GIF) has been a widely-used format for looping animations since its introduction in 1987. Its simplicity and broad compatibility made it a go-to choice in mobile apps. However, despite its ubiquity, GIFs come with several drawbacks that can negatively impact app performance and user experience. Challenges with GIFs in Myntra App At Myntra, we used GIFs extensively for animations in our home and brand page's widgets. Our existing Image components provided easy GIF playback. However, GIFs came with some serious drawbacks in native mobile environments: High Memory Usage: GIFs often lead to Out of Memory (OOM) errors, especially on low-end devices. Low Quality: Limited frame rates and poor bitmap quality degraded the visual experience. Large File Sizes: GIF assets were large, increasing network load and loading times. To mitigate these issues temporarily, we implemented several workarounds. These included optimising GIF assets and imposing restrictions on the file size of GIFs during the ingestion process. However, these were interim solutions and the move to an alternate was necessary for a more permanent and effective fix. Exploring Alternatives Before settling on a solution, we explored several alternatives to GIFs: WebP: This format offers better compression and quality than GIFs. It has broad web support and is native on Android, but is only supported natively on iOS versions 14 and above. APNG (Animated PNG): APNG provides excellent image quality and strong web browser support. Howe

## Shadow Calls and Circuit Breakers: Uber's Safe Approach to Mobile Network API Migration

DevFeed: [Shadow Calls and Circuit Breakers: Uber's Safe Approach to Mobile Network API Migration](<https://devfeed.tech/articles/shadow-calls-and-circuit-breakers-uber-s-safe-approach-to-mobile-network-api-migration-25158.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/shadow-calls-and-circuit-breakers-ubers-safe-approach-to-mobile-network-api-migration/>)

Author: Ishan Khanna

Published: 2024-09-24T20:06:25Z

Content type: article

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [gRPC](<https://devfeed.tech/topics/grpc.md>), [migration](<https://devfeed.tech/topics/migration.md>), [API](<https://devfeed.tech/topics/api.md>), [Mobile](<https://devfeed.tech/topics/mobile.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [payload](<https://devfeed.tech/topics/payload.md>), [client](<https://devfeed.tech/topics/client.md>), [Remote Procedure Call (RPC)](<https://devfeed.tech/topics/rpc.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [api](<https://devfeed.tech/tags/api.md>), [apis](<https://devfeed.tech/tags/apis.md>), [experimentation](<https://devfeed.tech/tags/experimentation.md>), [latency](<https://devfeed.tech/tags/latency.md>), [migration](<https://devfeed.tech/tags/migration.md>), [mobile](<https://devfeed.tech/tags/mobile.md>), [mobile-app-performance](<https://devfeed.tech/tags/mobile-app-performance.md>), [mobile-apps](<https://devfeed.tech/tags/mobile-apps.md>), [network](<https://devfeed.tech/tags/network.md>), [networking](<https://devfeed.tech/tags/networking.md>), [payload](<https://devfeed.tech/tags/payload.md>), [performance](<https://devfeed.tech/tags/performance.md>), [protocols](<https://devfeed.tech/tags/protocols.md>), [rest](<https://devfeed.tech/tags/rest.md>), [software-engineering](<https://devfeed.tech/tags/software-engineering.md>), [talks](<https://devfeed.tech/tags/talks.md>), [tech-talk-review](<https://devfeed.tech/tags/tech-talk-review.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

This article discusses Uber's migration from REST to gRPC for mobile network APIs. It describes the motivation around payload size and latency, a three-phase migration strategy, technical challenges, and reported improvements including a 45% payload reduction and 27% latency improvement.

### Source excerpt

Ishan discusses Uber's journey from REST to gRPC, showcasing a 45% payload reduction and 27% latency improvement. Dive into the three-phase migration strategy, technical challenges, and innovative solutions that transformed Uber's mobile app performance.

## 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

## How we reduced our ANR by three times

DevFeed: [How we reduced our ANR by three times](<https://devfeed.tech/articles/how-we-reduced-our-anr-by-three-times-37402.md>)

Original publisher: [Read original article](<https://medium.com/okcredit/how-we-reduced-our-anr-by-three-times-d9ae0b41ad94?source=rss----40ea5327aac7---4>)

Author: Anjal Saneen

Published: 2022-05-24T05:19:21Z

Content type: article

Language: en

Sources: [OkCredit - Medium](<https://devfeed.tech/sources/okcredit-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [android-app-development](<https://devfeed.tech/tags/android-app-development.md>), [app](<https://devfeed.tech/tags/app.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [mobile-app-performance](<https://devfeed.tech/tags/mobile-app-performance.md>), [okcredit](<https://devfeed.tech/tags/okcredit.md>), [performance](<https://devfeed.tech/tags/performance.md>), [timeout](<https://devfeed.tech/tags/timeout.md>), [traces](<https://devfeed.tech/tags/traces.md>), [user-experience](<https://devfeed.tech/tags/user-experience.md>)

### AI overview

This case study explains how OkCredit investigated and addressed Android App Not Responding (ANR) issues in production. It covers ANR categories, timeout behavior, tracking methods, stack-trace analysis, source-code analysis, and examples of resolved ANRs. The authors report a 60% improvement in ANR and a 70% improvement in cold-start performance.

### Source excerpt

App not responding is one of the most frustrating experiences for users. The user is stuck with an app that is hung and must terminate it. It is ridiculously difficult to observe and fix ANR for the android app in production due to their indeterministic nature. After studying stack traces of ANR, we were able to improve ANR by 60%, as well as cold startup performance by 70%. We've also been featured on Google I/O and the Android developer's blog has covered our ANR case study. The goal of this blog post is to discuss our learnings about ANR, challenges around solving ANR, how we track ANRs, an analysis of the source code of ANR generation, and some interesting ANRs that we found and how we resolved them. What is ANR A certain period of time needs to be allowed for the Android system to process events. As soon as the processing times out, an ANR dialogue appears, allowing the user to choose to wait or terminate the application immediately. To discover ANR, Android implements a set of sophisticated mechanisms at the system level. ANR can be classified into various categories. According to the background/foreground of the App, each category has a different timeout. InputDispatching Timeout(5s): A major reason for this is that the button or input event does not respond within a specific period of time. On Android, the timeout is set at 5 seconds by default. Broadcast Timeout (10s): If the broadcast receiver fails to complete its processing within the specified time, the broadcast timeout message is reported (foreground timeout is 10 seconds, background timeout is 60 seconds). Service Timeout (20s): The service does not complete the processing within the specified timeframe (foreground timeout is 20 seconds, background timeout is 200 seconds). User experience is directly affected by ANR since it forces the user to stop using the application through an automated dialogue. However, in the background, this dialogue will not be shown to the user, instead, the app is silently