The official Wikipedia iOS app.
- License: MIT License
- Source repo: https://github.com/wikimedia/wikipedia-ios
- Planning (bugs & features): https://phabricator.wikimedia.org/project/view/782/
- Team page: https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/iOS
Building and Running
scripts/setup will setup your computer to build and run the app. The script assumes you have Xcode installed already. It will install homebrew, Carthage, and ClangFormat. It will also create a pre-commit hook that uses ClangFormat for linting.
scripts/setup, you should be able to open
Wikipedia.xcodeproject and run the app on the iOS Simulator (using the Wikipedia scheme and target). If you encounter any issues, please don't hesitate to let us know via a bug report or messaging us on IRC in #wikimedia-mobile on Freenode.
If you'd rather install the development prerequisites yourself without our script:
- Xcode - The easiest way to get Xcode is from the App Store, but you can also download it from developer.apple.com if you have an AppleID registered with an Apple Developer account.
- Carthage - We check in prebuilt dependencies to simplify the initial build and run experience but you'll still need Carthage installed to allow Xcode to properly copy the frameworks into the built app. After you add, remove, or upgrade a dependency, you should run
scripts/carthage_updateto update the built dependencies.
- ClangFormat - We use this for linting
Covered in the contributing document.
These are general guidelines rather than hard rules.
We use Xcode's default 4 space indentation and our
.clang-format file with the pre-commit hook setup by
scripts/setup. Currently, this does not enforce Swift formatting.
Process and code review norms
Covered in the process document.
The Wikipedia scheme is configured to execute the project's iOS unit tests, which can be run using the
Cmd+U hotkey or the Product->Test menu bar action. Screenshot tests will fail unless you are running on one of the configurations defined by
Covered in the ci document.
Covered in the event logging document.
The article view and several other components of the app rely on web components. Instructions for working on these components is covered in the web development document.
If you have any questions or comments, you can join the #wikimedia-mobile channel on the Freenode IRC server. We'll also gladly accept any bug reports.