Lush is a drink mixing app I designed and developed. I collaborated with my partner on feature design and strategy, and relied on his expertise researching and entering hundreds of recipes, ingredients, and shortlists by hand.
For more information on the app, checkout out the website at lushapp.co.
I designed vector artwork for 13 types of glasses, as well as a full set of icons for the flavor lists.
I also wrote code to programatically draw the levels of liquids in each glass using CoreGraphics. This allowed me to simulate the liquid sloshing back and forth by transforming the vector paths based on the current level of slosh.
I also had to create a fast approximation to the Quarter Tank Problem in order to map the volume of an ingredient to its visible height in a curved glass.
All of the ingredient, drink, shortlist, and flavor information is stored in CoreData. An initial data set is populated with a bundled JSON file, and each app launch checks a REST API for any data updates and imports them.
Having highly relational data makes adding features like multi ingredient search possible, and allows us to effortlessly toggle between Metric and Imperial units of measurement.
I made extensive use of prefetching necessary relationships with CoreData to prevent data faulting while scrolling through UITableViews with hundreds of rows.
We also added shortlists to give users a small focused set of drinks to choose from if the hundreds of drinks made things overwhelming.
The favorites list allows you to save drinks you like for later reference.
We are continuing to improve the app, adding new recipes and features. We have already pushed two updates to the app store and many more data updates independently of the app store updates.