/Mobile

The What, Why, And How of Mastering App Size

tl;dr: Spotify's approach to managing app size includes rigorous pre-merge and post-merge processes. In the pre-merge phase, automatic checks assess the impact of pull requests on app size, with a mandatory integration into the CI process and a 50KB threshold for app size increase. Emerge Tools analyze build differences, providing detailed reports. Post-merge, a dedicated Slack channel monitors significant size changes, celebrating successes when PRs reduce app size. This comprehensive system ensures balanced app development, maintaining app size within reasonable limits while fostering environmental sustainability.

featured in #468


Real-Time Analytics For Mobile App Crashes using Apache Pinot

tl;dr:  "At Uber, we have built a system called “Healthline” to help with our Mean Time To Detect (MTTD) and Mean Time To Resolve (MTTR) issues and to avoid potential outages and large-scale user impacts. Due to our ability to detect the issues in real time, this has become the go-to tool for release managers to observe the impact of canary release and decide whether to proceed further or to rollback. In this article we will be sharing details on how we are leveraging Apache Pinot™ to achieve this in real time at Uber scale."

featured in #463


Measuring Performance For iOS Apps At Uber Scale

tl;dr: This article discusses how Uber measures performance metrics, specifically focusing on app startup performance on iOS. The article mentions that Uber monitors various critical metrics such as UI flow latency, memory usage, bandwidth, and UI jank. App launch times are highlighted as a crucial industry-standard metric that directly impacts the customer experience.

featured in #431


How To Store Your App's Entire State In The URL

- Scott Antipa tl;dr: "I wanted a way for people to use it without having to sign in, or store any data on our server. I wanted to give them control over their data and to be able to store it locally to open and edit later. And also easily share it with other people. It's easy to do this by supporting file upload/download, but I wanted something simpler, like the ability to share by sending a url."

featured in #379


Accidental $70k Google Pixel Lock Screen Bypass

- David Schütz tl;dr: "I found a vulnerability affecting seemingly all Google Pixel phones where if you gave me any locked Pixel device, I could give it back to you unlocked. The bug just got fixed in the November 5, 2022 security update. The issue allowed an attacker with physical access to bypass the lock screen protections (fingerprint, PIN, etc.) and gain access to the user’s device."

featured in #367


Prioritizing App Stability - Mobile Performance @ Lyft

- Wen Zhao tl;dr: We focused our investment in mobile performance into the 3 metrics with the highest opportunity for improvement: (1) Time to interact: continuing reducing app startup time. (2) Stability: reducing the number of crashes any given user experiences. (3) Rendering performance: maintaining a high, buttery smooth frame rate. 

featured in #358


Cramming 'Papers, Please' Onto Phones

- Lucas Pope tl;dr: "I created Papers, Please in 2013 specifically for desktop computers with mouse control. Now, here, in 2022, desktop computers no longer exist and all computing is done via handheld mobile telephone. Time to update this dinosaur."

featured in #342


The Cost Of A Byte

- Noah Martin tl;dr: “Researchers from MIT, Purdue, and Yale demonstrated that turning off the camera during a Zoom meeting shrinks the environmental footprint by 96%.” This inspired Noah to think about a mobile app’s carbon footprint and he shows us how adding or removing 1MB in app size can have a surprisingly large impact.

featured in #288


How To Deal With Tech Debt At The Scale Of Super App

- Maksim Koutun tl;dr: "We want to share how we decided to work with technical debt and how Evolutionary architecture and SRE help us balance innovation and quality in mobile development." Maksim provides several examples, such as how each team can dedicate up to 20% of their capacity to technical improvements.

featured in #283


The Building Blocks Of Scale

- Kayla Kasprak tl;dr: Specific to mobile teams: (1) Smaller, more specialized teams to reduce communication overhead and have more specialized knowledge. (2) Organized, testable code so that "each software module should have one and only one reason to change.” (3) Well-reasoned architecture. Kayla mentions 4 types that work at scale. (4) Continuous evolution.

featured in #254