Page MenuHomePhabricator

Generic version of Wikipedia mobile apps that other MediaWikis could reuse
Open, Needs TriagePublic

Description

The Wikipedia apps for Android and iOS offer features that are (needless to say) specific to Wikipedia sites. However, the actions themselves are pretty generic for a MediaWiki site (read content, save pages, etc). In the backend, the APIs used are basically equivalent.

Imagine that those apps would have a generic codebase, and that the Wikipedia specific elements would be added in a configuration file. Imagine that owners of other wikis could just fork that code, edit the configuration file to point to their wikis, and package their own Android and iOS apps.

No maintenance promises, no support promises, just a new release for each MediaWiki release every six months.

The benefit would be more users of those open source apps, leading to more potential feedback and contributions.

Event Timeline

QuimGil created this task.Jul 27 2015, 4:02 PM
QuimGil raised the priority of this task from to Needs Triage.
QuimGil updated the task description. (Show Details)
QuimGil added a project: Mobile-Apps.
QuimGil added a subscriber: QuimGil.
Restricted Application added a subscriber: Aklapper. · View Herald TranscriptJul 27 2015, 4:02 PM
Dbrant added a subscriber: Dbrant.Aug 14 2015, 1:36 PM
Restricted Application added a subscriber: StudiesWorld. · View Herald TranscriptDec 22 2015, 1:47 PM
Mholloway added a subscriber: Mholloway.

@QuimGil To avoid confusion when trying to bring something to the attention of the Android or iOS teams, we're planning on archiving the Mobile-Apps board. Is there another home for this task?

The request is both for Android and iOS, so what about adding the tags of both?

This came up recently in a thread by @Florian. FWIW, there is _some_ support for generic installs in the Wikipedia Android app now. We have to do a number of hacks to account for the lack of structure on many Wikipedia pages that will likely need tweaking for a third-party wiki and that's something that's been tough to find a practical alternative to :[ The requirements beyond MediaWiki are the MobileFrontend extension, the Mobile Content Service extension, and RESTBase (depending on what extra features you want)... There might be a few others but those are the ones I'm aware of :] We don't have great docs or experience with third-parties yet as we currently only use it for local Vagrant instances. If you end up forking the app, please update the docs with your experiences!

Thanks @Niedzielski for pointing me to this task. I really like how @QuimGil summarized what would be a great oppotunity for the apps! :) In fact, I already have an App for my own wiki and summarized what I needed to do here:
https://blog.go2tech.de/2016/02/how-i-customized-the-wikipedia-app-to-match-the-needs-of-droidwiki-de/
(it's quite old and there were many many changes to the code base, so there're additional and other stepts required now, to get the master working for another wiki).

In fact, let's look at the requirements of the app pointed out by @Niedzielski:

We have to do a number of hacks to account for the lack of structure on many Wikipedia pages that will likely need tweaking for a third-party wiki

Instead of doing this (e.g. the new main page is mostly useless for other third party wikis as the way how the Wikipedia designs the main page is quite unique). So probably a better way of handling this problem would be to have a generic extension or whatever, instead of "hacks" to parse a user-defined content which may (or may not) contain structured data. This should not be interpreted as "general criticism", but these hacks to get content better displayed sounds like an inacceptable burden for me. It's mostyl fragile and probably does not work in the future that good anymore. That's at least what I remember from mobile web :P If you pair this with the fact, that the app still isn't able to show the contents, which is already there (talk pages, categories of pages and so on) this sounds pretty bad (at least for me and not only from the point of view of a third party wiki maintainer, but also as a Wikipedian).

that's been tough to find a practical alternative to

In my opinion, the app shouldn't require these hacks in the first place. I would imagine something like the Wikibase/Wikidata page description at the top of a page. It's not required to have these extension for a wiki/page, however, if there're there, they will be used. SUch fallbacks should be implemented for any other hack for Wikipedia, too. If the main page, e.g., does not look like the structure expected for the new main view of the app, it shouldn't be visible, it should simply show the main page as a normal content page.

MobileFrontend extension

As this is an extension which is very easy to install and (for the basic functioning) does not require some other things, this is totally ok from my point of view :)

the Mobile Content Service extension

If you mean something like this: https://www.mediawiki.org/wiki/Wikimedia_Apps/Team/RESTBase_services_for_apps please see RESTBase :P

RESTBase (depending on what extra features you want)

RESTBase is mostly an overkill for most third-party services. MediaWiki already has an API, so the question is: Why are there services implemented into RESTBase directly and not in MediaWiki/A real extension in the firts place? Setting up and maintaining RESTBase just to get the app running sounds not like something I would like to communicate to third parties :P

So, I like the idea from @QuimGil (and this is probably something which would take some time and work to reach from the current status quo): The app(s) should be compatible to a plain MediaWiki installation (with as less extension requirements as possible). Any addition could be in a separate repository, where special Wikipedia things are stored in. The Wikipedia app would be a combination of both, but the main app codebase is working with vanilla MediaWiki and everyone could fork the code and build their own app. This would, in fact, the same as most other features are implemented in MediaWiki. MediaWiki itself is generic (and most of the extensions, too). Anything which is Wikimedia specific (like messages) is maintained in a separate extension (e.g. WikimediaMessages).

bearND added a subscriber: bearND.Feb 24 2017, 8:46 PM

Added a task to make some progress for this for this year's Hackathon ^. BTW, another request for this is in the old task T86736.

Jona added a subscriber: Jona.Nov 9 2017, 9:52 AM