Anonymous case study · Mobile modernization
Fixing an existing mobile app without stopping feature work.
An iOS and Android app still needed new features, but the team also had platform bugs, build configuration issues, and releases to manage. The goal was to fix the problems without rewriting the app.
The problem
A bug that shows up on a screen isn't always caused by that screen. It might come from permissions, navigation, a native dependency, build settings, or an API.
I worked on bugs and releases across iOS, Android, phones, and tablets while feature work continued.
The decisions
What I did and why
Reproduce the bug first
Constraint: The cause could be in JavaScript, native code, or platform settings.
Approach: Reproduce the issue on a device or emulator, narrow down the cause, and fix that part of the flow.
Tradeoff: A focused fix is easier to test and less likely to break unrelated features.
Get the release process under control
Constraint: Different signing, environment, and distribution paths can turn an otherwise good code change into a failed release.
Approach: Work across Expo/EAS, build configuration, signing requirements, and release verification for both platforms.
Tradeoff: A fix isn't finished if the team can't release it.
Test the whole flow
Constraint: Permissions, overlays, keyboard behavior, and device form factors can hide issues that basic unit tests miss.
Approach: Test critical flows across iOS and Android, including tablet layouts and native permission transitions, and address platform-specific regressions.
Tradeoff: A screen can pass a component test and still fail on a real device.
Fix problems without a rewrite
Constraint: Engineering cleanup must coexist with active customer-facing development.
Approach: Prioritize fixes affecting users and releases, strengthen repeatable implementation patterns, and keep changes reviewable.
Tradeoff: Small changes are easier to review, test, and release.
Results
What changed
- Feature work continued while platform and release issues were addressed.
- Build configuration, distribution, and release checks received focused attention.
- Platform-specific bugs were investigated and fixed using device-level testing.
- Changes were made in the existing app without starting over.
Tools and experience
The client's name and project details are omitted. This describes the work I contributed to, without sharing private metrics.
Working on something similar?
Tell me what's going on. I'll take a look.