/michal-android-test

MySQUAR test project

Primary LanguageJava

mysquar-android-test

Test project

You are expected to implement a small chat application.

1. Add dummy chat view

  • It has a chat message list
  • It has an edit text view
  • It will append the new text to the list upon submit
  • Mock 1

2. Integrate to Firebase

3. Write to Firebase

{
  "chat": {
    $messageId1: "Message 1",
    $messageId2: "Message 2"
  }
}

4. Read from Firebase

5. Add user name to chat

  • Generate a unique user name, "USER_<UNIQUE_4_DIGITS_NUMBER>"
  • Change data structure to support user name
{
  "chat": {
    $messageId1: {
      "username": "USER_1234",
      "message": "Message 1",
    },
    $messageId2: {
      "username": "USER_5678",
      "message": "Message 2",
    }
  }
}
  • Change chat message item type to reflect sender and receiver
  • Mock 2

6. Support offline mode

  • Chat messages after being synced from Firebase should be cached locally with SQlite
  • Should not use Firebase.getDefaultConfig().setPersistenceEnabled(true); as it is not stable
  • Can use any kind of ORM in Android