
Build a coffee ordering app with SwiftUI and Firebase for iOS 13+, featuring drink categories, a basket, checkout with payments, and a shop site with user authentication.
Open Xcode 11, set up a Firebase project, and install CocoaPods on your Mac to start the SwiftUI iOS13 coffee shop application for online ordering.
Create a new swiftui iOS app project, download coffee assets, set up firebase project, install pods, and configure authentication and database to store the coffee menu.
Install and configure cocoapods and firebase for the coffee shop app, enabling email/password authentication and firestore access. Set up firebase project, rules, and workspace, then initialize firebase in the app.
Import coffee assets into the SwiftUI project, define a drink model with id, name, category (hot, cold, filter) and price, then create a sample menu and dictionary-ready data for Firebase.
Create a Firebase reference, a constants file, and a user defaults reference to access four Firebase collections—users, menu, orders, and basket—and convert drinks to dictionaries for saving menu data.
Create a SwiftUI drink row by modeling a drink category with a drinks array, displaying each drink as a card in a horizontal scroll view inside a vertical stack.
Build a reusable SwiftUI drink item component displaying image, title, and description in a vertical stack, styled with frame, corner radius, and shadow, for multiple drinks.
Show drink rows on the home screen by grouping the local menu into categorized sections and displaying each category's drinks, with plans to fetch the menu from Firebase.
Create a drink listener to fetch the menu from Firebase, using an observable object to publish drinks and update the SwiftUI interface in real time.
Master data transfer in SwiftUI using the observable object protocol, published variables, and state variables. Explore a drink detail view that presents the image, name, description, and an add-to-basket action.
Explore building the drink detail view in SwiftUI, with a full-bleed image, safe area adjustments, a description, and an add-to-basket button wired to the drink object.
Wrap each drink item in a navigation link to move from the drink list to the drink detail view, passing the drink object as the destination.
Create an order basket in SwiftUI by modeling an identifiable basket with an owner ID and items, compute the total, and implement add, remove, empty, and save to Firebase.
Create and manage the order basket by converting drink items to their IDs, building a basket dictionary, saving to the store, and supporting adding, removing, and emptying items.
Explore creating and saving an order basket to Firebase, handling first-time and returning users, creating or reusing a single basket, and adding items with a unique ID.
Implement a basket listener that subscribes to Firebase changes for the current user's basket, downloads drinks from the menu by IDs, and publishes the updated basket via an observable object.
Fetch the basket from Firebase, assemble the order basket with items, and listen for updates in SwiftUI. Create or update the basket on item addition and save to Firestore.
Create an order basket view in a SwiftUI iOS 13 coffee shop app, driven by basket listener, showing items with prices, enabling swipe-to-delete, and place order link disabled when empty.
Create a basket view link using a sheet and binding and toggle its display. Delete items from the order basket, format prices, and update the checkout flow.
Design and implement the checkout view in SwiftUI, binding to the basket total, letting users pick a payment type and tip amount, and confirm the order with an alert.
Implement a checkout view in SwiftUI that displays the total with two-decimal currency formatting, and a confirm button disabled when the basket is empty, with navigation to the payment view.
Demonstrates wiring a checkout button in a SwiftUI iOS13 coffee shop app to present an alert, create an order item from the basket, and then empty the basket.
Create order class in Swift that conforms to Identifiable, with id, customer id, order items array of drink IDs, and total amount; convert to a dictionary and save to Firebase.
Create and save a new order from the basket with a unique ID, customer ID, and items, then store it in Firebase and reset the basket.
Explore building a SwiftUI login view for a coffee shop app, including sign in, email and password fields, and a switchable sign up flow with repeat password.
Build a responsive login view in SwiftUI using vertical and horizontal stacks, padding, and alignment, with a dynamic sign-in button and handling the repeat password area.
Build a login view in SwiftUI, introduce a separate sign-up struct, use binding to toggle sign-up with animation, and connect a dynamic button to login or sign up.
Finish the registration view in a SwiftUI app with a four-field form and onboarding, plus a disabled finish button tied to a user object with login, signup, and reset password.
Build a Swift Firebase user model with id, email, name, phone, address, and onboarding. Provide current user accessors and register, login (with email verification), and lookup functionality.
Register a user with email and password via firebase, handle completion, and send a verification email, while validating email and password inputs and onboarding state.
In a swiftui iOS13 coffee shop app, ensure the basket opens only for logged-in users by verifying local data and onboarding status.
Create a user dictionary with id, email, first name, last name, full name, address, onboarding, and phone, then save to firebase and save locally via user defaults under current user.
Register users in Firebase, send an email verification, log in, download or create a user object from Firebase, save it locally, and sync it to Firestar for subsequent app access.
Learn how to create and verify a user object in Firestore, manage sign-in and onboarding flow, and conditionally dismiss views in the SwiftUI coffee shop app.
Demonstrates presenting and dismissing the finish registration screen with modal presentation and presentation mode, after login and onboarding checks, and toggling to complete user updates in Firebase.
Update user functions demonstrate updating a user dictionary with key-value pairs, using a completion handler, syncing changes to Firebase only after local data is updated, and preserving other keys.
Update the current user in firestore during finish registration by composing full name from name and surname, updating profile fields, onboarding status, and dismissing the registration view on success.
Retrieves and initializes the current user from a dictionary and user defaults. Uses onboarding status to navigate between basket, login, and finished registration views in a SwiftUI coffee shop app.
Update the SwiftUI coffee shop app to use dynamic current user ids instead of hard coded values, updating basket and checkout flows. Enable login, logout, and password reset features.
Guard against crashes by checking the current user before accessing the basket in the SwiftUI coffee shop app, and implement a forgot password flow with email validation and user alerts.
Add customer name and is completed to the order model and save these fields to firebase. Configure the SwiftUI admin app with firebase setup and include the necessary files.
Create and manage an order list by building an order listener that separates active and completed orders, displays customer names and drinks, and updates orders in real time.
Create an orders view in SwiftUI that uses an observed object to manage active and completed orders, displaying each customer's name and total with a navigation view, sections, and spacers.
Learn how to fetch and display coffee shop orders from firebase in a SwiftUI iOS13 app, navigate to order details, and reflect live updates for completed orders.
Pass an order object to an order detail view and construct a SwiftUI layout with sections for customer and items, including a for-each loop over drinks and a complete order.
Retrieve the order’s customer ID and download the corresponding user data from Firebase to populate the SwiftUI user detail view. Use a one-time user listener to fetch the user information.
Fetch a user from a database in SwiftUI view using a get user function, download by id, and update @State user to refresh name, address, phone, and email on appear.
Learn to mark orders as completed in a SwiftUI iOS13 coffee shop app by updating the order.completed flag in Firestore. Secure access with Firebase authentication and rules to protect data.
Congratulations for completing the course and finishing two applications on Swiftie client side and shop side; explore more courses from Iowa State School.
In SwiftUI iOS13 Coffee Shop Application we are going to build a real online coffee ordering application.
Unlike any other courses found on Udemy, I always teach full real-world apps, when we finish with the course, we are going to have an app ready to post to AppStore. This SwiftUI iOS13 Coffee Shop Application can easily be integrated with any coffee shop or other fast food, drink serving service, just upload your menu to it.
What our app will include:
Searching Firestore
Make a beautiful user interface with new SWIFTUI
Creating and updating Online Basket
Firebase users Authentication
Firebase firestore (new real-time database from firebase)
Email confirmation
Make apps ready for Dark Mode in iOS 13
This SwiftUI iOS13 Coffee Shop Application is NOT a beginner-level course. You need to know your way around the xCode, be familiar with it, you have to have basic knowledge in Swift, SwiftUI, and application building. We are going to start from scratch and build the application together. All assets will be provided by me. I will type and explain every line of code. By the time we finish, you will learn a lot of new things even if you are an experienced iOS developer.
The curse will teach you how to write clean and readable code, structure your app development, so even if you get back to your code in few years, you can read and understand it clearly.
We are also proud to say that we have one of the best Support available on Udemy! Our Q/A Section is constantly monitored and all questions are answered within few hours, Sometimes we even chat with students in real-time to help them with the issues they may face during the study.
Don’t waste your time on low-quality courses where you don't even get the support of the instructor
Your time is precious. We offer the best video courses with carefully crafted content, we are learning by coding!
Don't just take our word for it, check out our other courses and what other students have to say about our courses!
"This course is so far the best course I took in UDEMY. I really learned something. Totally worth the time. Won't regret it. The instructor was responsive too and the course is new and knowledgeable." J Nima
"An excellent Tutorial by David. Very good explanation" Tapan Kumar Raut
"There is nothing on Udemy like David's courses! I cannot recommend his courses enough. Best teacher out there, very responsive as well. " Kris
"I really do love the approach, the structure of the course gives you the ability to move forward smoothly, and efficiently gain as much knowledge as possible, the instructor really goes in-depth, it's incredibly comprehensive, not to forget that this is a real-world project, and the advanced concepts gained here make me all confident that I'll be able to build my own apps in a very effective way. the course is well taught, and it really deserves the 5 stars, the instructor as well, he explains things in a very clear, clean way. Definitely enjoying the Course. and definitely, Thumbs Up." Yen Loo
"This is one of the most complete and comprehensive iOS projects on Udemy! Everything works! No broken code! You learn Firebase, Onesignal, and Backendless in one project. The instructor is always accessible, he goes for quality, not quantity. I still have a way to go, but so far it has kept me completely engaged and focused! I wish there were more courses like this! I will definitely purchase another from David." antr8tr
We are so confident that you'll love this course that we're offering a FULL money-back guarantee for 30 days, No Questions Asked! So it's a complete no-brainer, sign up today with ZERO risks and EVERYTHING to gain.
So what are you waiting for? Click the Buy Now button and join the best SwiftUI iOS13 Coffee Shop Application development course and let's get started.