alejandro-piguave / TinderCloneSwiftUI

Tinder clone application written using SwiftUI, Firebase, Swift Package Manager and iOS 15 features.
MIT License
89 stars 26 forks source link
chat-application dark-theme firebase firebase-auth firebase-firestore firebase-storage ios light-theme swift swiftui tinder tinder-clone tinder-swiper tinder-ui

TinderCloneSwiftUI

Tinder clone application written using SwiftUI, Firebase, Swift Package Manager and iOS 15 technologies with an MVVM architectural pattern. The app contains localizations for both English and Spanish languages and support for dark mode. Below a more detailed description of the app features.

Login and Create Profile

Only Google Sign in is allowed. Either of these two actions should be performed:

In the Create Profile screen the user will be required to complete the following actions:

A bio up to 500 characters is optional. The remaining amount of characters are shown as the user is typing.

Once the information has been filled in and the user clicks on the "Sign Up with Google button", if the user didn't exist before and the creation of the account was successful, the user will be redirected to the home page, otherwise an error dialog will appear.

Home screen

Here the user will be able to browse through profiles and swipe left or right on them in a Tinder-like fashion. Both swipe and button click to perform these actions are supported. If a user likes a user that has liked them before, a match will be created. Once a profile has been liked or disliked it will not be shown again to that user. From here the user can access to:

Edit Profile screen

In this screen the user can modify the same fields as in the "create profile" screen except for the name and birth date. Their design is almost identical.

Messages screen

Here the user will be able to see his matches and access the corresponding Chat screen to send them messages.

Chat Screen

Here the user will be able to send messages to his matches and they will be updated in real time using Firebase snaphot listeners.

Note: The file "GoogleService-Info.plist" required for the project to work is missing. You will need to connect it to your own Firebase project.