Wikimedia Apps/Team/iOS

This page contains information and links specific to the iOS team and codebase.

Be a beta tester
Go here to help us as a beta tester!

Download the app

 * Get the Wikipedia iOS app from the App Store.

Documentation

 * iOS FAQ
 * iOS User Feedback Review SOP
 * iOS release process

Contribute to development
We welcome volunteers to contribute to the Wikipedia iOS app codebase.

What can I work on?
If you're looking for easy work, look at the tasks marked with the "Easy" tag. This link will show you all the "Easy" tasks in the iOS backlog.

If you're ready to pick up more difficult work, look at the iOS backlog and pick something from the Bug Backlog column. This link will show you all the tasks in the iOS backlog. If the status of the task is unclear or you need more information, feel free to leave a comment and we'll try to respond as soon as possible.

I found my task. What next?
Now you want to let the team know what you're working on.
 * 1) In Phabricator, assign the task to yourself.
 * 2) Add the tag representing the current release to the task. This link will take you to currently open releases. Tagging your task with the name of the release will add it to the release board.
 * 3) On the release board, move the task to the "Doing" column.
 * 4) When you're done developing, move the task to the "Needs Code Review" column.

I don't want to work on my task any more.
You can let us know by unassigning the task and moving it back to the "Tasks from Product Backlog" column.

How will I know that my contribution was accepted?
If your task gets moved to the "Ready for PM Signoff" column, it means that your contribution will be included in the upcoming release.

Tips
Wiki on how to use Phabricator

Code this way

 * In-repo documentation
 * Objective-C Style Guide


 * iOS Best Practices
 * Third Party Libraries
 * Continuous Integration
 * Localization
 * Wikipedia iOS App Regression Testing Script

Repositories
The Wikipedia iOS app code is hosted on both GitHub and Gerrit.

GitHub
This is the main repository, where iOS developers at the Foundation operate and release public betas via TestFlight. Pull requests via GitHub are the preferred contribution method, since the GitHub repository is also integrated into Travis CI.

Gerrit
We also host the repository on Gerrit, which is synced with the master (on GitHub) after every public release.

New repository process

Repository access control

Recommended Tools
Homebrew is the team's preferred package manager for OS X. It's mentioned throughout the documentation as the way to install various packages.

Alcatraz is the unofficial plugin manager for Xcode. The team uses it to install various extensions to Xcode to facilitate development, mainly BBUncrustify.

Fastlane is a suite of automation tools which the team uses to build, lint, package, test, and deploy the iOS app.

Other tools
chockenberry/Provisioning

Analytics
EventLogging in non-production

EventLogging in general

Piwik events data dictionary

We also use an the Piwik free and open source analytics system.