Why we decided to modularize
7 Min Read
About a year ago I decided to change careers, somewhat. I was a full-stack engineer on Wayfair's Room Planner project when I chose to try iOS development. Room Planner is a feature that lets users design their space by placing products in a virtual room. I joined the iOS side of the Room Planner team, so I was hopeful that the shared context would ease the transition. While it did to some degree, learning a new language (Swift) and a new codebase at the same time can be challenging, to say the least.
5 Min Read
When it comes to mobile platforms, Wayfair has multiple end user focused apps across iOS and Android, with over 100 engineers working on them. As the recently appointed lead of the App Team here at Wayfair, I chose to ask fairly generic yet consistent questions upon my arrival to get the lay of the land. These questions included:
9 Min Read
The App Platforms Team at Wayfair, empowering a team of more than 60 mobile developers with efficient tooling and processes, has been actively looking at the performance of it’s mobile offerings, turning this into more focused work in the past few months. We wanted to involve as many of the brilliant minds working at Wayfair as possible to understand the question around performance, and to find concrete solutions.
16 Min Read
Here at Wayfair, we are faced with challenges that the average iOS developer likely never has to come across. In the last eight months, we’ve had 47 different developers make 2,000 commits into our repository. Over the past six years, this monumental amount of changes has led to a codebase consisting of thousands of files and nearly 430,000 lines of code. Each day that goes by, we have around 10-15 merge requests go into our master branch, and 50 more open at any point in time. All of this code takes a toll on the compiler, and even though it has been extremely gradual over years of work, it has become increasingly easy to see that app compile times are slowing down our productivity exponentially.
10 Min Read
The Wayfair iOS app aims to have complete feature-parity with our website. This means that we need to support a variety of screen sizes and orientations in ways that — at least from an iOS frameworks point-of-view — are “custom”. To be specific, we need to support three distinctly different layouts, each with its own view hierarchy and behavior: iPhone portrait, iPad portrait, and iPad landscape.
11 Min Read