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.
- Xcode version 11.2.1+
- Swift 5
- iPhone 8 or higher
- iOS 13.0+
- 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
- Install CocoaPods
- Open Terminal and run
pod install
directly inmChat/Messenger
folder. - In order for Firebase to work, create a new project for your application.
- Download
GoogleService-Info.plist
from your newly created Firebase project and replace it with the old one. screenshot - Enable Email/Password authentication method
- Create Realtime Database
- Set Realtime Database rules to:
{
"rules": {
".read": true,
".write": true
}
}
- Enable your Firebase Storage
- For using Mapbox, create a new token
- Create a new key named
MGLMapboxAccessToken
in yourInfo.plist
and insert access token as a value. More Info
Update 1.4:
- Bug fixes
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.