Skip to content

chitsuenchan/Flash-Chat-App

Repository files navigation

WhatsApp Copy - FlashChat App

Table of Contents

Introduction

Mobile full stack WhatsApp copy app where users can register, login and message each other in a chatroom. Messages are stored in Google Firebase.

Motivation

This is a personal learning project aimed to teach me the Table View. Table Views are used everywhere from the Mail app to Messages app. It's a crucial part of every iOS app. Thus, I want to get to grips with Table Views, creating custom cells, and making my own cloud-based backend database.

Technology Used

Language Swift
Notable Technology Utilized
  • Storyboard
  • Storing data in the cloud using Firebase Firestore
  • Querying and sorting Firebase database
  • Firebase for user authentication, registration and login
  • Using UITableViews and setting their data sources and delegates
  • Creating custom views using .xib files to modify native design components
  • Embedding View Controllers in a Navigation Controller and understanding navigation stack
  • Creating constants file and use static properties to store Strings and other constants
  • Create animations using loops
  • Using direct Segues for navigation

Build Status

Project is completed.

Features

  • Register new users
  • Login for existing users
  • Chat window - custom cells for different users
  • Chat window - Scrollable and ordered list
  • Chat window - Retrieval of cloud stored messages
  • Chat window - Keyboard pushes up screen
  • Chat window - Send a message
  • Chat window - Logout

Register new users

  • User can register a new account by typing in a unique name and password longer than 6 characters.
  • Registration is created through FireBase.

Login for existing users

  • Existing users can login through the login screen
  • Authentication is done through FireBase.

Chat window - custom cells for different users

  • Logged in user will have a custom .XIB message cell compared to the sender
  • Custom cells will hide and display cell contents based on back-end logic

Chat window - Scrollable and ordered list

  • User can scroll up for previous messages
  • Messages are ordered based on the message created timestamp

Chat window - Retrieval of cloud stored messages

  • When the user open the chatView it will trigger code to fetch the messages stored in the Cloud Firebase FireStore
  • The cloud messages will provide data to the front-end such as sender, receipient, text message, timestamp

Chat window - Keyboard pushes up screen

  • When the user select the textbox to type the on-screen keyboard will appear and push the app upwards
  • This is done using a 3rd party library named IQKeyboardManager

Chat window - Send a message

  • User can type in a message and click the send button. This will send the message to the cloud storage
  • When the message is sent it will instantly refresh the UI with the new message and scroll down automatically

Chat window - Logout

  • User can log out and return to the home screen

Installation

  • Ensure XCode is installed (only available on MacOS)
  • Install the 3rd party pods by executing in terminal "pod install" in the project directory

Execution

  • Open the "Flash Chat iOS13.xcworkspace" file in XCode
  • Once the project is open you can click the play button at the top of the IDE to run the iPhone simulator or use a physical device

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published