Thanks to visit codestin.com
Credit goes to github.com

Skip to content

cloud-git/apps-ios-wikipedia

 
 

Repository files navigation

Wikipedia-iOS

Native rewrite of the Wikipedia reader application for iOS.

Setup

Many tasks associated with project dependencies or building are implemented in the Makefile. Run make or make help to see a list of available tasks (or targets). The TL;DR; one liner to sanity check the project's build status is: make build-sim. Read on for more information about our dependencies and setting up the project.

Dependencies

Run make get-deps to check for and/or install the following dependencies:

  • Xcode 6 or higher on Mac OS X, available on the App Store or developer.apple.com after signing in with your Apple ID.
  • Xcode Command Line Tools: On newer OS X versions, you can run xcode-select --install to install them. If that doesn't work, you can find instructions online for downloading the them via Xcode or the Apple developer portal.
  • Ruby: comes bundled with OS X (this project only requires the system version).

rbenv is nice for managing mulitple Ruby versions.

  • CocoaPods is a Ruby gem that the project uses to download and integrate third-party iOS components.

Bundler is recommended for installing CocoaPods, along with any other RubyGem dependencies declared in the project's Gemfile.

  • NodeJS: The web assets which are bundled in the app are built using a Node toolchain, specifically grunt which is installed using npm.

nodenv is recommended for managing multiple node versions.

  • uncrustify for formatting source code to conform to our Style Guide. You can install it using homebrew by running: brew install uncrustify.

BBUncrustifyPlugin is an easy way to uncrustify files within the Xcode UI.

Building

Once all the dependencies are installed (via make get-deps), you should be able to run make build-sim, which compiles the project for the iOS simulator. If this step doesn't succeed, please file a bug and/or bug us via IRC or email. See the top of this file for our contact information. Please include any console logs and/or Xcode screenshots along with a description of your environment.

Running

Use Xcode to run the Wikipedia scheme and target for the destination of your choosing (i.e. simulator or device). Keep in mind that you'll need to provision iOS hardware with an active developer account in order to build and run the app on it.

Testing

Use the Xcode Product -> Test menu-bar action (or Cmd + U for hotkey fanatics) to run the WikipediaUnitTests target in the Wikipedia scheme. Tests can also be executed from the command line by running make test.

Filing Bugs

Please file bugs at bugzilla.wikimedia.org; use the "iOS App" component.

Submitting patches

Before submitting a patch be sure to use Uncrustify to format your code (See installation instructions above). To make it easy, you can install a pre commit hook by running the script /scripts/setup_git_hooks.sh or by using the BBUncrustifyPlugin as mentioned above.

See mediawiki.org's Gerrit page for general information about contributing to Wikimedia project source code hosted in Gerrit -- use the project name "apps/ios/wikipedia" in place of "mediawiki/core" etc.

You can also follow or fork from our GitHub mirror. Note that pull requests submitted through GitHub must be manually copied over to Gerrit for review and merge (though there is a bot we plan to enable to simplify this).

Please include unit tests with any new code where possible.

Architecture

This generation of the Wikipedia reader app is built around native UI chrome (menus, toolbars, search UI, preferences, caching, etc) to improve startup time, responsiveness and "nativey" look-n-feel versus a previous HTML-based approach using PhoneGap/Apache Cordova.

The majority of app logic and UI will be in the native layer; we expect to use the WebView component as a relatively dumb content display & event trigger layer.

Components of the app will be relatively self-contained, communicating via NSNotificationCenter as a messaging bus to avoid over-close coupling of parts and to make test-driven development more feasible.

Development team

The app is primarily being developed by the Wikimedia Foundation's Mobile Apps team, starting at the end of October 2013. The team operates on an "agile"-style process with 2-week sprints, and checkin scrums on Monday/Wednesday/Friday at 10:15am US Pacific Time.

In addition to a general bug pool in Bugzilla, we'll be tracking ongoing work on the backlog board and active sprint boards on Trello.

Volunteer contributions are welcome!

We can be reached during California office hours (and sometimes outside them) in IRC: #wikimedia-mobile on irc.freenode.net.

About

Github mirror of "apps/ios/wikipedia" - our actual code is hosted with Gerrit (please see https://www.mediawiki.org/wiki/Developer_access for contributing

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Objective-C 96.5%
  • JavaScript 1.8%
  • PHP 0.5%
  • HTML 0.3%
  • CSS 0.3%
  • Shell 0.3%
  • Other 0.3%