There are multiple social media pages that post food recipes; I would spend hours watching these videos. I wanted a standardized place where people can easily reach out to their fanbase and make their personal recipes famous.
What it does
In iBite, you can share your famous homemade recipes with a large audience. You will be in charge of your own page; you can add posts and manage your page's design. You can also like other pages and view what recipes they post. In addition, liked posts can be saved for an easy access.
How I built it
Using Google's Firebase database and storage, I was able to upload and download data so users can share recipes across devices. I also used AutoLayout in Xcode to set up my storyboard and design elements. Using UIKit and a few third party APIs, I was able to connect the backend and the frontend of my app.
Challenges I ran into
As this was my first time using Firebase, I was quite confused with the JSON structure and how to organize my data. I ended up creating various dictionaries for both the pages and the posts. Inside the app, I converted the downloaded dictionaries into structs to easily manage and access information for each post. Also, after piling up storage data, I had to shrink the image sizes to a smaller size that still remained very high quality for viewing on phones and tablets.
Later on, as I wanted to make the app more efficient, I wanted to download only relevant data so the process would speed up. At first, I had trouble querying Firebase to retrieve only selected posts. After several trials, I was finally able to find a method that was organized and easy to download the data.
Accomplishments that I'm proud of
This is the first complete app I have built using Firebase. After the Parse.com shutdown, I was forced to try several different databases but could not find a good option. After learning about Firebase, I decided to use it for my new app. However, being unfamiliar with JSON and its structure, I ran into some difficulties when organizing data. After a lot of self learning and troubleshooting, I was able to cleanly organize information in the database.
What I learned
In this app, I learned how to use Firebase effectively as well as key strategies for structuring data. I also learned to manage threading and running both asynchronous and synchronous operations. Lastly, I improved my design skills after planning and sketching the entire application.
What's next for iBite
In the future, I plan to add Artificial Intelligence to iBite; it will be able to create recommendations for both pages and recipes based on your opinions. I also plan to add push notifications to better engage the user about activity on their page.