owncloud / ios-app

📱The all-new iOS app for ownCloud
https://owncloud.org/news/new-ios-app-ready-public-app-store/
GNU General Public License v3.0
213 stars 121 forks source link

Uploads #101

Open jesmrec opened 6 years ago

jesmrec commented 6 years ago

Letting users to upload content from their devices is one of the most important scenarios in a syncing client. Let's summarize and discuss a bit about the ways to upload content.

Manual uploads

Users can select those content to be uploaded. Steps (roughly):

Instant uploads

UI in settings view already developed: https://github.com/owncloud/ios-app/pull/33

Once the option is enabled in settings view and fits the user set up (only wifi, pics/videos), the content of the camera is queued.

Sharing

3rd party apps can share content with ownCloud. After selecting the item to be shared, folder picker to select target folder should be displayed. Once the user selects target folder, the content will be queued.

Files app

Upgrades of oC contents by other apps are queued as well. File provider will take care.

Concerns:


After content is queued, through the app (and underlying SDK), the user has to be able to manage the uploads with a view:

Uploads view

To check the status of the uploads, and interact with them.

Status of uploads:

Different ways to show the user all these lists:

The uploads view should also include options to clear all and each one of the lists above.

Failed uploads

Failed uploads deserve a separate management, so the cause of the failure will point to a different use case.

List of posible errors and the action to do when the user retries:

NOTE: Some of them will depend on the server responses.

An option to retry all failed uploads regardless the causing error should be put together with the clearing list options mentioned above.

More topics related can be added and discussed.

mmattel commented 6 years ago

Question:

jesmrec commented 6 years ago

has it been considered that you may have more than one account and you want to upload things to a particular (predefined) and not the current active one?

For such case, i would set two options:

If you have 3 accounts, maybe you will upload content to all of them. If you have several accounts and the predefined one is removed, which one would be the new predefined? the active one .

Other different (and bothering) option is asking user the account to upload to in the moment the items were picked.

on uploading eg pictures / videos, is is possible to (pre) define the target folder. Background, you may want to use a mount point which is not local but external

External storages, you mean. These ones are handled as folders from mobile app point of view. You will select the folder for your external storage and will be uploaded to such external. Did you mean this feature?

michaelstingl commented 6 years ago

ownCloud iOS app won't differentiate local or external server-side storage.

For instant uploads, we already have the following settings:

  • Account to upload: This should present to the user a list of bookmarks you have in the app and select the account you want to be the one in which the instant uploads should be put.
  • Path for instant uploads: Here you can select the folder you want to be the container for the instant uploads.

(see https://github.com/owncloud/ios-app/pull/33)

We also sketched some UI ideas for this:

image

We used Figma.com for this quick sketch. Here you can fork it to propose own ideas: https://www.figma.com/file/Ui4YzD3oQcxJSbzBEr80O9eU/Working-Draft-UI?node-id=26%3A1454

mmattel commented 6 years ago

If you have 3 accounts, maybe you will upload content to all of them. If you have several accounts and the predefined one is removed, which one would be the new predefined? the active one

Then you need for all accounts available a selectable target folder. And a choice if none of the selected are available what to do. Like do nothing, ask ect

External storages, you mean. These ones are handled as folders from mobile app point of view. You will select the folder for your external storage and will be uploaded to such external. Did you mean this feature?

yes, of course I know that all storages are folders and you can´t see from the folder if it is local or external. I just wanted to highlight the need to have the target chosable and the background behind. external mostly has much more space available... you may also have a setting if the target folder is not available to create it or do nothing (see above).

michaelstingl commented 5 years ago

See https://github.com/owncloud/android/issues/2070 for chunked upload and resuming. Also the desktop client already resumes uploads.