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:model
dev.quiblo.core.modelThe domain vocabulary. Plain Kotlin, no Android dependency at all.14 types - :core:data
dev.quiblo.core.dataRepositories — the seam between storage, the network and ViewModels.15 types - :core:database
dev.quiblo.core.databaseRoom: entities, DAOs and eleven migrations.12 types - :core:datastore
dev.quiblo.core.datastorePreferences, and the encrypted credential store.5 types - :core:media
dev.quiblo.core.mediaPlayback, behind an interface. The only module that knows ExoPlayer exists.6 types - :core:network
dev.quiblo.core.networkThe HTTP client and connectivity checks.2 types
Source
The protocol layer: one implementation per playlist or panel format.
- :source:api
dev.quiblo.source.apiThe protocol contract. Adding a format means implementing these and nothing else.12 types - :source:m3u
dev.quiblo.source.m3uThe M3U/M3U8 parser. Pure JVM, and the best-tested code we have.3 types - :source:xtream
dev.quiblo.source.xtreamThe Xtream Codes client, and the four guards that keep an account alive.12 types - :source:tmdb
dev.quiblo.source.tmdbThe optional film and series information client, and the key it spends.5 types - :source:iptvorg
dev.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-tv
dev.quiblo.tvThe television assembly and all of its UI.11 types