Inspiration
Our inspiration comes from our love for cooking and eating. Throughout college, there are many (too many) struggle meals but on the off occasion we go for a Friday night out, we want the world to know how amazing the meal tasted. Many apps have options to input your meal but with Foodie, all it takes is one snap. Foodie aims to embrace the spreading of food culture. What's not to like about seeing more good eats :).
What it does
Foodie analyzes a photo taken through the app and breaks it down into the distinct components. One snap and we determine the ingredients that went into the meal. If we missed any aspect to the dish, there is also an option to manually add ingredients that might be more obscure to distinguish from sight alone. Foodie also boasts of an explore feed that includes options to heart and share with anyone!
How we built it
Foodie is built exclusively using Swift. The API that we utilized for object recognition comes from Foodvisor Vision. For backend support, we connected a Supabase storage for files and Supabase database for user data. For login, we also utilized Supabase Auth for centralized user creation.
Challenges we ran into
Some challenges we ran into include implementing a working camera in the application. Although we followed Apple's documentation, the actual deployment of the camera with the correct privacy settings turned on proved to be tricky. Another challenge that we encountered is with the formatting of returned data. Foodvisor API returned a JSON object, but translating that into Swift required many iterations to finally get right. The API also returned many guesses with sub par confidence, so in order for us to find the most accurate dish we filter for only guesses with larger than 0.5 confidence.
Accomplishments that we're proud of
A major breakthrough occurred when we connected the image taken through the app to the API then into our database in one go. Especially since this is our second time developing in Swift since our first ever hackathon a year ago.
What we learned
We've learned the necessary components to a application on iOS, including utilizing Apple's documentation to implement a working live camera. This is also our first time calling an API through Swift. We also learned the importance of reading documentation and the ease that comes with well written docs.
What's next for Foodie
Although 36 hours seemed long in the moment, we had ambitious goals for Foodie that we hope to one day implement. These include a way to automatically mark where the photo was taken and that way the users can share their individual maps with restaurants marked with corresponding photos. In addition, a major flaw to our design is the fact that food can be hard to distinguish since every dish has so many different variants, let alone ingredients. So, we hope there is a way for us to fine tune the image recognizer using user input as training data. A gimicky feature that would be cool to see is the ability to tap to share maps and feeds with the new iOS 17.0.
Built With
- supabase
- swift
- swiftui
Log in or sign up for Devpost to join the conversation.