Wikimedia Apps/Commons

Wikimedia Commons mobile app was an official app for Android and iOS. A beta release of the Android version was available on the Google Play store, whereas an iOS version was available in the iTunes App Store. Because it had not been maintained for a while and the Mobile team was unable to allocate resources to it for the foreseeable future, it was removed from Play Store and App Store per this e-mail thread. Volunteers continued development and made the App available on the AppStore

Rationale
Mobile phones have overtaken point and shoots as the most used cameras, yet there is no easy way to upload a picture from a mobile directly (and properly!) into Commons. This app aims to fix that.

Check out the source code for Android and iOS.

We are also working on uploads from the mobile web interface - see Mobile design/Uploads.

Use Case #1: Simple Upload for experienced Commons user
Galadriel is an experienced Commons user who already has uploaded many files to Commons using the UploadWizard. She is taking a nice evening stroll when she comes across a scene that would make a wonderful addition to Commons. She has a phone with a nice camera, so takes a picture with the inbuilt camera app. Instead of going home, remembering to transfer the image, and then uploading it, she wants to be able to upload it then and there - and then move on. She is a good Commons citizen, so wants to make sure that the title is descriptive and appropriate categories are added.

Features
End Goal: Have an app that experienced commons users can use to easily upload Media

Each commons app will at the least have the following features. Additional features will be platform specific.

from: Mobile Strategy: Jan-Mar 2013 by hfung
 * Login
 * Account Creation
 * Tracking
 * Discovery/Browse (to give users a reason to use app)
 * Single upload
 * Multiple upload
 * My contributions
 * Queues
 * Campaigns
 * Completely free and 100% free of any advertisements.
 * GPS tag your photos

Acceptance Criteria

 * 1) Able to upload any image from the Phone to Commons (via Android 'Share')
 * 2) Easily add a title & description
 * 3) Easily add as many categories as needed, with autocomplete to make adding accurate categories faster
 * 4) Shows progress of upload and a notification when upload is complete
 * 5) Taking and uploading a photo to commons should be as fast as uploading a picture to Instagram

Needs Design (in priority order)

 * My Contributions
 * Upload (non intent or gallery based)
 * Account creation
 * Discovery/Browse
 * Upload Later
 * single contribution view along with image usage
 * assets (icons - action bar, status bar etc) for ios and android

Iteration 4
3/11 - 3/22

Android

 * Post Upload Actions
 * add Categories right after initial upload
 * add Categories to previous uploads (Editing should come later)
 * share on social networks Punting due to limitations of how mediawiki works and our privacy policy
 * Multiple File Uploads UI ✅
 * More robust error handling for non-network errors (✅ for now - needs more work with bug 46087 on the server side at a later iter)

iOS

 * Post Upload Actions (pushed back after initial store release)
 * add Categories during initial upload (pushed back after initial store release)
 * add Categories to previous uploads (pushed back after initial store release)
 * share on social networks (pushed back after initial store release)
 * Set up translatewiki with Siebrand ✅

Design

 * Campaign workflows for Android
 * Campaign Workflows for iOS

Server-side

 * Account creation API captcha support (brion)

Iteration 5
3/25 - 4/5

Android

 * Post upload screen ✅
 * Categorization ✅
 * Tentative: Write a mini parser and serializer so that editing is enabled.
 * brion -- check into existing alternates for this -> api can return XML, we can use that for now.
 * UI work for account creation
 * Research: Serverside work requirements for Campaigns ✅
 * Research: FOP issues on Commons, see what we could add ✅
 * Decide to punt, we should just educate users, and not have options to add specific licenses in the app right now
 * Cosmetic fixes to the dashboard ✅

iOS

 * Fix bugs
 * Visual polish
 * Prevent overwrites
 * Release to market

Backlog

 * Automated Testing
 * Write a mini parser so that editing is enabled.
 * iOS - Multiple File Uploads UI (pushed back an iteration from iOS)
 * GeoTagging
 * Video / Audio upload
 * Images / Pages nearby
 * 'Suggest to use on Page'
 * Acceptable use tutorial (adapt File:Licensing_tutorial_en.svg to small screen)
 * License selection
 * Sync Options (use whatever options the user has picked in his preferences in commons)
 * Upload similar
 * Discovery/Browse
 * Notifications (Usage & Edits)
 * Campaign Support
 * Pinch and Zoom
 * Image detail view
 * Fly out animation for icons post tapping take an image icon. This would capture the transition of 1 icon in the center to 2 flanking and 1 center icon
 * Detect duplicate files before upload


 * Slideshow mode
 * About screen with version, license, and link to source
 * Check iOS issue with copy-pasting title adding "title" to text
 * Ability to dismiss keyboard on data input screen (iOS)
 * Warn if title includes a suffix, since we add one
 * Single upload without pushing all queue?
 * More graceful network error messages on iOS
 * Option to remove geodata before upload on a picture-by-picture basis (for pics that got geotagged by the camera but the user doesn't want the location to be public, such as pics from home)

Reports

 * 1) Total Uploads
 * 2) Total Unique Users uploading
 * 3) Details of uploads failing for non-network reasons (Title blacklist, etc).
 * 4) Graphs of different entry points to the app - Camera vs Gallery vs Share Intents (Android)
 * 5) Cancellations rates for the action intents (Camera, Gallery, Share)
 * 6) Failure stats for Login
 * 7) Inactive Logins (people who have logged in but have not uploaded)

Having everything splittable by Platforms (Devices, Operating Systems, App versions) would be nice too.

Schemas

 * 1) meta:Schema:MobileAppLoginAttempts
 * 2) meta:Schema:MobileAppUploadAttempts