Messenger - Using Swift

This application tries to mimic UI of Facebook's chat application called Messenger. This project uses Core Data to persist data across reboots. This application is mainly to demo following things:

  • For ease of navigation, the application has iOS's native UI element, UITabbar.
  • In the opening screen the user is able to see all the conversations he/she had with his/her friends
  • Conversation which has received the most recent message appears at the top, followed by the next most recent message and so on
  • In the conversation list, user is able to see profile images of the user. For demonstration purpose, profile images are static
  • In the conversation list, user can see the last message in the conversation
  • Relative dates, the user can see when the last message was sent for each of the conversations in the list. The date is formatted to show relative date with respect to current date
    • If the last message was received within the last 7 days, first three letters of the week day is displayed
    • If the last message was received yesterday or today, 'Yesterday' or 'Today' is displayed
  • In the chat window, user sees all the messages received from his friend to the left hand side of the screen
    • The message appears in bubble
    • Profile image view of the message author is displayed. For demo purpose, this image is currently static
  • When the user taps on the text field to type a message, a keyboard appears from bottom.
    • The chat window scrolls up so that the last message of the conversation gets placed right on top of the text field.
  • When the user sends a message, the message appears in the chat list
    • The message is persisted using Core Data
    • The chat window is updated with the message that was sent

Video Walkthrough

Here's a walkthrough of implemented user stories:

Video Walkthrough of FB Messenger