SyncChat is an advanced real-time messaging app for iOS, built with Swift and Firebase. It offers an intuitive chat experience with features like image sharing, live status updates, profile management, and much more. This app ensures seamless interaction with instant messaging, read receipts, and cached data for performance.
- User Authentication: Secure login and signup with Firebase Authentication.
- Profile Management: Update profile picture, name, and password anytime.
- Real-Time Messaging: Instantly send text and image messages, or even a blank message to knock. 📨
- Read Receipts & Unread Messages: Track message status with color-coded visuals.
- Conversation Sorting: Latest messages appear at the top, with unread ones in bold.
- Timestamps: Tap on messages to see when they were sent. ⏲️
- Light & Dark Mode: Toggle between light and dark modes with one click. 🌗
- Online Users: See who is currently online and available to chat.
- Search Users: Easily find and start conversations with any user.
- Message Deletion: Delete individual messages from the conversation.
- Temporary Cached Data: Cache stores data temporarily to save storage and improve performance.
- Firestore Integration: Store and sync messages, profiles, and statuses with Firestore.
This demo shows the login process, real-time messaging, and the user-friendly interface.
# Authentication
Login & Signup: Users can create new accounts or log in using their email and password. Firebase Authentication handles user verification, making the process secure and efficient.
Profile Management: Users can update their profile picture, change their name, and reset their password directly within the app.
# Messaging
Real-Time Conversations: Messages are instantly updated across all users.
Text & Image Support: Users can send text messages and images. Even blank messages (or "knocks") can be sent to get someone's attention.
Read Receipts & Unread Messages: Messages are color-coded based on their read status. Once a message is read, its color changes. Unread messages appear bold in the conversation list, making it easy to see what you haven't yet viewed.
Tap for Timestamps: Tapping on any message reveals the timestamp, giving context for when a message was sent or received.
Delete Messages: Users can delete individual messages from the conversation, ensuring privacy and control over their data.
# UI and Appearance
Light and Dark Mode: With a single click, users can switch between light and dark modes for the entire app.
Auto-Sorting Conversations: The latest conversations appear at the top of the list. If a conversation has unread messages, it’s displayed in bold, making it easy to identify.
# User Interaction
Search Users: Find any user in the system by searching. Start conversations with any online or offline user.
Online Users: See which users are online in real-time. This feature is perfect for identifying who’s available for an instant chat.
# Cache Support
The app temporarily caches user data after login, reducing unnecessary data downloads and saving on device storage. Cached data is cleared when the app is closed from the background for better performance.
# Data Storage
Firestore Integration: All user and chat data is stored securely in Firestore. Messages, user profiles, and online statuses are constantly synced with the cloud, ensuring no data is lost.
Follow these steps to get the app running locally:
# Clone the repository
git clone https://github.com/RanaAk/SyncChat.git
# Open the Xcode workspace
open SyncChat.xcworkspace
# Set up Firebase
# 1. Create a Firebase project.
# 2. Enable Firestore and Firebase Authentication.
# 3. Download the GoogleService-Info.plist file and add it to the Xcode project.
# Build and run the app on a simulator or device.
- #SwiftUI: SwiftUI framework to build responsive UIs.
- #Firebase Authentication: Manage user authentication securely.
- #Firestore: Real-time data storage and sync.
- #Firebase Storage: Store and manage chat images.
- #Swift Concurrency (async/await): To manage asynchronous operations smoothly.
- Push Notifications: Real-time notifications for new messages.
- Voice & Video Calls: Enable users to start voice or video conversations.
- File Sharing: Share documents and files along with messages.
- Custom Emojis: React to messages with emojis.
This app can be a valuable reference for developers looking to build similar applications, providing a well-designed UI and a variety of features.
Note: I have not uploaded the entire project to GitHub for security reasons. If you need my project urgently, please email me at mehediakbar9@gmail.com.





