Outcome: Basic proof of concept created, posted to https://github.com/dr0ptp4kt/wikiradio.git. Worked with volunteer selva on this.
Reach [[https://wikimediafoundation.org/wiki/User:ABaso_(WMF) | Adam Baso (dr0ptp4kt)]] on [[https://webchat.freenode.net/?channels=wikimedia-mobile | Freenode webchat on the #wikimedia-mobile channel]].
This will be a brand new app, written in Swift at the Wikimedia Hackathon 2015 in Lyon, France. Please see the [[https://www.mediawiki.org/wiki/Wikimedia_Hackathon_2015/Mobile_apps | mobile apps page for the hackathon]] for more details in general.
For the hackathon, the app will be radically simple: a player that plays a continuous, pseudorandom audio stream with existing audio. Currently, the UI is planned to have a very simple, mostly black, aesthetic.
To start, the app will collect little information other than seconds played, linked to a fully non-identifying app install identifier. Down the road, the non-identifying app install identifier could be used for machine learning purposes to help users get audio more tailored to their interests. But that's not for the hackathon so much.
We may be interested in later integrating this into the main Wikipedia app.
Suggested reading:
* [[https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html | Background Execution]]
* [[https://developer.apple.com/library/ios/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionProgrammingGuide.pdf | Audio Session Programming Guide]]
* [[https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/index.html | Swift & Cocoa & Objective-C]]
There are various way to support the open audio formats. One includes a CocoaPods packaged solution as mentioned in a "blocking task", but another may include compiling down code or something like that, as discussed on StackOverflow.
**Details**
* Primary Mentor : @dr0ptp4kt
* Secondary Mentor : @Nirzar
* Other mentors: //(optional, Phabricator username)//
* Skills: native app development in iOS (Swift or Objective, but probably both) or Android (Android Java)
* Estimated project time for a senior contributor: 40-160 hours
* Microtasks: Concept generation, prototype, validation, beta, go/no-go, ship