Android-sovellus

WaveIQ Radio

Internet-radio, joka oppii kuunteluhistoriasta ja perustelee suosituksensa

Julkaistu Google Playssa

WaveIQ Radio yhdistää vakaan taustatoiston, laajan asemahaun ja suosituskerroksen, joka rakentuu käyttäjän oman kuunteluhistorian päälle. Sovellus ei ole pelkkä soitin: taustalla on oma palvelu, joka kerää kuuntelutapahtumat, kuvaa asemien ominaisuuksia ja seuraa striimien toimintakuntoa.

Tuote

Internet-radioita on tarjolla kymmeniä tuhansia, ja niistä oman suosikin löytäminen on hankalampaa kuin itse kuuntelu. WaveIQ Radio keskittyy juuri tähän: löytämiseen, luotettavaan toistoon ja siihen, että sovellus osaa kertoa miksi se ehdottaa tiettyä asemaa.

Kenelle

Radion kuuntelijoille, jotka haluavat muutakin kuin listan valmiiksi valittuja asemia: hakua maittain, kielittäin ja genreittäin sekä ehdotuksia oman kuuntelun perusteella.

Mitä se ratkaisee

Verkkoradiot katkeilevat ja kuolevat. Sovellus seuraa striimien toimintakuntoa, palautuu katkoista hallitusti ja auttaa löytämään uusia asemia sen sijaan että käyttäjä selaisi loputonta listaa.

Miten sitä käytetään

Asemia haetaan nimellä, genrellä, maalla tai kielellä – tai kuvaamalla haluttu tunnelma omin sanoin. Löydetyt asemat tallentuvat omaan listaan, ja suositukset tarkentuvat kuuntelun myötä.

Keskeiset ominaisuudet

Toisto

  • Media3-pohjainen taustatoisto ja mediakontrollit
  • Hallittu palautuminen verkkokatkoista
  • Uniajastin häivytyksellä

Oma asemalista

  • Asemien lisäys, muokkaus ja järjestäminen
  • Suosikit ja pyyhkäisypoisto peruutuksella
  • Asemat tunnistetaan striimin osoitteesta, ei nimestä

Asemien haku

  • Haku nimen, genren, maan ja kielen mukaan
  • Selaus genreittäin, maittain ja kielittäin
  • Esikuuntelu ja striimin toimivuusmerkintä

Älyhaku

  • Vapaa kuvaus halutusta tunnelmasta tai tyylistä
  • Haku käynnistyy vain käyttäjän pyynnöstä
  • Selitteet käyttäjän omalla kielellä

Varmuuskopiot

  • Asemat, logot ja asetukset yhtenä kokonaisuutena
  • Automaattinen varmuuskopio valinnaisena
  • Google Drive -varmuuskopio ja palautus

Yhteysasetukset

  • Varmuuskopiot voi rajata pelkkään Wi-Fi-yhteyteen
  • Mobiilidatan käytön toiston vakauttamiseksi voi sallia erikseen
  • Data Saver ja verkkovierailu estävät mobiilidatan käytön

Suositukset ja asemien analyysi

Suosituskerros on backend-vetoinen ja rakentuu kuunteluhistorian, makuprofiilin ja asemista kerätyn metadatan päälle. Se ei toimi itsenäisesti taustalla eikä muuta soittolistaa käyttäjän puolesta.

Suositukset

Backend muodostaa ehdotukset kuuntelutapahtumista ja makuprofiilista. Ehdotus on aina lista asemia, jotka käyttäjä voi kuunnella tai ohittaa – sovellus ei vaihda asemaa automaattisesti.

Station DNA

Palvelinpuolen kerros kuvaa asemaa kuuntelu- ja metadatahistorian perusteella: kuinka musiikkipainotteinen tai puhevoittoinen asema on ja kuinka vakaa sen striimi on.

Samankaltaiset asemat

Yhdestä asemasta voi hypätä listaan samankaltaisia asemia. Vertailu perustuu Station DNA -tietoon, ja hakua voi tarkentaa eri painotuksilla.

Miksi tätä suositellaan

Suosituskortti voi avata lyhyen selityksen siitä, mihin ehdotus perustuu. Selitys näytetään vain, jos asemasta on siihen riittävästi tietoa, ja se tuotetaan käyttäjän kielellä.

Striimien toimintakunto

Taustatyö tarkistaa striimien tilan säännöllisesti. Tietoa käytetään hakutulosten merkintöihin; asemia ei poisteta listalta automaattisesti.

Suositukset perustuvat kuunteluhistoriaan ja asemien metadataan. Ne ovat ehdotuksia, eivät automaattisia valintoja.

Tekninen toteutus

Kokonaisuus on Android-sovellus, oma rajapintapalvelu ja analytiikkatietokanta. Suosituslogiikka ja asemien analyysi on tarkoituksella palvelinpuolella.

