Mobile application for Decentralized ML POC: Spotify Recommendation

Overview

Mobile application for Decentralized ML POC: Spotify Recommendation

This repo contains mobile applications to perform training on Spotify listening history.

The applications (Android / iOS) share code from a Kotlin/Native library under shared.

The Android application currently does not contain code to actually perform learning.

Setup (iOS)

You will need the following:

  • JDK & Gradle (for building shared library)
  • Xcode 13+ (under Rosetta for M1 Macs)
  • CocoaPods: sudo gem install cocoapods
  • cocoapods-generate plugin: sudo gem install cocoapods-generate
  • A modified version of SwiftSyt: Clone https://github.com/datax-io/swiftsyft-parcel branch parcel to directory swiftsyft-parcel right next to this repo root. It is referenced in ios/Podfile.
  1. In shared/src, run symlink.sh to link iosX64Main as iosArm64Main
  2. In shared, perform Gradle sync.
  3. In ios, run pod install
  4. Open ios/App.xcworkspace to run the app

Using the app

  1. Configure Spotify client ID and authorize your account
    1. Log into Spotify developer dashboard: https://developer.spotify.com/dashboard/applications
    2. Create an app. Any title would be fine.
    3. On the app detail page, record the Client ID displayed under the name of the app.
    4. Click "Edit Settings" to open the settings dialog. Under "Redirect URIs", add spotifyrecommendationlab://spotifyauth
    5. Click "Users and Access" and add your own spotify account as a new user.
    6. Inside the app, next to "Spotify" > "Client ID", tap "Change" and paste the Client ID obtained from the developer dashboard.
    7. Tap "Authorize" to test the Spotify authorization.
    8. Tap "Fetch" to retrieve your listening history.
  2. Authorize your Oasis account.
    1. Inside the app, tap "Authorize" under "Parcel".
    2. Follow instructions on the screen to authorize the app to interact with Parcel on your behalf.
  3. Starting training
    1. Inside the app, tap "Train with API Data".
    2. A new screen should show. Training will start automatically with output similar to this:
Data source: API
Participant ID: 1
Data: 4067 tracks
Model: spotify_recommendation
Version: 1.0
connecting to ws://pygrid.dadtax.io:7001
Loading data, batch size = 64
Training...
Uploading diff...
Uploaded document
<<document-id>>
Reporting diff...
Done
You might also like...
A mobile application that allows you to get random information every time you enter the application.
A mobile application that allows you to get random information every time you enter the application.

Knowledge Repository A mobile application that allows you to get random information every time you enter the application. Google Play Store : Screensh

A mobile application to aid coaching and training on League of Legends

Matteo Vettosi's Android Template A simple template for myself to have all my current approaches to Android development at hand when creating a new ap

Android Mobile Application for Movie Reservation System.
Android Mobile Application for Movie Reservation System.

Movie-Reservation-Android-App Android Mobile Application for Movie Reservation System Brief Description of the Project ๐Ÿ‘‡ โ€œBlueSky Cinemaโ€ is an onlin

A Mobile application (Android), which facilitates the search for a medication, a pharmacy using geolocation.

#Pharmacom Pharmacom, est une application mobile natif - compatible avec mobile et tablette. Cette application a comme but principale de servir les ci

Mobile Application Developer Technical Test
Mobile Application Developer Technical Test

kotlin_incident_app Mobile Application Developer Technical Test Screenshots Notes You may have to wait a little bit when you click on a button as they

Mobile translation application built using android studio and java.
Mobile translation application built using android studio and java.

Translate I'm here when you need translation ๐Ÿ‘€ ๐Ÿ”จ Libraries used in the project : implementation 'com.google.mlkit:translate:16.1.2' implementation '

Backend service for mobile/web application for a small cinema playing only movies
Backend service for mobile/web application for a small cinema playing only movies

FFC - Fast & Furious Cinema Backend service for mobile/web application for a small cinema playing only movies from Fast & Furious franchise. Some assu

