4.0.1 to 5.2: Reflecting on my first 2 years with Ulta Beauty

In our latest release we added support for iOS11 and the iPhone X, a major milestone for our development team. With that release I thought it was important to take a look back and see just how much the app [and team] has changed in my time at Ulta.

Key Initiatives:

  • Cleaned up, simplified, and modernized the codebase. Established a cadence for structuring code aimed for readability and understanding with emphasis on in-line comments explaining business logic. In most cases I tell my developers to structure their code linearly so that it mirrors what’s being displayed.
  • Identified redundancy in models/views and consolidated
  • Removed all non-essential third party code (that isn’t mandated by business partners)
  • Banned the use of cocoa pods and dependency managers.
  • Removed all unused and old assets / converted new assets to PDF (vector)
  • Created a “Core” which handles all our application/session/configuration management, as well as contains our own web services client
  • Established rules on native first UI/UX patterns with creative partners and an understanding of maintaining code over time e.g. I don’t want to be fixing custom controls with each OS release.
  • Compartmentalized storyboards based on features [performance/readability]

*It’s important to note that the above initiatives reflect my viewpoint on how a large enterprise project with multiple [sometimes fluid] team members should be treated. When creating my own apps I have similar from different goals and I can take certain liberties knowing only I will be maintaining the code.

The screenshots below are a few examples of said changes. On the left is version 4.0.1, the app I inherited when I started, and on the right, 5.2, our latest release.