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.
- 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.