Add credits to app
I was wondering if, instead of just storing the contributors' names in credits.md, it might be a good idea to also make them viewable within the app. I think it might be a good way to get more new contributors involved, if they knew their names would be on the credits screen of a 'live' app.
If we do, how should it be accessed? Possibly just a link from About activity?
To be diligent, in addition to contributors, I think an in-app credit screen should show the licenses and links of the libraries linked to the app. According to app/build.gradle, the libraries include:
compile 'fr.avianey.com.viewpagerindicator:library:2.4.1.1@aar'
compile 'in.yuvi:http.fluent:1.3'
compile 'com.android.volley:volley:1.0.0'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.8.4'
compile 'ch.acra:acra:4.7.0'
compile 'org.mediawiki:api:1.3'
compile 'commons-codec:commons-codec:1.10'
compile "com.android.support:support-v4:${project.supportLibVersion}"
compile "com.android.support:appcompat-v7:${project.supportLibVersion}"
compile "com.android.support:design:${project.supportLibVersion}"
compile 'com.google.code.gson:gson:2.7'
So a task list would be
- Have a link from About activity to https://github.com/commons-app/apps-android-commons/blob/master/CREDITS - this should be easy
- Expand CREDITS to include the licenses of the libraries - technically easy, but it will require a bit of research to do this right
- Embed the content of CREDITS so that the user can see it offline (optional?). It will be quite long so some layout issues may arise. Maybe a foldable list in About activity?
Thanks for implementing the first step. Should I open two new issues for the two remaining points, or reopen this?
Oops, this closed automatically via the PR. Will reopen.
@whym By embedding do you mean hardcoding all the credits in the app rather than opening the web page. And what about including the licenses in the CREDITS. It means adding these license info to the CREDITS file
By embedding do you mean hardcoding all the credits in the app rather than opening the web page.
Yes. It might not have to be hardcoded into Java source, though - adding it as an asset file and reading it dynamically would do the same job.
And what about including the licenses in the CREDITS. It means adding these license info to the CREDITS file
Yes, that was what I thought. What do you think about it? I'm sure there are other approaches.
For storing the credits, two things that come to mind are enums or json. This would be preferable than something like storing it in strings.xml as if, for example, we want to allow contributors to link there own GitHub page in the future from the app, then it will be easy to extend the enums/json.
Personally I'd advocate enums but if we are going to use this file in other contexts e.g. on the web, then storing it as json may be preferable.
Also, what'd be the fate of CREDITS.md? Would we remove it or keep it after this implementation? The reason I ask is that it may be better to have all the credits in one file instead of two to ease updating i.e. just CREDITS.md vs CREDITS.md and an enum/json file.
I would advocate for JSON or XML, as this information has a high likelyhood of being reused in the future to dynamically populate the website and the Google Play metadata. (same opinion for the changelog, by the way)
I added the prominent libraries used in credits.md (because I just realized it's long overdue!), but we could probably make that more specific later on.
Will remove the beginner-friendly label as the next step isn't particularly beginner-friendly.
I think this is usually in the 'About' section of the app. As you say, mentioning contributors, is a good way to attract more.
Chris.