== Detailed plan agreed with mentors ==
Done - no changes to the detailed plan at https://phabricator.wikimedia.org/T115101 at the present moment
== Phabricator project created ==
Done - https://phabricator.wikimedia.org/tag/commons-app-android-upload/
== Meetings with mentors started ==
Done - last meeting was at 2am UTC, 20th Nov on Google Hangouts. We discussed:
- Getting used to the codebase for the app (especially the categorization package)
- Communication plan (see below)
- Potential APIs for Phase 1: Wikidata API, Commons API, and searching for existing pictures with those coordinates. Plan to test these APIs to see which one fits our needs best.
- It was suggested that I announce my project on various mailing lists and try to recruit testers
- Emulators and testing
== Bonding period report ==
=== Work done ===
- Set up project board and learned about project and task organization
- Set up and used Google Hangouts
- Installed Intel HAXM and enabled virtualization in BIOS in order to use the x86 emulator for Android (which is VERY much faster than arm - thanks for the tip Niedzielski!!)
- Announced project on [[ https://lists.wikimedia.org/pipermail/wikitech-l/2015-November/084090.html | wikitech-l ]], [[ https://lists.wikimedia.org/pipermail/mobile-l/2015-November/009936.html | mobile-l ]], [[ https://lists.wikimedia.org/pipermail/commons-l/2015-November/007608.html | commons-l ]], and [[ https://lists.wikimedia.org/pipermail/wikivoyage-l/2015-November/000573.html | wikivoyage-l ]] as well as at the [[ https://commons.wikimedia.org/wiki/Commons:Village_pump#Improving_categorization_in_Upload_to_Commons_Android_App | Commons village pump ]], [[ https://en.wikivoyage.org/wiki/Wikivoyage:Travellers'_pub#Improving_categorization_in_Upload_to_Commons_Android_App | Wikivoyage travellers' pub ]], and [[ https://commons.wikimedia.org/wiki/Commons_talk:Mobile_app#Improving_categorization_in_Upload_to_Commons_Android_App | Commons Mobile App discussion ]]
- Started posting in [[ https://groups.google.com/forum/#!forum/commons-app-android | Google discussion group ]] for this app
- (In progress) Familiarize self with categorization package code
- (In progress) Read up on Wikidata API, Commons API, and how to search for existing Commons pictures with certain coordinates in preparation for Week 1's task
- (In progress) Fill [[ https://github.com/nicolas-raoul/apps-android-commons/wiki/Fuzzy-category-search | GitHub wiki ]] with use cases that we can test APIs with for Phase 1
=== Lessons learnt ===
- It is good practice to use fragments for Android app development even if you aren't necessarily creating more than one type of layout at first, as it provides a good foundation for future additions/changes
- A good way to get used to a new codebase is the Android hierarchy viewer in Android Device Monitor (tree view), and using breakpoints for debugging
- It's good to test releases on at least two Android versions: (1) the target version, in our case API 17, and (2) the latest version, currently API 23
- Commit (and release) early and often
- I can collapse (and expand) blocks of code in the IDE - very useful for reading a very long class!
=== Problems faced and solutions found ===
- My mic was breaking up sometimes during the last Google Hangout, which must have been pretty disruptive. Will fix that prior to the next Hangout.
- Attempted to use UML support plugin in IntelliJ IDEA to generate UML diagram of project. Found out that Community Edition does not have that plugin. Applied for free Open Source license for Ultimate Edition, waiting for their decision
=== Changes to the original plan ===
- No changes so far
=== Minimum Viable Product ===
**(Phase 1, release planned for week before midterm evaluation) **
App should display suggestions for categories that are geographically nearby when the user uploads a photo - https://phabricator.wikimedia.org/T119163
=== Communication Plan ===
- IRC (mostly #wikimedia-mobile)
- Weekly Google Hangouts starting Dec 7
- Daily progress reports and tasks on Phabricator
- GitHub wiki and issues - https://github.com/nicolas-raoul/apps-android-commons