My final project for the iOS Capstone by Meta course is to create a food ordering app for Little Lemon restaurant. It displays a list of dishes available for ordering. Users can also customize it by enabling filters to show only specific food categories or using the search function to find food by name. The images below show what the app looks like.
I decided to continue developing the project after completing the course and practicing the new skills I had acquired.
So in this version, I learned how to use the Firebase platform.
Here are some of the things I learned and implemented during this project:
🔸 I learned how to work with the Firebase platform, which allowed me to enable features such as authentication and data storage.
🔸 I successfully connected libraries and dependencies using CocoaPods and Swift Package Manager.
🔸 Implemented authentication using FirebaseAuth, which allowed users to log in via email and Google Auth.
🔸 Added important features such as "forgot password", "delete account" and "log out", as well as saving profile photos.
🔸 Worked closely with Firestore to implement the "table reservation" feature, which allows users to save and cancel reservations.
🔸 I wrote simple unit tests to make sure the app was working properly.
🔸 I added Splash View to improve the user experience.
Working on this project gave me a better understanding of the data flow in SwiftUI and how to handle network requests asynchronously.
- I created a registration screen where the user is prompted to enter their personal data and added animation for a more impressive effect
- Flat navigation, which allows users to interact with the app more conveniently, and stacked navigation to the description of dishes.
- The main screen, contains the title, hero section, menu section, and dish list section.
- The profile screen displays the user's personal data and settings that apply to the entire application.
- It is also possible to save changes on the profile screen, which are held when the application is restarted.
- I also used the Core Data framework. I made a network call to get this data from the URL. After receiving this data, I saved it using the framework.