All Projects → wikimedia → Wikipedia Ios

wikimedia / Wikipedia Ios

Licence: mit
📱The official Wikipedia iOS app.

Programming Languages

swift
15916 projects
objective c
16641 projects - #2 most used programming language
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
c
50402 projects - #5 most used programming language
CSS
56736 projects

Labels

Projects that are alternatives of or similar to Wikipedia Ios

Refined Wikipedia
Enforces the mobile web version of Wikipedia and improves its interface
Stars: ✭ 98 (-95.87%)
Mutual labels:  wikipedia
Wikit
Wikipedia summaries from the command line
Stars: ✭ 141 (-94.06%)
Mutual labels:  wikipedia
Wikipedia Mirror
🌐 Guide and tools to run a full offline mirror of Wikipedia.org with three different approaches: Nginx caching proxy, Kimix + ZIM dump, and MediaWiki/XOWA + XML dump
Stars: ✭ 160 (-93.26%)
Mutual labels:  wikipedia
Mediawiker
Mediawiker is a plugin for Sublime Text editor that adds possibility to use it as Wiki Editor on Mediawiki based sites like Wikipedia and many other.
Stars: ✭ 120 (-94.95%)
Mutual labels:  wikipedia
Kiwix Js
Full portable & lightweight ZIM reader in Javascript
Stars: ✭ 130 (-94.53%)
Mutual labels:  wikipedia
Huggle3 Qt Lx
Huggle is an anti-vandalism tool for use on MediaWiki based projects
Stars: ✭ 143 (-93.98%)
Mutual labels:  wikipedia
Wikipedia Tools For Google Spreadsheets
Wikipedia Tools for Google Spreadsheets — Install:
Stars: ✭ 96 (-95.96%)
Mutual labels:  wikipedia
Wiki
Wikipedia Interface for Node.js
Stars: ✭ 180 (-92.42%)
Mutual labels:  wikipedia
Git Wiki Theme
A revolutionary full-featured wiki for github pages and jekyll. You don't need to compile it!
Stars: ✭ 139 (-94.15%)
Mutual labels:  wikipedia
Wikipedia Ipfs
An exploration to host Wikipedia in IPFS
Stars: ✭ 158 (-93.35%)
Mutual labels:  wikipedia
Mwoffliner
Scrape any online Mediawiki motorised wiki (like Wikipedia) to your local filesystem
Stars: ✭ 121 (-94.91%)
Mutual labels:  wikipedia
Thealgorithms
Algorithms repository.
Stars: ✭ 122 (-94.86%)
Mutual labels:  wikipedia
Wp2txt
WP2TXT extracts plain text data from Wikipedia dump file (encoded in XML/compressed with Bzip2) stripping all the MediaWiki markups and other metadata.
Stars: ✭ 145 (-93.89%)
Mutual labels:  wikipedia
Wikipediap2p
WikipediaP2P.org Chrome Extension
Stars: ✭ 105 (-95.58%)
Mutual labels:  wikipedia
Gradlewiki
关于Gradle编译你需要知道的一切
Stars: ✭ 174 (-92.67%)
Mutual labels:  wikipedia
Apps Android Wikipedia
📱The official Wikipedia app for Android!
Stars: ✭ 1,350 (-43.16%)
Mutual labels:  wikipedia
Ultimate Java Resources
Java programming. All in one Java Resource for learning. Updated every day and up to date. All Algorithms and DS along with Development in Java. Beginner to Advanced. Join the Discord link.
Stars: ✭ 143 (-93.98%)
Mutual labels:  wikipedia
Kiwix Desktop
Kiwix for Windows and GNU/Linux desktops
Stars: ✭ 183 (-92.29%)
Mutual labels:  wikipedia
Apple
Kiwix for offline access on iOS and macOS
Stars: ✭ 174 (-92.67%)
Mutual labels:  wikipedia
Infoboxer
Wikipedia information extraction library
Stars: ✭ 147 (-93.81%)
Mutual labels:  wikipedia

Wikipedia iOS

The official Wikipedia iOS app.

Wikipedia MIT license

Note: The latest main branch is set up to build with Xcode 13.1.

Building and Running

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

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 or messaging us on IRC in #wikimedia-mobile on Freenode.

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.
  • ClangFormat - We use this for linting.

Contributing

Covered in the contributing document.

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. Currently, this does not enforce Swift formatting.

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

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.
  • Staging - Pushed to TestFlight as a separate app bundle, and has the ability to toggle different staging environments within the current property of Configuration:
    • An option of appsLabsForPCS will point to the Apps team's staging environment for page content.
    • An option of deploymentLabsForEventLogging will point to the Event Logging staging environment. It is for testing analytics events that the app sends to Event Logging.
    • 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 as well as force the staging environment for event logging. This beta cluster environment is also where developers can test sandbox push notifications triggered across various wikis. This is selected by default.
  • Local Page Content Service and Announcements - used in Debug mode only, 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 argument.
  • Experimental - For one off builds. Can point to whatever is needed for the given experiment. Pushed to TestFlight as a separate app bundle.
  • User Testing - For user testing. Has an alternate configuration so that it can be delivered ad hoc. Pushed to TestFlight as a separate app bundle.
  • 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.

Event Logging

Covered in the event logging document.

Web Development

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.

Contact Us

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].