Android-sovellus

Kotlin · Jetpack Compose · Media3 · DataStore

  • Compose-käyttöliittymä ja Media3-toistokerros
  • Taustatoisto omana palvelunaan mediakontrolleineen
  • Asemien ja asetusten pysyvyys DataStoressa
  • Tuki Android 8:sta (API 26) alkaen, käännetty API 36:ta vasten

Toiston vakaus

OkHttp-datasource · uudelleenyhdistys · verkkovalinta

  • Heikon verkon tunnistus liukuvassa aikaikkunassa
  • Porrastettu uudelleenyhdistys ja soittimen uudelleenrakennus
  • Erikseen sallittava mobiilidatan käyttö vain radiotoistolle
  • Muu liikenne pysyy alkuperäisessä verkossa

Backend

FastAPI · Python · SQLAlchemy · OpenAI

  • Rajapinnat haulle, suosituksille ja selityksille
  • Kuuntelutapahtumien ja asemametadatan vastaanotto
  • Tekoälypyyntöjen käyttöseuranta päiväkohtaisesti
  • App Check -tarkistus ennen suojatun endpointin suoritusta

Tietokanta ja taustatyöt

MariaDB · utf8mb4 · ajastettu taustatyö

  • Taulut kuuntelutapahtumille, asemille ja makuprofiilille
  • Station DNA omana tuotantotauluna
  • Striimien toimintakuntoa päivittävä ajastettu työ
  • utf8mb4-merkistö monikielisille asemanimille

Suojaus ja julkaisu

Firebase App Check · Play Integrity · Google Drive API

  • Play Integrity ja App Check ennen palvelinkutsuja
  • Suojatut rajapinnat eivät vastaa sovelluksen ulkopuolelta
  • Google Drive -varmuuskopiointi OAuth-tuotantotilassa
  • Google Play -tuotantojulkaisu ja Play App Signing

Tietoturva ja tietosuoja

Sovellus toimii ilman käyttäjätiliä. Kirjautumista tarvitaan vain Google Drive -varmuuskopioon.

Ei pakollista tiliä

Radion kuuntelu, asemahaku, suosikit ja suositukset toimivat ilman käyttäjätiliä. Google-kirjautuminen liittyy ainoastaan Drive-varmuuskopiointiin.

Sovelluksen eheys

Suojatut rajapinnat vaativat Play Integrity -varmennuksen ja Firebase App Check -tokenin. Ilman niitä palvelin ei suorita pyyntöä, joten rajapintaa ei voi käyttää suoraan sovelluksen ulkopuolelta.

Mitä palvelin tallentaa

Palvelin tallentaa kuuntelutapahtumia, asemien metatietoja, striimien toimintakuntoa ja niistä johdettua makuprofiilia suosituksia varten. Käyttäjä tunnistetaan sovelluskohtaisella laitetunnisteella, ei henkilötiedoilla.

Varmuuskopiot

Varmuuskopio sisältää asemat, logot ja asetukset ja tallentuu käyttäjän omaan Google Driveen. Automaattisen varmuuskopion voi rajata Wi-Fi-yhteyteen.

Verkon käyttö

Mobiilidataa käytetään toiston vakauttamiseen vain, jos käyttäjä on sallinut sen erikseen. Data Saver ja verkkovierailu estävät sen, ja rajoitus koskee vain radiotoistoa.

Julkiset käytännöt

Sovelluksella on julkiset tietosuoja-, tuki-, käyttöehto- ja tietojen poistosivut Play Consolen vaatimusten mukaisesti.

Kuvakaappaukset

Kuvat ovat sovelluksen Google Play -kuvakaappauksia. Klikkaamalla kuva avautuu täysikokoisena.

WaveIQ Radio – oma asemalista, jossa näkyvät asemien logot ja suosikkimerkinnät.
Oma asemalista: suosikit, järjestäminen ja pääsy samankaltaisiin asemiin.
WaveIQ Radio – selausnäkymä, jossa asemia suodatetaan genren ja maan mukaan.
Selaus: asemia voi käydä läpi genren, maan ja kielen mukaan.
WaveIQ Radio – asemahaku, jossa näkyvät hakusuodattimet ja hakutulokset.
Asemahaku: haku käynnistyy vasta käyttäjän pyynnöstä, ei kirjoituksen aikana.

Julkaisutilanne

Sovellus on Google Play -kaupan tuotantoraiteella paketilla com.janstech.radioplayer ja käyttää Play App Signing -allekirjoitusta. Google Drive -varmuuskopioinnin OAuth-konfiguraatio on tuotantotilassa. Kuuntelu, haku ja suositukset toimivat ilman käyttäjätiliä.