Cryptac - Mobile application to track your favorite cryptos information. ๐Ÿš€
Cryptac - Mobile application to track your favorite cryptos information. ๐Ÿš€

What is it? ๐Ÿค” Cryptac is a mobile application that allows you to track the main important information about your favorite cryptos. It is currently av

CMPLR-Native - A blogging mobile application built with Kotlin using MVC design pattern and Take some advantage of Jetpack , View & Data Binding
Owner
Morigin Network
Morigin Network
Open Super dApp - Your gateway to the new digital commons. Integrated mobile messenger, Ethereum wallet, and Web 3.0 browser built on open, decentralized, and encrypted protocols.

A fully open source, open standard, decentralized "super app" including a secure, encrypted Matrix compatible messenger based off of the Element Messenger, and an Ethereum crypto wallet and web3 browser based off of Alpha Wallet.

2Gather 6 Jul 25, 2022
SleepNow - Sleep time recommendation application

Project: SleepNow ์Šฌ๋ฆฝ ๋‚˜์šฐ ๊ฐœ์ธ ํ”„๋กœ์ ํŠธ 2020.01 ~ 2020.01 0. Overview ์Šฌ๋ฆฝ๋‚˜์šฐ๋Š” ์ž๋Ÿฌ ๊ฐˆ ์‹œ๊ฐ„์ด๋‚˜ ์ผ์–ด

Jaemin Yoo 1 May 15, 2022
Space recommendation system and augmenting informations with ARCore SDK

Space recommendation system and augmenting informations with ARCore SDK

PNU-Sinbaram 4 Sep 3, 2021
A dummy application used for POC for Future of Furniture application using AR serivces provided by Google.

Furture A dummy application used for POC for Future of Furniture application using AR serivces provided by Google. Demo video.mp4 Splash Home Sofa Cha

Kapil Yadav 8 Nov 28, 2022
The application is a PoC that helps in identifying modern bankers, potentially malicious and remote controlling applications abusing Android AccessibilityService.

Motivation Project aims to help in: identifying keyloggers and events hijacking malicious applications such as Anubis/TeaBot, identifying a "fake bank

Krzysztof Pranczk 33 Dec 9, 2022
An android application where you can manage and install all versions of the spotify app.

An android application where you can manage and install all versions of the spotify app.

xManager (Spotify) 3.7k Dec 30, 2022
Poc-sealed-secrets - An alternative to store sensitive data in the template Secrets Kubernetes an encrypted way

POC Sealed Secrets Overview Proof of concept with the objective of showing an al

Cainรฃ Ferreira da Silva 2 Jan 28, 2022
PoC ๊ฒฐ๊ณผ ์‚ฌ๋‚ด ๋ฐœํ‘œ ์ž๋ฃŒ - Choreography Saga Pattern (with SQS, SNS)

PoC-Choreography-Saga-Pattern-Kotlin PoC ๋ฐ ์‚ฌ๋‚ด ๋ฐœํ‘œ ์ž๋ฃŒ - Choreography Saga Pattern (with SQS, SNS) ์•„์‰ฝ๊ฒŒ๋„ Multi-Module์€ ์•„๋‹ˆ๊ณ .. ๊ทธ๋ƒฅ ๋‚˜๋ˆ ์ ธ ์žˆ๋˜ ํ”„๋กœ์ ํŠธ๋“ค์„ ํ•œ ํด๋”๋กœ ํ•ฉ์น˜๊ธฐ๋งŒ ํ–ˆ

SeokHyun Kim 6 Dec 11, 2022
A blogging mobile application built with Kotlin using MVC design pattern and Take some advantage of Jetpack , View & Data Binding It's a mimic for Tumblr application , But a little prettier than him ๐Ÿ˜‰

A blogging mobile application built with Kotlin using MVC design pattern and Take some advantage of Jetpack , View & Data Binding It's a mimic for Tum

Ahmed Ihab 17 Dec 23, 2022