Skip to content
GitLab
  • Menu
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • chatty chatty
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 314
    • Issues 314
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 15
    • Merge requests 15
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar

Due to an influx of spam, we have had to impose restrictions on new accounts. Please see this wiki page for instructions on how to get full permissions. Sorry for the inconvenience.

  • Librem5
  • chattychatty
  • Issues
  • #243
Closed
Open
Issue created Dec 16, 2019 by Sam Hewitt@sam.hewittMaintainer

Use caching and lazy-loading to avoid loading animations or an empty UI

To reduce the number of loading animations or empty UI seen–in cases with no or slow network connection or during polling of the various backend chat services–the app should store the most recent items of conversations and lazy-load the rest.

Lazy-Loading

Using lazy-loading should cut down on the initialization time by not trying to load everything at once from every chat service and only load what is relevant to the initial user experience of the messaging app. i.e. the app should load only the most recent portions of conversations and lazy-load later portions, multimedia (since photos, videos are larger), etc. in the background or when the user attempting to view older portions of conversatoins

  1. first load the titles or names of contacts for conversations (as to fill the conversations view)
  2. then, first 20 or so text-only message entries (enough to populate the chat window for every conversation, so when it's entered into it's not empty/loading)
  3. finally, the rest of conversations (in the background, and lazy-load them when someone scrolls past a certain threshold in a chat window)

Caching Conversations

The most recent items of a conversation should also be stored at all times so the UI is not empty when there is no network connection, past items in a conversation should be securely cached and only loaded when a user is scrolling back in a conversation view.

No Network Connection

Only when someone is trying to load remote content (again by scrolling back in a conversation history) or attempting to send a message should we show an error/warning that reminds them they have no network connection.

Edited Dec 20, 2019 by Todd Weaver
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking