Page MenuHomePhabricator

Prototype upload flow to Commons in iOS Wikipedia App
Open, LowPublic

Description

Project

Problem: There is currently no way for iOS users to upload photos to commons using a native app. The WMF is limited in its ability to support the development and maintenance of a separate Commons app in the App store.

Proposed path forward: Volunteer developers & WMF iOS App developers partner to prototype an upload flow for Commons that is available within the Wikipedia iOS App to users who meet certain requirements. If the flow went into production, staff & volunteer developers could help maintain and improve the upload flow as part of the official Wikipedia App. This would not preclude a separate Commons app for iOS, but rather would be a simple way to give some iOS editors easier access to upload to Commons from mobile devices.

Potential impact: If the prototype is successful, we would bring it to the Commons community for feedback and testing. Depending on community members’ thoughts, we could deploy it to production and it will remain in the official Wikipedia app. Adding this flow could allow experienced users a long-term, native method for uploading media to Commons from their iOS devices. Integrating this flow into the Wikipedia app could also make it easier for image uploaders to add their images to Wikipedia articles.

Risks:

  • Because the flow is in the Wikipedia App, users will think they are uploading to Wikipedia, and we won’t increase awareness about Commons as a project.
    • Mitigation: Brand the flow with a “Wikimedia Commons” logo and labels throughout the UI. We could include an introductory screen about what Commons is.
    • Opportunity: exposing a Commons feature in the Wikipedia app could help more editors learn about Commons. If someone does not know about Commons, they are unlikely to search & find and download a separate Commons app.
  • Mobile users will abuse the tool to add selfies, or copyright material
    • Mitigation: The upload tool could be made available only to autoconfirmed users, or a threshold as agreed upon with the Commons community.
    • Mitigation: We will take inspiration from the Android Commons App, or the updated Commons Upload Wizard flow to ensure there are sufficient steps and checks before upload.

User stories

  • As a Wikipedian who primarily uses Mobile, I want to be able to upload a photo from my phone to Commons quickly & easily, so that I can add an image from my phone to an article lacking an image.
  • As a Wikipedian walking around a city, I want to be able to discover which articles are lacking images on a map, so that as I pass by a place of interest, I can take a photo and upload it to Commons, and then add it to the article.
  • A reader of Wikipedia sees that there is a campaign on a certain topic running, I want to be able to follow the link to a native upload flow, so I can easily add my photo to the contest.
  • As Commons admin I would like to have the user right required to use this as community configuration for fast and easy changes if needed.

Tasks

  • [Pre-hackathon] Scoping with iOS Engineers and User:Nylki & User:Misaochan
  • [Pre-hackathon] Document current flows for adding an image through
    • Android Commons App
    • Mobile Web Upload Wizard
  • [Hackathon] Designer or PM - Make wireframes for Native App Flow
  • [Hackathon] Engineers working on prototype
  • [Post-hackathon] Share prototype with Commons community and organizers of media-related WikiProjects, for feedback & make decision on next steps
First Prototype requirements
  • ✅ Entry point from image wizard within article editor
    IMG_0351.png (2×1 px, 921 KB)
  • [To do] Only logged in users with autoconfirmed accounts can upload images (meaning that the account must be at least four days old, and the user must have made at least ten edits
  • ✅ User can select photos from their photos app, or take photos
  • [To do] Upload photo successfully to Commons with the following meta data
    • File name / title
    • ✅ Caption in primary app language
    • ✅ Description in primary app language
    • ✅ License selection
    • [To do] Assign default category: TBD (Uploaded_with_Mobile/iOS (Wikipedia_Mobile_application?)
  • [To finish] Backend for uploading to Commons with metadata
  • [To do] Notify the user that the upload was successful or not
  • ✅ Allow user to easily insert their uploaded photo into the article
  • ✅ Include/remove location
Second prototype & later
  • Front camera detection and screenshot detection = detect if image is selfie or screenshot and show a warning
  • Depicts statements
  • Categories
  • Add guidance messages & links to commons help desk
  • Upload multiple photos at a time
  • Captions and descriptions in multiple languages
Participation

We welcome anyone's participation, and we're especially looking for folks with any of the following experience

  • Frequently upload photos to Commons
  • Swift Language knowledge
  • Advanced knowledge in modern, high-level languages like Python, Kotlin, or JavaScript, for example
  • MediaWiki/php knowledge
  • User experience design

Event Timeline

If there is WMF support / development of an iOS, I think there should be at least as much support / development for the Android app. That is because (probably) a much larger share of users and especially contributors is using Android vs iOS, fairness, and that Android is more open source than entirely closed-source iOS. Issue in the Android app repo is here.

I believe iOS devices default to HEIF file format which can be patent encumbered: T211745

I would really like to have such a functionality. I would not use it for my own uploads but I would like to have it as a Wiki Loves contest organiser. From that perspective there are some very important features:

  • Support for UploadWizard campaigns that people can participate at the contests directly from the app (with the possibility to configure different user right requirements in the campaign)
  • Having a map of objects with filter for Wikidata items missing photos and filters for certain topics (e.g. cultural heritage monuments) and liking certain map views to campaigns

As Commons admin I would also like to have the user right required to use this as community configuration for fast and easy changes if needed.

@Prototyperspective: Please move "WMF should..." talk to forums. It's off-topic for this task. Thanks.

Aklapper: Please move your comment to forums, thanks. Also you misquoted my small relevant good-intentioned friendly ontopic comment.

If there is WMF support / development of an iOS, I think there should be at least as much support / development for the Android app. That is because (probably) a much larger share of users and especially contributors is using Android vs iOS, fairness, and that Android is more open source than entirely closed-source iOS. Issue in the Android app repo is here.

Hey @Prototyperspective, this task doesn't represent a decision to prioritize iOS over Android. We have the idea to prototype an upload flow for iOS at the hackathon because members of iOS team are going to Hackathon, and because we were recently talking with volunteers about their ideas around an iOS Commons app and the lack of any native app upload capability for iOS users. We often pick one app to focus on first when building something new, because building things in a staggered way across the apps allows us to release & learn before investing more in the other app. Would you use this type of feature if it was in the iOS app or Android app?

I believe iOS devices default to HEIF file format which can be patent encumbered: T211745

Hi @Commander_Keane great flag, that will need to be a subtask for the prototype. My understanding is we could use APIs to perform file conversion to JPEG and PNG, or UIKit has some methods we could leverage.

@HNordeenWMF Thanks for explaining. That's very understandable and I was not suggesting that it seems like you'd prioritize iOS over Android or anything of that sort. As I linked this issue at the meta wishlist proposal about an iOS I thought I should at the same time also leave a note about the Android app.

On the question: I probably would not use it for uploading or contributing but, while photos is not the kind of content Commons still has many gaps on, I think many people nowadays don't have a desktop computer anymore so giving them a native app ability to upload things from their smartphones seems very due. I'm more interested in the use of such apps to browse content – either for discovery in a similar way as people use the YouTube app or for specific applications (e.g. currently I'm looking for a way to browse and listen to spoken Wikipedia audios within the app).

HNordeenWMF renamed this task from Native iOS App upload flow to Commons to Prototype Native iOS App upload flow to Commons.Apr 1 2025, 7:05 PM

Thanks @GPSLeo for your feedback and support. I'm combining your thoughts & @Prototyperspective's above into some user stories (a way to notate motivations for features) to add to this task. Please both let me know what you think - if these are accurate or not.

User stories that I think could be served with a iOS native upload flow:

  • As a Wikipedian who primarily uses Mobile, I want to be able to upload a photo from my phone to Commons quickly & easily, so that I can add an image from my phone to an article lacking an image.
  • As a Wikipedian walking around a city, I want to be able to discover which articles are lacking images on a map, so that as I pass by a place of interest, I can take a photo and upload it to Commons, and then add it to the article.
  • As a Wiki Loves contest organizer, I want people to be able to easily upload files from their phones to Commons and have it associated with the campaign, so that I can see increased participation and impact from my campaign.

User stories I see fitting better for a standalone iOS Commons App:

  • As an experienced Commons contributor, I want to increase the discoverability of the videos, images, and audio files on Commons and make them easier to browse, so that a larger audience can view & reuse the content on Commons.
  • As a Commons contributor walking around a city, I want to be able to discover which Wikidata items are lacking images on a map, so that as I pass by a place of interest, I can take a photo and upload it to Commons.

As Commons admin I would also like to have the user right required to use this as community configuration for fast and easy changes if needed.

@GPSLeo The Apps have not yet integrated with community configuration, but I'll add this to the task & it can be revisited if we get to a point where we're moving forward with the prototype.

I would look at the story for Wiki Loves contests from the participant side:

  • A reader of Wikipedia sees that there is a campaign on a certain topic running. They click on a link to participate create an account and upload photos in the app. In the best case there is a map where they can find objects near them. (And then hopefully continue uploading photos or editing Wikipedia after the contest.)
This comment was removed by Nylki.

I believe iOS devices default to HEIF file format which can be patent encumbered: T211745

Hi @Commander_Keane great flag, that will need to be a subtask for the prototype. My understanding is we could use APIs to perform file conversion to JPEG and PNG, or UIKit has some methods we could leverage.

Added a comment in the above mentioned ticket.

FYI, there's a system UIKit component called PHPickerViewController (or SwiftUI-equivalent PhotosPicker) that provides UI to choose photos from your library. It may save you time on that part.

There's also an older UIKit component called UIImagePickerController that allows you to both choose from your photo library and take a picture.

HNordeenWMF renamed this task from Prototype Native iOS App upload flow to Commons to Prototype upload flow to Commons in iOS Wikipedia App.May 1 2025, 12:56 PM

I created a colaborative branch for the hackathon, please open PR's to the hackathon/commons-prototype branch instead of main.

Seddon triaged this task as Low priority.May 6 2025, 5:20 PM
Seddon moved this task from Needs Triage to Product Backlog on the Wikipedia-iOS-App-Backlog board.

One comment on filename, caption and description:

Please do not make filename and caption the same. It is very common to include the date, counters or other identifiers in the filename they do not belong in the caption.

I would just drop the description or make it the same as the caption like the UploadWizard does. Files with descriptions they do not fit into the caption are very unlikely to be uploaded from mobile.

HNordeenWMF updated the task description. (Show Details)

Thanks for the recommendation @GPSLeo , I was following the logic of the Android Commons App, which sets the first language's caption to the filename. Updated the description: we can include a required filename field, required caption field, and an optional description field.

I believe iOS devices default to HEIF file format which can be patent encumbered: T211745

Hi @Commander_Keane great flag, that will need to be a subtask for the prototype. My understanding is we could use APIs to perform file conversion to JPEG and PNG, or UIKit has some methods we could leverage.

Added a comment in the above mentioned ticket.

About jpg and png - better is webp.

It would be good if someone update this page:
https://commons.wikimedia.org/wiki/Commons:Mobile_app#iOS

Hi, I can do that. Could you please let me know what information to be added

Could you please let me know what information to be added

Probably information about this project and prototype? I checked to see if there were any pictures from the showcase at the Wikimedia-Hackathon-2025, but there weren't any. Maybe we can use this?

Hey @Nemoralis & @Dev ! We didn't present this work at the showcase because one of our team members got sick & we didn't have something ready to present. I think a good update for the page would just mention that some progress was made on a prototype for a native Commons upload flow for the iOS Wikipedia App at the 2025 Hackathon. It's possible this work could continue, if prioritized in this year's annual plan.

@Nylki it might be good to update that page with notes about your prototype as well.