An open API service indexing awesome lists of open source software.

https://github.com/vorkhlikartem/imessage

The app for searching and chatting with people with Firebase auth and storing data
https://github.com/vorkhlikartem/imessage

diffabledatasource firebase messagekit messager swift

Last synced: 2 months ago
JSON representation

The app for searching and chatting with people with Firebase auth and storing data

Awesome Lists containing this project

README

        

# IMessage
This application consists of nine full screens for searching and communicating with people, and the Firebase as a Backend-as-a-service solution for this project. The user can log in the application either through email and password or via Google, create their own profile. After successful authorization, he can search for people, add them as friends, chat with them, send them photos.

## Usage
For a simple test of my app you can use the login and password below in Sign up screen:
Login: ***[email protected]***
Password: ***123456***

## Technology Stack
* UICollectionView Compositional Layout and UICollectionView Diffable DataSource
* AutoLayout programmatically using NSLayoutAnchor and StackViews
* Architecture: MVC
* CocoaPods
* Firebase:
* FirebaseAuth (Email/Google Authentication)
* Firestore (for storing user's info and data about active and waiting chats)
* Storage (to store users' avatars and pictures sent in chats)
* MessageKit + InputBarAccessoryView (for real-time chat with images and text messages)
* SDWebImage 5.0 (for asynchronous image loading and caching)

## Description and overview
Auth and profile setup viewControllers:
At the auth stage, the app can show several types of errors to the user through alert.
All fields must be filled in and the avatar picture uploaded for successful authorization




------
Main viewControllers:
ListenerRegistration is used for observing users and chats and getting actual data from the server.
SearchBar is used for searching people by the input text.
CAGradientLayer is used for custom buttons.


---------
Extra viewControllers and real-time chat: