Case Study
Yahoo Fantasy Sports Modernizes Legacy Code and Architectures
Gabe helped update the Daily Fantasy section of the Yahoo Fantasy Sports app by improving its code and adding a new feature. He modernized the architectural patterns and created a comprehensive refactoring guide for future developers.
Snapshot
- Client: Yahoo
- App: Yahoo Fantasy
- Downloads: 10M+
- Rating: 3.9/5 (354K reviews)
- Industry: Fantasy Sports
- Services used: Refactoring, Documentation
- Results:
- Built a new feature
- Updated code and architectural patterns
- Built refactoring guides
Problem
The Yahoo Fantasy Sports app, despite its large user base and reliable performance, relied heavily on legacy code. The development team was actively refactoring it, but the codebase was split across teams using different architectures, such as MVC and MVP. This fragmentation created a poor developer experience, as implementing a single feature change often required updates across multiple architectural patterns.
Solution
To address the problem, the team planned to create standardized guidelines for refactoring the app using Jetpack Compose, a modern UI tool. Since Jetpack Compose was in beta at the time, they couldn't deploy these changes immediately. Still, the team aimed to evaluate whether adopting this emerging technology would streamline their development process and improve future scalability.
The one missing thing was an expert to guide them through the process. So, the team lead reached out to Gabe to help create a proof of concept (PoC) to demonstrate that incrementally refactoring the entire Yahoo Fantasy Sports app's codebase was feasible. To do this, he and Gabe focused on the Daily Fantasy feature of the app.
Over five months, they partially built a new component for the PoC. The refactoring process involved converting code from Java to Kotlin (a common and practical approach for modernizing Android apps) so they could work with Jetpack Compose. It also involved consolidating the fragmented legacy MVC/MVP architectures to MVVM for a unified architecture.
Results
The PoC for refactoring the Yahoo Fantasy Sports app’s Daily Fantasy feature yielded significant outcomes, which validated the feasibility of incremental modernization.
First, the partial implementation of a new component using Jetpack Compose and MVVM reduced UI development time. This demonstrated that modern Android architectures and technologies could enhance efficiency compared to their legacy counterparts.
Second, it led to the development of comprehensive refactoring guides that showed developers how to convert the Daily Fantasy feature’s codebase without running into production errors. This demonstrated that having clear guidelines helped teams work together more efficiently when updating the code.
Conclusion
The Yahoo Fantasy Sports app has over 10 million downloads on Google Play. It's unknown whether the development team eventually modernized the app's code. However, the fact that they were willing to explore what, at the time, were new and in-development technologies is a testament to their commitment to innovation and technical excellence.
Contact
Let's make big things happen!
* Marked fields are required to fill.