Talk:Wikimedia Apps/Developing an official app

From Meta, a Wikimedia project coordination wiki

Feedback[edit]

Thanks for setting this up :) Looks good overall, though I've a couple of points:

  1. The 'at least 3 active developers' criteria seems overkill - most of the official apps even have less than that. Apps in general are 1-2 person jobs, I think.
  2. Phase 2's requirements seem to exclude anything built for iOS / WinPhone. Is this intentional?
  3. 'Compilation does not require expensive software.' seems vague. Clarify?

I'm also unsure if we can hand out keys for signing, or credentials - in my experience with the Android Play Store, ACLs aren't detailed enough to let someone control over only one application. And IIRC other places are more primitive with regard to ACLs, not less. So I think an alternative is needed there.

Thanks for setting this up! :) Yuvipanda (talk) 11:25, 6 February 2013 (UTC)[reply]

Thanks for the feedback! (1) Projects that are being built by a community tend to be more sustainable than lone-wolf-coding. The criteria can be removed, but then the risk is that the project becomes abandonware as soon as the developer get busy with life. How about requiring 1 person willing at able to take over development if ever needed? (2) I was not aware of that. Instead we could specify that foundation SDK libraries are OK or something? I lack iOS/WinPhone knowledge to devise a good criteria for those platforms. (3) An exemple is StarUML, which is open source, but was dying in 2007 because compiling it required a not-free version of the Delphi IDE.
The keys thing is indeed a big problem. I would be OK to share my keys even though I have other apps with half-million users, but I imagine some people would be reluctant. If not shared, the risk is that an app stalls in market even though the source code evolves, stucking all non-knowlegeable users. Worse, a developer could switch to the dark side and start distributing malware (sharing keys would not prevent this problem either though). Another solution could be to require switching to Wikimedia's market accounts. Pro: sustainable, secure, recognized. Cons: Stats/ratings restart from zero, existing userbase not upgraded automatically, bragging rights of developer somewhat disappear.
Nicolas1981 (talk) 04:12, 7 February 2013 (UTC)[reply]
I agree with YuviPanda about (1) and I think that Nicolas "1 person willing to be able to take over" sound really reasonable, way more than the 3 active devs.
On (3) I think we can say "Compilation does not required paid software" (to check if some platform have an SDK to be bought.
On the Keys thing... I think that is better doing the change sooner than later. If the current system is not sustainable in the long run, better change it now. We can look for an "aided" update using a dummy update of the current version that "simply" tells the user to install the new version and clicking a big button the user is brought on the right page on the market
Fale (talk) 01:42, 9 March 2013 (UTC)[reply]
I agreed the Main criteria with the Mobile partners & engineering teams at the Wikimedia Foundation. I think they offer a picture clear enough for someone to get started. I moved the whole Process steps to Discussion, only because I think it is better to go piece by piece, and as soon as we get specific requests from someone actualy working on a project willing to become official. For instance, the "how many developers" question is answered by now simply with "Maintainers responsive to feedback / bugs" + "Maintenance plan".--Qgil (talk) 15:15, 10 April 2013 (UTC)[reply]

Trademarks[edit]

Just fyi, I'm meeting tomorrow with Amit Kapoor from the Mobile partnerships team at the WMF to learn about trademarks and such. Will keep you informed.--Qgil (talk) 23:00, 7 February 2013 (UTC)[reply]

One requirement here is not to use Wikimedia trademarks (names and logos) in the UI before the app is approved as official. We could recommend a working logo without trademark issues and a provisional naming schema to be used in your first git stages.--Qgil (talk) 23:38, 19 February 2013 (UTC)[reply]
I think it whould be clarified about "no names". It means that nowhere in the app can be cited the word "Wikipedia" nor "Wikimedia"? Is fine to use them in the package name (but not displayed to the user in any way?
I think an official-working-logo is a great idea :). Maybe something really simple like a black "W" on a white background, or maybe a red "W" on a white background (to mark it as "danger", since it could be unstable)
Fale (talk) 01:46, 9 March 2013 (UTC)[reply]
Ok, let's define more detail here. The main point is no Wikimedia trademarks in the provisional name of the app or your UI under development. About the rest, it is fine to find a balance: mentions in source code only are probably fine, especially when renaming would be a pain, adding work and risk of breaking things. Then again, if this is the case maybe it's a good idea to avoid those trademarks in your code regardless of the official status... About the name of the package, I would also avoid the use of trademarks. I guess it's easy to change? This is not only for legal reasons: we also avoid cookie-licking and the risk of a project called after a Wikimedia project name getting stalled and delaying other initiatives.--Qgil (talk) 15:22, 10 April 2013 (UTC)[reply]
Good idea to raise the question of package names. On Android the package name can not be changed: Changing the package name means creating a separate app, thus losing all of your hard-earned users, who will not receive further updates. Syced (talk) 07:07, 20 June 2016 (UTC)[reply]

One app for one project[edit]

One requirement should be that there should be (at most) one app for one project, reflecting the current situation for websites. There is only one English Wikipedia, German Wikisource, Japanese Wiktionary, etc. If one developer wants to work on a Hindi Wikiquote and there is already one in development and accepted as official then the only options are either join the official project or start one completely unofficial.--Qgil (talk) 23:36, 19 February 2013 (UTC)[reply]

What about if there is a general "Wikipedia" app and I want to create an app for it.wikipedia?
What about if there is an app for it.wikipedia for reading contents and I want to create an app to upload files?
Fale (talk) 01:47, 9 March 2013 (UTC)[reply]
About language variations, wouldn't it be better to add a feature in the official apps to default to the locale of the user's mobile device, and/or let the user define a predefined language? No matter how much work this is, it's definitely less work than building, publshing and promoting a new app.--Qgil (talk) 15:24, 10 April 2013 (UTC)[reply]
I think we should strongly prefer internationalized apps that handle all languages (such as the current Wikipedia app) over language-specific apps. Multilingualism is a big thing for Wikimedia, and I think it would require some special circumstances to accept a language-specific app. --brion (talk) 16:53, 10 April 2013 (UTC)[reply]
I think it is fine to have X number of apps, not a problem. If your idea of how the app experience should be is different enough from what currently exists, start a new one. We shouldn't be placing artificial constraints on those - community acceptance / testing should settle those easily enough, I think. Yuvipanda (talk) 15:31, 10 April 2013 (UTC)[reply]
I disagree with the one-app-per-project constraint. Let's say volunteers from WikiProject Chemistry create a tablet app that allows them to easily create 3D representations of molecules conforming exactly to all of their arcane WikiProject design rules. While a gruelling task on non-touchscreen computers, the tablet app saves them hours... why would anyone want to reject that app under the reason that there is already another app for Wikipedia? The example is a bit arcane, but you can imagine many app that would cater to a larger population: app to fight spam, app to listen to spoken articles, apps to record audio files, etc. Another example: Each of the Wikidata Games could make a great individual app. Syced (talk) 08:07, 20 June 2016 (UTC)[reply]

Process to make an app official[edit]

Phase 1[edit]

Write an application form at the bottom of page Wikimedia Apps using this format:

===''App name''===
;Purpose:
;Target Wikimedia projects:
;Platforms:
;License:
;URL to source code:
;TODO
;Proposer: ''[[User:Name of one contact person]] - email''
;Date: ~~~~~
;People interested in maintaining/adding features:
# ''~~~''
# ''~~~''

Also send this form by email to this mailing list: https://lists.wikimedia.org/mailman/listinfo/mobile-l

I'd rather tell them to start somewhere under mw:Wikimedia Apps since mediawiki.org is where all the community development is done, including the mobile apps.--Qgil (talk) 18:07, 11 April 2013 (UTC)[reply]

Phase 2[edit]

Discussion on whether the app verifies the following points, during 2 weeks:

  • Application form information does not contain errors.
  • 100% OSI-compliant Open Source (in particular, no proprietary libraries).
    • Generally you're going to have proprietary system libraries. As I recall licenses like GPL have explicit exceptions for this... so we can link against the system libc, objective-c runtime, CoreFoundation, and UIKit on iOS etc. What we want to exclude is third-party proprietary libraries that wouldn't be automatically available to any developer for the platform. Also we might consider cases like Google's proprietary libraries on Android, which are available on most Android devices but not on those running variants like the Kindle Fire or Nook tablets. This means things like Google Maps; in the current Wikipedia app we go to some effort to use freely-licensed mapping library and tiles for this reason. --brion (talk) 17:07, 10 April 2013 (UTC)[reply]
  • Can be compiled, and compiled result matches what is being distributed.
  • Compilation does not require expensive software.
    • From discussion above I know this is meant to discourage things like extra proprietary IDEs/compilers. But it's unclear what 'expensive' means; iOS development requires a Mac and Mac OS X; Windows Phone development requires a Windows PC and Windows. The standard compilers and IDEs are available free of charge (not free software) but if you don't already have one you've got to buy a computer and a proprietary operating system. --brion (talk) 17:07, 10 April 2013 (UTC)[reply]
  • Useful to more than 1000 people.
  • Already usable by targeted population, even if some bugs remain for some particular features/platforms/users.
  • Bug tracker functional, at least 10 issues reported by users and solved.
  • At least 3 active developers.
  • No advertisment.
  • No affiliate links.
  • No user tracking.
  • Usable without third-party web services.
  • Usable without third-party add-ons.
  • Usable without third-party applications (eg. Google Maps).
  • TODO

Phase 3[edit]

Community vote during 1 week. Progress to next phase if more than 75% of favorable votes.

Phase 4[edit]

Send to Wikimedia Foundation contact:

  • Keys used to sign the app, if applicable.
  • Credentials needed to release a new version of the app.

Wikimedia Foundation contact acknowledges reception on the app's form on the Wiki.

Meanwhile, the app's name and logo can be debated for up to one week, followed by a one-week vote if no consensus is reached. Afterwards changing name/logo is not impossible but should be avoided.

Phase 5[edit]

Addition to the list of official Wikimedia apps.

Process to remove the official status of an app[edit]

Phase 1[edit]

Write an application form at the bottom of page Wikimedia Apps using this format:

===''Removal: App name''===
;Reason:
;Proposer: ''[[User:Name of one contact person]] - email''
;Date: ~~~~~

Also send this form by email to this mailing list: https://lists.wikimedia.org/mailman/listinfo/mobile-l

Phase 2[edit]

Same as phase 2 above.

Phase 3[edit]

Same as phase 3 above.

Phase 4[edit]

Removal from the list of official Wikimedia apps. Wikimedia logos/names must be removed if used within the app or on official website and other marketing places.

Removing necessity to mimic official apps[edit]

I don't think that we should constrain them to mimic official apps in UX or features. Then what is the point of having separate volunteer apps if we require them to be the same? I don't see them at all on the previous versions of the page, and they seem to be added to the new version. Yuvipanda (talk) 15:43, 10 April 2013 (UTC)[reply]

Edited: "Parity of essential features with the official version" and "UX integrated with the native OS, taking the official version as reference".--Qgil (talk) 16:07, 10 April 2013 (UTC)[reply]
I agree with Yuvipanda, that must be removed altogether, the edited version is not different. The purpose of creating an app is because the features are not available elsewhere, so by definition there will be no "parity" . Syced (talk) 05:03, 23 February 2016 (UTC)[reply]
I do think that asking for parity of essential features makes sense. For example, if someone is aiming to develop the official Wikipedia app for Windows Phone, it is good that they aim to follow the example set by the official Android and iOS apps.--Qgil-WMF (talk) 08:07, 23 February 2016 (UTC)[reply]

"Essential features"[edit]

These would be the minimum features that are supported by the app team, even through rewrites of the app:

  1. Search
  2. Switch to another language of Wikipedia
  3. Citations support

The current app should be considered abandoned - there is no future work being planned on it. There will be a rewrite around the end of the year for it to be more native. These are the features that we guarantee will survive the rewrite. Yuvipanda (talk) 16:06, 10 April 2013 (UTC)[reply]

Is there a Wikipedia app wiki page anywhere? This is where this interesting piece of information would belongs to.--Qgil (talk) 17:49, 11 April 2013 (UTC)[reply]
This is too Wikipedia-oriented. 1) Most wikis don't have citations. 2) A search feature would be pretty minor (borderline useless) in the Commons upload app. 3) Requiring internationalization is a good idea indeed, with localization left to the community. Syced (talk) 05:07, 23 February 2016 (UTC)[reply]