Quiblo wiki

Code reference

Packages and classes

13 packages and 111 documented types across the four layers — what each one is for, and what it must not be used for.

Hand-written rather than generated. A generator produces an entry per symbol whether or not there is anything to say about it, and the useful half of a reference is the half it cannot reach: why a class exists, and which of its neighbours it is easy to confuse it with. For the shape these sit in, read the architecture overview first.

Core

Domain types, storage, playback and networking. No UI, enforced by the build.

  • :core:modeldev.quiblo.core.modelThe domain vocabulary. Plain Kotlin, no Android dependency at all.14 types
  • :core:datadev.quiblo.core.dataRepositories — the seam between storage, the network and ViewModels.15 types
  • :core:databasedev.quiblo.core.databaseRoom: entities, DAOs and eleven migrations.12 types
  • :core:datastoredev.quiblo.core.datastorePreferences, and the encrypted credential store.5 types
  • :core:mediadev.quiblo.core.mediaPlayback, behind an interface. The only module that knows ExoPlayer exists.6 types
  • :core:networkdev.quiblo.core.networkThe HTTP client and connectivity checks.2 types

Source

The protocol layer: one implementation per playlist or panel format.

  • :source:apidev.quiblo.source.apiThe protocol contract. Adding a format means implementing these and nothing else.12 types
  • :source:m3udev.quiblo.source.m3uThe M3U/M3U8 parser. Pure JVM, and the best-tested code we have.3 types
  • :source:xtreamdev.quiblo.source.xtreamThe Xtream Codes client, and the four guards that keep an account alive.12 types
  • :source:tmdbdev.quiblo.source.tmdbThe optional film and series information client, and the key it spends.5 types
  • :source:iptvorgdev.quiblo.source.iptvorgThe optional channel-logo reference list.4 types

Feature

ViewModels and the state they expose. Shared by both applications.

  • :feature:*dev.quiblo.feature.*The ViewModels, and the state they expose. Shared by both applications.10 types

Application

Assembly and presentation. The only layer that knows about screens.

  • :app-tvdev.quiblo.tvThe television assembly and all of its UI.11 types