iOS - Real-time messaging app 🎨

Overview

General

mChat is a real-time messaging app written in Swift for iOS devices. Since mChat uses a fast and reliable Firebase Database, it receives data instantly, which makes a messaging process better among its users. Moreover, it uses a Mapbox API that provides different styles of the map, making it an unforgettable experience for users. The app design is inspired by Telegram Messenger.

       

       

Requirements

  • Xcode version 11.2.1+
  • Swift 5
  • iPhone 8 or higher
  • iOS 13.0+

Functionality

  • Real-time chat
  • User online indicator
  • Sending text messages
  • Unlimited length of text messages
  • Sending image messages
  • Sending video messages
  • Sending audio messages
  • Typing indicator
  • Messages status indicator
  • Delete messages
  • Reply to / Forward messages
  • Custom chat design
  • Chat pagination
  • Friend network
  • Locate friends on a map (if they have disabled an anonymous mode)
  • Custom map design
  • Change email / password
  • Change profile image

How to install?

  1. Install CocoaPods
  2. Open Terminal and run pod install directly in mChat/Messenger folder.
  3. In order for Firebase to work, create a new project for your application.
  4. Download GoogleService-Info.plist from your newly created Firebase project and replace it with the old one. screenshot
  5. Enable Email/Password authentication method
  6. Create Realtime Database
  7. Set Realtime Database rules to:
{
  "rules": {
     ".read": true,
     ".write": true     
  }
}
  1. Enable your Firebase Storage
  2. For using Mapbox, create a new token
  3. Create a new key named MGLMapboxAccessToken in your Info.plist and insert access token as a value. More Info

       

Credits

       

License

Copyright 2020 VITALIY PALIY

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.

