wikipedia-ios

From public sources

Wikipedia iOS is the official open-source iPhone and iPad app for reading and browsing Wikipedia, a mobile apps category product under the MIT license.

ApplicationCategory: Mobile Apps · Reading & newsOpen sourcedata checked Oct 15, 2026

Overview

Wikipedia iOS is the official Wikipedia app for Apple devices, built by the Wikimedia Foundation. It gives readers a native way to search, read and browse articles on iPhone and iPad instead of relying on a mobile web browser. The project is written mainly in Swift and Objective-C and is released under the MIT license, so the source code is publicly available for study and contribution. The repository contains everything needed to build and run the app on the iOS Simulator. A setup script installs the required tools, including SwiftLint and ClangFormat, and the project opens in Xcode 16 or later. It includes unit tests, multiple build schemes for production, staging and local development servers, and the web components that power the article view. The app is aimed at Wikipedia readers who use iOS, and at developers who want to contribute to one of the largest open-source mobile projects. Contributors follow published coding guidelines and documented process norms.
  • ios
  • objective-c
  • swift
  • wikipedia

Installation

Commands are shown, never run by the marketplace. Check them against the official documentation.

Compatibility

Unknown means no evidence was found — not that the product is incompatible.
PlatformStatusArchitectureEvidenceConfidence
AndroidUnknown———
iOSCompatible—Declared on the card—

Releases

checked Oct 29, 2026
v2026.10.27LatestOct 28, 2026Official source ↗

Files in 2026.10.27

This release has no attached files.

Release history

Quality profile

algorithm quality-v1.0 · assessed Oct 15, 2026
Quality Score87
Risk Score0
Confidence 1.00
Quality Score and Risk Score are different measures. A high score does not guarantee safety.

Score components

Maintenance · 2020
last activity 0 days ago
Documentation · 1515
README 8550 chars, description present
Ready to use · 156
install instructions: no; releases: yes
Metadata · 1010
4/4 of description, homepage, license, topics
Releases · 1010
10 release(s), latest 15 days ago
Category confidence · 1010
classifier confidence 1
Adoption · 109
3458 stars (log-dampened, 10k = max)
License clarity · 55
SPDX MIT
Community · 53
issues disabled/unknown, 931 forks

License

MIT
Known licensefrom the repository host

This is the catalog policy status, not legal advice.

Sources

github.com/wikimedia/wikipedia-iosPrimary★ 3,458 starslast activity Oct 15, 2026Primary repository · Confidence 1.00

Reviews

Sign in to write a review

No reviews yet.

Alternatives

README

From wikimedia/wikipedia-ios · license MIT · fetched Oct 29, 2026

Wikipedia iOS

The official Wikipedia iOS app.

[Wikipedia] [MIT license]

Building and Running

Note: Your Xcode version must be at least 16.0. In the directory, run ./scripts/setup. Note: going to scripts directory and running setup will not work due to relative paths.

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, SwiftLint, and ClangFormat. It will also create a pre-commit hook that uses ClangFormat for linting Objective-C code.

After running scripts/setup, you should be able to open Wikipedia.xcodeproj 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.

Required Dependencies

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 Apple ID registered with an Apple Developer account.
  • SwiftLint - We use this for linting Swift code.
  • ClangFormat - We use this for linting Objective-C code.

Contributing

Covered in our contributing documentation on MediaWiki.

Development Guidelines

These are general guidelines rather than hard rules.

Coding Guidelines

Formatting

We use Xcode's default 4 space indentation and our .clang-format file with the pre-commit hook setup by scripts/setup. Where possible, our Swift code is automatically formatted by SwiftLint based on the rules defined in .swiftlint-autocorrect.yml.

Process and Code Review Norms

Covered in the process document.

Logging

When reading logs, note that the log levels are shortened to emoji.

  • 🗣️ Verbose
  • 💬 Debug
  • ℹ️ Info
  • ⚠️ Warning
  • 🚨 Error

The app only writes Warning and Error messages to the console for both Debug and Release mode. If you need to log all messages temporarily during troubleshooting, update this level to DDLogLevelAll.

Testing

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. In order for the tests to pass, the test device's language and region must be set to en-US in Settings → General → Language & Region. There is a ticket filed to update the tests to pass regardless of language and region.

Schemes and Targets

  • Wikipedia - Points to production servers.

  • Alpha - Points to various staging server environments. You can adjust these environments by changing the current property of Configuration:

    • An option of appsLabsForPCS will point to the Apps team's staging environment for page content.
    • An option of betaCluster will point to the MediaWiki beta cluster environment for most API calls. This is meant to be a more blanket environment setting, so if this value exists it will also force the beta cluster environment for page content on the article view. This beta cluster environment is also where developers can test sandbox push notifications triggered across various wikis. This is selected by default.

    The Alpha scheme also has our feature flags set to true. It displays features that are still in development. It is pushed to TestFlight as a separate app.

  • Experimental - For one-off builds, to demonstrate early development or prototype features. This points to production servers by default, but can be adjusted to whatever server environment is needed via temporary adjustments in Configuration. We also sometimes use it for design review, before features go through PR review. It is pushed to TestFlight as a separate app.

  • Local Page Content Service and Announcements - used by engineers in Debug-mode only. This has the ability to toggle different local environments within the current property of Configuration:

    • An option of localPCS will point to a locally running mobileapps repository for page content. This is selected by default.
    • An option of localAnnouncements will point to a locally running wikifeeds repository for the announcements endpoint. This is selected by default.
    • All other endpoints will point to production.
  • RTL - Launches the app in an RTL locale using the -AppleLocale launch argument. This is used by engineers in Debug-mode only.

  • Performance Testing - This is a duplicate scheme of Wikipedia, but uses the Release configuration in its Run step instead of Debug. We use this scheme when we manually run performance tests as a part of our pre-release checklist.

  • WMF - Bundles up the app logic shared between the main app and the extensions (widgets, notifications).

  • Update Localizations - Covered in the localization document.

  • Update Languages - For adding new Wikipedia languages or updating language configurations. Covered in the languages document.

  • {{name}}Widget, {{name}}Notification, {{name}}Stickers - Extensions for widgets, notifications, and stickers.

Continuous Integration

Covered in the CI document.

Web Development

The article view and several other components of the app rely on web components. Instructions for working on these components are covered in the web development document.

Contact Us

If you have any questions or comments, you can email us at ios-support[at]wikimedia dot org. We'll also gladly accept any bug reports.

Open the repository ↗