
Learn to obtain the Xcode 12 beta from Apple's developer downloads, install both the beta and standard Xcode, and set up your environment to build tinder-like dating app with Swift.
Create an iOS app project in Xcode using Swift with a storyboard interface and iOS 14 deployment target, preparing for Firebase integration.
Create a Firebase project and configure an iOS app by adding Google services, setting up authentication with email and password, and enabling database and storage for a Tinder-like app.
Install cocoa pods to add firebase libraries—authentication, firestore, storage, and messaging—for your iOS 14 dating app; configure pods, create a Podfile, install, and open workspace to build with Swift 5.
Design the login view user interface for the iOS14 tinder-like dating app, including email and password fields, forgot password, and sign-up to registration, with interface builder and auto layout.
Create the register view UI by adding a standard view controller, wiring the sign up button with a segue, and arranging text fields, labels, and controls with precise constraints.
Connect your iOS app interface to code by creating view controllers, wiring outlets and actions, and setting up dark mode testing to ensure UI elements respond correctly.
Learn to dismiss the keyboard on background tap by adding a background tap gesture recognizer and wiring it to a private function that dismisses the keyboard.
Validate login and forgot password input, ensuring the email is provided before proceeding. Show errors with ProgressHUD when fields are missing and guide password reset and registration.
Add a gender segmented control with an action that updates a boolean based on the selected index (0 for male, 1 for female) and prepares the user registration.
Register a user with Firebase authentication and create a custom user object in the database, including date of birth, address, nickname, and avatar image link.
Register users with Firebase authentication using email and password, obtain the user id, create a corresponding database entry, and trigger email verification for secure onboarding.
Enhance the register view controller by handling errors and displaying a loading spinner while sending a verification email, then confirm passwords match before completing registration.
Initialize a full user object for the dating app, including id, email, username, date of birth, gender, looking for, avatar, image links, and registration date; save locally and to Firestore.
Create a Firebase-authenticated user object, convert it to a dictionary, and save it locally in user defaults using centralized keys.
Learn how to save a user object locally using user defaults, convert the user to a dictionary, handle optionals, synchronize, and manage registration and email verification flows.
Build a login function with firebase authentication using email and password, handle errors, verify email status, and prepare to check user existence in the database.
Learn to verify user existence in Firestore, create a user if needed, and build a concise Swift Firebase reference helper to access root and user collections.
Design a Firebase listener singleton to download the current user, convert the snapshot into an FUser via a dictionary initializer, and safely handle birth date timestamps.
Learn to save and sync the user object with Firebase by converting snapshots to dictionaries, saving locally via user defaults, and updating or creating the Firebase document with error-handled completion.
Enable login and reset password workflows using Firebase authentication. Save user objects in a Firestore user collection and send password reset and verification emails with proper error handling.
Enable autologin by checking Firebase authentication state and local user data, listening for login changes, and switching from the login screen to the tab bar main view on app launch.
Navigate the login flow by presenting the main view in full screen, replacing modal presentations with a full screen transition, and test auto login to enter the application.
Implement a date of birth picker in the login flow, show a loading spinner, and add a toolbar with cancel and done actions in Swift for iOS 14 Tinder-like apps.
Replace the text field with a date of birth label and a date picker, integrate beside the label, adjust constraints, and test by printing the selected date.
Configure date picker and extensions in a Tinder-like iOS app after Firebase authentication, update birth date text field with a formatted date, and unify top bar and navigation bar colors.
Build a profile view for a dating app on iOS 14 using a table view controller with four sections, including an avatar header and camera, settings, and edit buttons.
Build the profile view UI for the iOS 14 tinder-like app by adding a top label, an about me text view inside a container, and precise auto layout constraints.
Build the profile view UI part 3 by adding a centered label and two white text fields with job and indication placeholders, using leading and trailing constraints and vertical centering.
Create and wire a profile table view controller in a storyboard, connect outlets and actions, manage static sections, and ensure UI elements load without crashes.
Apply backgrounds and rounded corners in the profile view to improve visual cohesion, mask corners and refine the table view for a clean UI.
Disable text fields by default and toggle editing with an edit button. Show the keyboard and reveal a save button to save data to Firebase.
Implement alert controllers and action sheets in Swift to handle avatar changes, picture uploads, and profile settings like email, name, and logout, with light mode consistency.
Fetch the current user ID and the current user object by leveraging the Firebase authenticator and user defaults, with nil-safe handling when no user is available.
Verify the current user exists before loading profile data, then populate name, age, location, avatar, about me, and education in the profile view.
Calculate age from date of birth with a Swift date extension. Use current date and absolute value to ensure a positive age, and plan avatar placeholder.
Implement the edit user data function to save avatar changes and update fields like about me, job title, profession, gender, city, country, and height (double) with empty input handling.
Save updated user data locally and to the fire store, check avatar changes to decide on upload, and exit editing mode to update the UI.
Set up a gallery to upload avatar and other images, manage camera and photo library permissions, and present the Kalari gallery with an avatar limit of one.
Extend the profile table view controller to conform to the gallery delegate, implement image selection handling, avatar versus multi-image uploads, and permission flows, then test the gallery in iOS 14.
Select multiple images from the gallery, resolve them to UI images, upload them to receive links, and assign these to the user's image links while showing a loading indicator.
Upload image functions in a Swift file using Firebase Storage, a FileStorage class, and a directory parameter to save and return the image URL.
Upload avatar to avatars folder in Firebase storage, save its link to the user profile, support up to ten images, and refresh the UI with a locally saved copy.
Initialize the FUser from a dictionary saved in user defaults and set a gender-based avatar placeholder when no avatar image exists.
Save an avatar image locally by creating a file path in the app sandbox, obtaining the documents directory, and writing image data atomically to a named file.
Save the user avatar locally by converting the image to data and writing it to the documents directory with the user id; fetch the avatar from Firebase on login.
Learn to download images from Firebase by checking local storage first, extracting a clean file name, and saving the image locally with a completion handler.
Download and cache the user avatar on login by retrieving the image from Firebase storage, applying a gender-based placeholder when needed, and saving it locally for faster future logins.
Implement a function to upload multiple images to Firebase storage, returning an array of image links, organizing uploads in per-user folders and using a name suffix to override duplicates.
Learn to download multiple images from a list of image links using a Firebase helper, returning an array of UI images via a download queue and a completion handler.
Present a change field alert view to update the user’s email or name with an alert controller and text field, including dynamic titles and placeholders.
Update user email or username in Swift with input validation and alerts, using separate change email and change username handlers that sync data with Firebase.
In this part, learners implement updating the user email by calling authentication.currentUser.updateEmail with a new email, handle completion and errors, and reflect success in the UI.
Update the user email in the profile data, test changing it, and add a function to send a verification email for the new address after change.
Implement and test resending email verification in a Firebase Swift app when a user changes their email, and differentiate it from password reset while updating authentication state.
Logout the current user by signing out and clearing user defaults. Then instantiate the login view by storyboard id 'Log-in View' and present it fullscreen on the main thread.
Extend UI image to create a circle mask for avatar images, handling portrait and landscape by cropping to the smallest dimension and drawing with UI graphics.
Introduce a card view controller to implement a tinder-like swipe interface with the Shuffle library, enabling left and right swipes with Swift 5 and CocoaPods.
Set up the shuffle sample project, install pods, and run the workspace to explore a left-right swipe card stack with dummy users (name, age, occupation, image) and delegates.
Implement user card components, including a user card model and overlays, to support left and right swipe actions in a Tinder-like iOS app using Swift and the Shuffle library.
Build a swipe-enabled user card overlay for a Tinder-like dating app using a transparent view, with left (no) and right (like) indicators, rotation, and corner anchors plus shadows.
Create a user card content view for iOS by composing a background view, image view, and a bottom gradient layer with corner radius and shadow.
Create a user card footer view in Swift for a tinder-like dating app, using gradient styling and attributed strings to display a title and optional subtitle, with dynamic layout.
Learn to build a tinder-like card stack in iOS with Swift and Firebase by creating a swipe card system, data source, overlays, and card configuration.
Create a swipeable user card by building a card model, rendering with an image and gradient, and fix a subtitle display bug to reveal the footer.
Implement the card delegates to detect selections, swipes, and when all cards are shown. Create and seed dummy users with avatar images in Firebase to populate the cards.
Download users from firebase part 1 demonstrates paginated fetching with an initial batch and a subsequent load, using document snapshots to limit results and preload more cards.
Fetch and paginate users from Firebase by ordering by registered date, descending, applying a limit, and starting after the last load while skipping liked or current users via document snapshots.
Show users in cards by loading an initial user set, downloading avatars, building card models, and refreshing the card view as you swipe left or right.
Fetch the second batch of users by loading from Firestore with an initial load limit, merge into all-users array, and refresh the card view when the first stack is exhausted.
Design and implement a profile view with a top image collection, image pagination, like button, and sections for about, my work, education, and general information in a static table view.
Design the profile view in a tinder-like iOS app by building a four-section table view, configuring labels, text fields, and a surrounding UI view with autolayout, fonts, colors, and constraints.
Create and wire a user profile view controller for a Tinder-like iOS app, wiring collection view, outlets, actions, and labels across sections, including background views, page control, and activity indicator.
Learn to style a dating app's background views by applying top and bottom corner radii and masked corners for four sections, then wire up navigation to a user profile.
Learn to adjust background colors in a swift-based iOS 14 dating app, customizing table view and section content views, removing headers, and applying system gray 6 for visibility.
Implement table view delegates to hide section headers, adjust row heights, and style the header background, while managing an activity indicator with show and hide controls.
Pass a user object to the profile view by selecting a user ID from an array, populate profile fields, load images, and refresh the collection view and page control.
Create a custom image collection view cell for a tinder-like dating app in Swift, with gradient background, profile image, and conditional country and city labels for the first card.
Implement the collection view data source and delegate to power the user profile gallery. Configure cells with image, country, city, name, and age, and fix sizing.
Use did select at index path to enlarge the image, and implement layout methods to fix cell height 453 while preserving dynamic width and enabling horizontal paging with insets.
Register a new user to test multiple images and verify email. Fix a crash by dispatching UI updates to the main thread and tune pagination, spinner color, and tap-to-enlarge.
Learn to integrate the české photo browser to display enlarged images in an iOS 14 Swift app, including installation and usage.
In this lecture, learn to disable the like button when the current user has already liked a profile, and to dismiss the profile view programmatically after like or dislike actions.
Save a like by updating the current user's Firestore document and local data, appending the liked user id to the like array, and handling errors.
Model a like object with id, user id, liked user id, and date, convert it to a dictionary, and save it under the likes collection in Firestore.
Define a user profile view delegate protocol with didLikeUser and didDislikeUser, set the cart view controller as delegate, and handle left/right swipes to like or dislike in Swift/Firebase tinder-like app.
Create a global functions file in Swift to manage likes across classes, saving likes to Firebase and checking current user interactions to enable matches.
Test the like feature in the card view using Firebase, querying for likes, determining if another user has liked you, and updating the UI accordingly.
Learn to reset a user’s likes by clearing the local array and saving the reset to firestar, then test the like and match functions across two simulators.
Add a notifications tab for likes and dislikes, embed in a navigation controller, and implement a table view with avatar and user name to open profiles.
Create and connect a notifications view controller that drives a table view, implements data source and delegate methods, and fetches likes and user data from Firebase with a loading indicator.
Download specific users by IDs from Firebase, constructing user objects from each document and returning them via a completion handler, then update the main thread UI and refresh table view.
Create a custom like cell for the tinder-like app by wiring avatar and name label outlets and loading the avatar from a URL, then refresh data in viewDidAppear from Firebase.
Tap a notification cell to select the user from the all users array and display their profile using the show user profile function, then push it on the navigation stack.
Create a match object model in Swift with id, memberIds, and created date, convert it to a dictionary, and save it to Firebase Firestore under the matches collection.
Set up the match view UI in the main storyboard with a background image, avatar, and name and city labels, plus send message and keep swiping buttons using auto layout.
Connect the match view in storyboard by wiring outlets and actions for background, avatar image, name label, and country; implement send message and keep swiping button actions and lifecycle methods.
Configure the card and heart views, apply selective corner masking and shadows, and present user data (avatar, name, age, city, country) with nil-safety checks for a tinder-like dating interface.
Present the match view from the card, pass the matched user id, and save a match object (current user id and date) to Firebase via the Firebase listener.
Shows how a like becomes a match, renders the match view with image, name, city, and a shadowed card, and enables swipe or button actions to message or dismiss.
Demonstrates how to present the match view from a user profile, using navigation controller versus model view, and coordinate like and dislike actions via delegates and the card view.
Learn to show a start chat button on a user profile only after a match, by checking match status, updating the UI, and switching between like/dislike and chat options.
Implement match view delegates using a protocol to notify the presenting view when users tap send message or keep swiping, update like status, and dismiss the match view.
Configure match view delegates for the card view to enable swipes and chat. Build the matches screen with a top collection view for recent matches and a chats table view.
Design the recent views screen by embedding in a navigation controller, presenting a top collection view for recent matches and a bottom table view for chats with precise auto layout.
Design a custom collection view cell and table view cell UI for an iOS dating app, positioning avatar images, placeholders, and indicators, while enforcing horizontal scrolling and auto layout constraints.
Create a custom collection view cell with an avatar and activity indicator. Load the avatar from storage via a link, show a placeholder, and apply a circular mask while downloading.
Create a recent table view cell with a custom class and reuse identifier, wire its outlets and data sources, and implement a recent view controller to display matches.
Learn how to fetch recent matches in a Tinder-like iOS app using Firebase and Swift, including filtering by date, extracting other users' IDs, and loading avatars.
Presenting matches to the user by downloading matched user data from Firebase, filling a collection view, handling no matches, and updating the UI on the main thread.
Fixes the collection view cell size by increasing height to 80 points, disabling estimated size, and handling no matches; enables showing a user profile on cell tap.
Implement collection view delegates and data source for a tinder-like dating app, navigate to user profiles on selection, and pass user objects to profile views while handling matches and chat.
Define a recent chat model in Swift for recent chats, including id, chat room id, sender name, last message, avatar, and read count, with Firebase dictionary conversion.
Save and delete recent chat items in Firebase Firestore, using a recent collection, and render them in a recent chat table view with avatar loading and time-elapsed formatting.
Implement a function to create two recent chat items—one per member—for a chatroom, updating the last message, read counters, avatar, and ids via firebase queries.
Explain how to create recent items for two users by determining sender and receiver, selecting the other user, and initializing a chatroom id, last message, and avatars.
create a chat room id by combining two user ids in a start chat function, then create recent items for that chat room id and its users.
Create the first recent objects when starting a chat by building a chat room id and calling start chat with the current and other user.
Download recent chats for the current user using a real-time Firestore snapshot listener, filtering by user id, parsing documents, validating fields, sorting by date, and updating the UI automatically.
Download recent chats from Firestar, populate a recent chats data source, and refresh the table view on the main thread to show non-empty last messages.
Start chats from the user profile by creating a chat room and a recent entry, then manage deletion and navigation to the chat room in a Firebase-powered Swift app.
Create a chat view controller with message kit and input bar accessory view, powered by Firebase, defining chat id, recipient id, and recipient name.
Initialize and present the chat view controller from card and profile views using the chat room id and recipient id; ensure the input bottom bar is visible by delaying presentation.
Learn to start a chat from recent cell by presenting a chat room, creating a recent record when needed, and passing chat room and recipient details to the chat view.
Restart the chat function by fetching full user objects from member IDs, deriving or reusing a chat room id, and creating or updating the recent items before starting the chat.
Define a Swift message class for Firebase storage, with id, chatroomId, senderId, type, date, text, media, and status, and provide dictionary-based init using defined keys to distinguish incoming from outgoing.
Build the MKMessage class to model chat messages stored in firebase, handling text and photo messages, sender data, and display logic for the chatroom.
Develop a Swift photo message class that conforms to the media item protocol, initializes with a path and size, and uses a 240 by 240 placeholder image from assets.
Configure the chat view to support text and image attachments, adding a left power button and a custom input bar with an attachment button that shows an action sheet.
Configure the message collection view by setting delegates, data source, and a refresh controller. Load 20 messages at a time from firebase as MKMessage objects for display.
Implement the input bar accessory delegate to handle text changes and the send button in a chat, enabling typing indicators and message sending between users.
Extend the chat view controller with a message layout delegate to show date labels every third message, reveal delivery status for outgoing messages, and configure avatars with sender initials.
Implement the message display delegate to style chat messages, set text color for incoming vs outgoing, enable detectors for hashtags and phone numbers, and configure bubble color and tail.
Implement outgoing message sending in the chat, handling text and image messages, building a message object, converting to a dictionary, and saving to Firebase.
Learn how to save messages to Firebase for each user, creating per-user copies under chatroom paths with message IDs, enabling independent deletion, updating recent items, and push notifications.
Fix slow transitions by implementing the super view load in the chat view controller, keep the message background white, and override user interface style to light for consistent readability.
Update two recent chat items in a Firebase and Swift chat app by refreshing the last message and date for both users and incrementing unread counts for the recipient.
Write functions to reset the unread message counter in a chat when a user opens a chat room, updating the recent record in Firebase accordingly.
Reset the recent counter at three chat view events, back button, view will appear, and view will disappear, using Firebase to keep the counter zero on exit.
Download the latest 15 messages for a specific chatroom from Firebase, ordered by date descending, then convert them into dictionaries and MK messages for display.
Test the chat flow by printing message counts from Firebase and calling download chats on view appear, then convert dictionaries to MKMessage with an incoming message class.
Load chat messages from a dictionary array, convert each to an MKMessage, insert at index zero, refresh the collection view, and scroll to the bottom to show newest messages.
Set up the message data source and chat view extension to display a top date label for every third message and show the last outgoing status using attributed strings.
Implement a Firestore snapshot listener to load the initial 15 chat messages and listen for new messages, read-status updates, and typing indicators, with automatic listener cleanup when leaving the chat.
Fix chat message ordering by appending new messages instead of inserting at index zero, and support inserting old messages at the start when loading history.
Get old chats in the background by loading older messages from the loaded messages dictionary, using the oldest date to fetch before it, then sort and append them.
Learn to manage paging of old chat messages in a tinder-like dating app by tracking display counts and loading 20 messages at a time in the chat collection view.
Update the insert messages function to display only the first 20 messages from loaded dictionaries and enable pull-to-load-more, ensure max and mean message numbers stay nonnegative, and increment display count.
Implement a load older messages function to insert older messages into the chat, preserving order, with minimum and maximum numbers and safeguards, updating the display count.
Utilize a refresh controller to load older messages, determine when to fetch more, and reload data without losing scroll position, enabling seamless viewing of older chats.
Show a dynamic top label saying 'pull to load more' when the first chat section has extra messages. Adjust font size, color, and top cell height for readability.
Set the chat title to the recipient's name and implement a cleanup routine that removes chat listeners when leaving the chat, including on view disappear, to preserve resources.
Present an action sheet offering camera or photo library, then use a gallery controller to select one image and send it as a chat message.
Learn to implement outgoing picture messages by validating images, creating file names, uploading to storage, and saving the photo-based outgoing message with chat-specific metadata.
Create a photo message from an incoming image, download it from storage, and refresh the chat collection view on the main thread, then plan a loading bar and typing indicator.
Add a loading bar for image uploads in the iOS tinder-like app using Firebase storage. Observe upload progress from the storage task snapshot and update the progress view accordingly.
Implement a real-time typing indicator for a firebase chat in a tinder-like dating app by building a typing listener and observer with a snapshot listener per chat room.
Implement a typing indicator by creating an observer that saves the user's typing status to firebase so others can listen for changes in the chat room.
Run iOS tinder-like chat prototype on iPhone 11 Pro to test typing indicators appearing and disappearing as users type, and update message status from sent to read by other user.
Implement read receipts by updating each message's status to read when opened, and broadcast the change to the chatroom. Prepare to listen for status updates to refresh the UI.
Create a read status listener in the chat, listen for modified messages via a snapshot listener, and update MK messages' status to read, refreshing the collection view.
Enable push notifications for your iOS project by configuring background modes and remote notifications, then create and upload development and production certificates to Apple's developer portal and Firebase Cloud Messaging.
Register users for push notifications, configure Firebase Cloud Messaging, and manage unique device tokens to deliver targeted alerts; update each user’s push ID in Firestore and test on real devices.
Register for remote notifications and test push messages on a real iOS device. Compare results with the simulator and verify delivery using cloud messaging.
Create a Swift push notification service as a singleton, fetch users by id, and send Firebase Cloud Messaging with token, title, and body via URLSession.
Master sending push notifications with messages by building requests, handling completion, and testing delivery to other users using a push notification service.
In the iOS14 Tinder-like Dating application with Firebase & Swift, we are going to build a copy of the Tinder Application.
Unlike any other courses found on Udemy, I always teach full real-world apps, when we finish with the course, you are going to have an app ready to post to AppStore.
What our app will include:
Firebase Authentication
Email address Verification
Firebase Database
Firebase FireStore
Firebase Storage
Firebase Messaging
Integrating 3rd party libraries to SWIFT project
Apple Push notification and certification creation
MessageKit for Chat functionality
Custom UI Design from ready Sketch File
and many more
This iOS14 Tinder-like Dating application with Firebase & Swift 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 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
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 iOS14 Course on Udemy.