Comments
  • some file are missing

    some file are missing

    "import Lottie" it gives me an error with no such module Lottie written "import Firebase" it gives me an error with Couldn't build Objective-C module "firebase" #import <FirebaseCore/FirebaseCore.h> this file are missing

    opened by framarini02 18
  • App Crash

    App Crash

    Hi Sir,

    I have cloned this app and made the necessary changes (install pods, addition of Google info plist file, creation of database and storage in firebase, mapbox token). When I run it, the app crahses and shows following error message on Appdelegate: Screenshot 2020-12-05 at 1 36 25 AM

    When I go into Exception backtrace thread, it points out to AuthNetworking.Swift (setupUserinfo) function, line 59: Database.database().reference().child("users").child(uid).observeSingleEvent(of: .value) And also in scene delegate line 30: authNetworking.setupUserInfo(uid) { (isActive) in

    opened by avihsb28 5
  • Problem with accept/reject friend request button

    Problem with accept/reject friend request button

    This is the same issue as #18 , But the solution was never posted.

    From: FriendRequestCell.Swift
    
    private func setupAcceptButton() {
    		
    		
            acceptButton.translatesAutoresizingMaskIntoConstraints = false
            acceptButton.setTitle("ACCEPT", for: .normal)
            acceptButton.titleLabel?.font = UIFont.boldSystemFont(ofSize: 12)
            let gradient = setupGradientLayer()
            gradient.frame = bounds
            acceptButton.layer.insertSublayer(gradient, at: 0)
            acceptButton.tintColor = .white
            acceptButton.layer.cornerRadius = 12
            acceptButton.layer.masksToBounds = true
    		
    
    		debugPrint("*** Marker 10")
    		acceptButton.addTarget(self, action: #selector( addButtonPressed), for: .touchUpInside)
                     debugPrint("*** Marker 11")
    		addSubview(acceptButton)
            let constraints = [
                acceptButton.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -16),
                acceptButton.bottomAnchor.constraint(equalTo: centerYAnchor),
                acceptButton.widthAnchor.constraint(equalToConstant: 75),
                acceptButton.heightAnchor.constraint(equalToConstant: 20)
            ]
    		
            NSLayoutConstraint.activate(constraints)
    		//addButtonPressed()
        }
    
    

    accecpt.addTarget is the issue. Nothing happens when touched. The syntax seems to correct. The order seems to be correct as well. I question the location of it, though. Or is it something simple?

    Marker 10 and 11 do show up without error.

    opened by n9lvc5 3
  • Unexpectedly found nil in getUsersList

    Unexpectedly found nil in getUsersList

    After clicking on "Add Friends" it find's nil in the following function unexpectedly.
    This also happens in the demo app (master branch).

     private func getUsersList() {
            userListNetworking.fetchUsers { usersList in
                let sortedUserList = Array(usersList.values).sorted { (friend1, friend2) -> Bool in
                    return friend1.name < friend2.name.     //Xcode showing the nil here
                }
                self.users = sortedUserList
                self.blankLoadingView.isHidden = true
                self.tableView.reloadData()
            }
        }
    
    opened by LoopingLouieX 1
  • App Halted

    App Halted

    After setup the Firebase, successfully build the project, app will be halted after these pages. How to figure it out? Is that related to the Firebase read/write right?

    ζˆͺ屏2022-03-14 δΈ‹εˆ6 36 54

    ζˆͺ屏2022-03-14 δΈ‹εˆ6 37 26

    opened by Ligmon 12
  • Mapbox

    Mapbox

    building for iOS Simulator, but linking in dylib built for iOS, file '/Users/charliemallia/Downloads/Messenger/Pods/Mapbox-iOS-SDK/dynamic/Mapbox.framework/Mapbox' for architecture arm64

    opened by CharlieMallia 0
Owner
Vitaliy Paliy
Vitaliy Paliy
Anonymous chat app leveraging Google's Firebase, a NoSQL backend and WebSocket for real time data synching

Chaty Chaty is an anonymous chat app that allows millions of users to chat at the same time. Firebase is Google's real time NoSQL Backend as a Service

Terry Wang 369 Nov 26, 2022
Real time chat app written in Swift 5 using Firebase

Quick Chat for iOS Quick Chat for iOS is a real time chat app written in Swift 5 using Firebase. Quick Chat allows to send and receive text messages,

Henry Aslanyan 1.8k Dec 10, 2022
Messenger Clone - Real-time iOS Chat with Firebase Firestore written in Swift

Real time Swift iOS Chat with Firebase - Messenger Clone This is an extremely simple chat app source code of an iOS Swift Chat app. It leverages Messa

Instamobile 615 Dec 27, 2022
Save data to the database, real-time synchronization, user authentication.

Shop List App on development stage... description description description description description ??️ License This project is licensed under the MIT L

Sergey Lukaschuk 0 Nov 2, 2021
Real time chat application in Swift 5 using Firebase

Real time chat application in Swift 5 using Firebase

null 1 May 13, 2022
Create a real time chat application in Swift 5 using Firebase

Messenger Real Time Chat App Project to create a real time chat application in Swift 5 using Firebase. Features Facebook Log In Google Sign In Email/P

null 2 May 29, 2022
A full stack real time messenger clone. Frontend is written in swift, and the backend is written in javascript.

FullStack-Messenger-Project A full stack real time messenger clone. Frontend is written in swift, and the backend is written in javascript. The Fronte

Arkash Vijayakumar 6 Nov 29, 2022
🌟🌟🌟🌟🌟 Falcon Messenger is a Fast and Beautiful cloud-based messaging app. With iOS and IPadOS Support. Available on the App Store.

Open the FalconMessenger.xcworkspace in Xcode. Change the Bundle Identifier to match your domain. Go to Firebase and create new project. Select "Add F

null 397 Dec 31, 2022
Open-Source Messaging App

Acani Chats Open-Source Native iOS Messages App This project and its submodules no longer work and are no longer being maintained. Acani Chats is an i

Acani 2.1k Dec 21, 2022
An internet based messaging app similar to WhatsApp

Flash-Chat Flash Chat is an internet based messaging app similar to WhatsApp Table of Contents Description What I Learned How To Use Author Info Scree

Ferdous 0 Nov 6, 2021
An internet based messaging app similar to WhatsApp

Flash-Chat An internet based messaging app similar to WhatsApp What i learned while working on this project: How to integrate third party libraries in

Aleksandr Morozov 3 Apr 10, 2022
Email-based instant messaging for iOS.

deltachat-ios Email-based instant messaging for iOS. Testing Betas are distributed via Testflight. Just scan this QR code with the camera app of your

Delta Chat 258 Dec 31, 2022
Tinodios: Tinode Messaging Client for iOS

Tinodios: Tinode Messaging Client for iOS iOS client for Tinode in Swift. Status: beta. Usable and mostly stable but bugs may happen. Getting support

Tinode 173 Jan 5, 2023
surespot is a mobile messaging application that secures all messages using end-to-end encryption.

surespot-ios ios surespot client surespot is a mobile messaging application that secures all messages using end-to-end encryption. Contribute surespot

surespot 70 Jul 21, 2022
Secret Messenger - a free and open source Jabber (XMPP) messaging client for Apple

Secret Messenger is a free and open source Jabber (XMPP) messaging client for Apple and Android devices focused on Privacy and Security with full OMEMO encrypted messaging support.

Secret Messenger 4 May 2, 2022
Chat-App - GV Chat App is an iOS app built with Swift

GV Chat App - iOS Explore the docs Β» Report Bug Β· Request Feature About The Proj

Cyrus Dumbwani 0 Jan 25, 2022
iOS-mail β€” ProtonMail iOS client app

iOS-mail Introduction iOS-mail β€” ProtonMail iOS client app The app is intended for all users of the ProtonMail service. Whether they are paid or free,

null 1.2k Jan 3, 2023
A native iOS video chat app based on WebRTC

AppRTC - iOS implementation of the Google WebRTC Demo About This Xcode project is a native wrapper for the Google's WebRTC Demo. It organizes the WebR

ISBX 1.3k Dec 31, 2022
IRCCloud iOS App

The official iOS app for IRCCloud.com Chat on IRC from anywhere, and never miss a message. All your chats and logs are stored in the cloud. Access the

IRCCloud Ltd. 259 Dec 18, 2022