nextcloud / nextcloud/ios

Problems when dealing with large amount of files

Open
#845 10 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Swift
Stars
2.5k
Forks
1k
Avg merge
2d 18h
Merged PRs (30d)
13

Description

When using the iOS client, I frequently encounter performance problems:

  1. When the main app is running, It seems that it is always running "PROPFIND" method to fetch Favorite Folders' data structures. However, once the data grows, the "PROPFIND" method can never be done. Background fetch is okay, but sometimes it makes UI stuck. And, when switching app repeatedly (e.g. using the bottom bar of iPhone X to swipe left and right) from background to the front, it usually tries to reindex from the beginning. Such behaviour can mostly cause the app stuck or crash.

  2. When using the File Provider Extension of the client, if I enter a folder with many items, it will always shows "Content Unavailable" error message. As I discover, this usually happens when the PROPFIND result body size is larger than 500KB. According to Apple, the memory usage of the file provider is really limited, and the best practice should be pagination. However, I don't know how to do pagination with webdav method or how hard it is. Is that feasible? If not, can we just reduce the memory usage of enumeration process? Apple's limit seems to be 4MB.

Expected behaviour

Described above

Actual behaviour

Described above

Steps to reproduce

Described above

iOS version

iOS 12.2

App version

2.23.3.4

Server configuration

Operating system:

Ubuntu 64 18.04 LTS

Web server:

Apache2

Database:

MariaDB

PHP version:

7.2

Nextcloud version: (see Nextcloud admin page)

16.0.0 beta 3

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the issue in the iOS client and File Provider Extension with folders containing many items, focusing on PROPFIND results, background reindexing, and memory use. Compare behavior during repeated app switching and large-folder enumeration. Done means large folders no longer cause UI stalls, crashes, or “Content Unavailable” errors.

Written by the indexing model from the issue text.

Assessment

Tech stack
ios, swift
Domain
mobile, performance
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.