An app that is used to keep track of wines tasted
Sometimes, the perfect idea comes when you least expect it. While taking a Mobile App Development class alongside a Viticulture and Enology course, I had a lightbulb moment. The final project for the app class required us to build something using the skills we’d learned, and our professor emphasized, "The best projects are the ones students care about." One day, while filling out a wine evaluation slip in my viticulture class, inspiration struck: "I should make an app for this."
I built this project using the MAUI (Multi-platform App UI) framework, a straightforward platform that relies primarily on C# and XAML. After eight weeks of hands-on experience with MAUI in class, I felt confident about tackling the features I envisioned. The development process itself was fairly straightforward. The only significant challenge I faced was creating a custom menu bar, but some research helped me implement it. The real story of this project lay in the iterative testing and improvements that followed.
For context, my Viticulture and Enology class explored wine regions from different countries each week. During tastings, we evaluated six to twelve wines using paper point cards. Once I had a minimum viable product (MVP) for my app, I began using it in place of the paper forms to score wines during class. During my first week of testing, I discovered a bug in my Model-View-ViewModel (MVVM) implementation that caused the total score calculation to be incorrect. Fortunately, it was a quick fix and the last major error in the core functionality.
The real challenge was refining the app’s usability. Initially, I included inputs for details like food pairing, tasting location, and other contextual information. While helpful in theory, I found myself feeling obligated to fill out every field during tastings, which was cumbersome. To address this, I added a toggle switch to hide or show these fields on the tasting page. While better, it still felt clunky. The following week, I moved these options to a dedicated configuration page, allowing users to customize their experience without interrupting the flow of wine evaluation. This change made the app much more enjoyable to use.
Another improvement stemmed from a real-world scenario. While shopping for wine, I wanted to buy a Pinot Noir I had enjoyed during class but couldn’t recall its name. I remembered tasting it two weeks prior, but the app only sorted wines by quality and name at the time. That evening, I added a "sort by date" feature. Fortunately, the app had been automatically recording tasting dates from the beginning, so implementing this new feature was quick and seamless.
By the end of this project, I had developed a highly functional app that did exactly what I wanted—and in a way that felt intuitive. This project taught me the value of real-world testing and iterative improvement. Listening to my own frustrations with the app and refining it accordingly gave me a deeper appreciation for user experience design. I’m particularly proud of this app because of how much it improved through my own feedback loop. This mindset of testing, refining, and improving has become a key part of how I approach future projects.
MAUI
.NET
XAML
C#
SQLite
MVVM