StreamDex: A Unified Stream Tracker

Overview

StreamDex: A Unified Stream Tracker

Section 1 - Moviation

Online streaming has become a regular part of the digital entertainment space for many people today.
People of all ages, particularly young people, tune in to watch their favorite streamers every day.
From gaming, to cooking, to talk shows, to variety streamers, the library of content is vast and
varied. From this arises a problem for some viewers - how do you keep track of everything? An avid
stream viewer may have many streamers that he or she likes to follow, some of whom may stream from
different platforms. Some platforms provide tools to see all of your favorite streamers on one screen,
but provide little to help a viewer keep them organized. That's where StreamDex comes in. With StreamDex,
a viewer can track as many streamers as he or she likes, organize them into categories, and see which
ones are currently live on a single screen. StreamDex will also be compatible with the two largest
streaming platforms currently on the market, Twitch and Youtube, so no one will have to worry about
switching between tabs anymore!

Section 2 - Minimum Requirements

StreamDex will consist of these main screens:

  1. A screen from which a user can view a list of any favorite streamers that are currently live
  2. A screen from which a user can view all favorite streamers
  3. A screen from which a user can edit their list of favorite streamers

Screen #1 will incorporate some functionality from screen #2 while in landscape orientation, showing the viewer a list of all favorite streamers regardless of live status in a sidebar. In portrait orientation it will default to a list of currently live streamers, and will require user input to open a shelf which will display a list of all favorited streamers, and can edit from there. In either orientation, the user will have to use screen #3 dedicated for the purpose of adding or removing streamers from their list.

The only app data that needs to be stored is the list of favorited streamers, and any necessary organizing
info. This will be stored in on-device storage for now, with potential cloud storage a nice-to-have
expansion option to be implemented in the future. This data will be created using a default template
when the user launches the app for the first time, and will be updated whenever the user edits their list.

This information will persist by loading the information out of device storage on app launch, (meaning,
in the onCreate() method of the initial activity) and stored in memory using a model. In the
activity containing screen #3, this model will be updated with any changes to the streamer list
that the user wishes to make, and when the activity is destroyed, the changes will be saved to device storage.

StreamDex's communication to the outside world will consist of network requests to retrieve current
stream status of the user's favorite streamers, and stream embeds and/or links to any currently live
streams.

Section 3 - Model, View, Controller

3.1 - Models

StreamDex will consist of the following models:

  • Streamer will hold data for individual streamers being tracked by the app
  • Stream will hold data for specific streams being tracked by the app
  • CurrentLiveStreamers will hold a list of Streamer objects that have a status of being currently live
  • FavoriteStreamers will hold a list of Streamer objects which the user has favorited

StreamDex Models

The FavoriteStreamers class contains the addStreamer, removeStreamer, and clearAllStreamers methods. These methods will update the instance of the model in memory, and will also handle storing the favorites data on device storage for data persistence.

3.2 - Views

Screen 1

From this screen, users will be able to view all favorite streamers who are currently live. In portrait orientation, there will be an element on which the user can tap to view all favorite streamers regardless of live status. In landscape orientation, this information will be displayed in a sidebar without need for user interaction.

The user will be able to tap on any live streamer (or favorite streamer, in landscape orientation) to be taken to the streamer's current live stream (or to the streamer's channel, in the case that the user tapped on the favorite streamer in the sidebar in landscape orientation).

Current live streamers screen: Landscape Current live streamers screen: Portrait

Screen 2

From this screen, users will be able to view all favorite streamers regardless of their current live status. They will be able to tap on an element which will take them back to screen #1. In addition, they will be able to tap on an element to be taken to screen #3. If the user taps on any favorite streamer, they will be taken to that streamer's channel.

Favorites screen

Screen 3

From this screen, users will be able to view and edit their list of favorite streamers. They will be able to tap on a remove button on each individual streamer in order to remove them from the list after confirmation, and they will be able to tap on a button which will allow them to input a channel link to add the linked streamer's channel to the list. At any time, the user can tap on a button to be returned to screen #2 (or screen #1 in landscape mode).

Edit favorites screen: Landscape Edit favorites screen: Portrait

3.3 Controllers

StreamDex will consist of the following controller classes:

  • CurrentLiveStreamersController will primarily control screen #1, and will hold an instance of the CurrentLiveStreamers class which will be used to render the list of currently live streamers
  • FavoriteStreamersController will primarily control screens 2 and 3, and will hold an instance of the FavoriteStreamers class which will be used to render and edit the list of favorite streamers

StreamDex Controllers

The FavoriteStreamersController class contains the addStreamer, removeStreamer, and clearStreamers methods. These methods will call the relevant methods in the FavoriteStreamers class, which will handle updating the model in memory as well as storing the persistent data in device storage.

You might also like...
grpc stream fullstack example(spring+kotlin / next.js + typescript)

grpc-stream-fullstack chat application build with grpc named qhat Prerequisites server sync .proto files on src/main/proto/grpc/qhat/ $ ./gradlew sync

M-OV-ies - An Android Application that helps users find where to stream their favorite movies

Stream-ON Video Demo: Description: Final Project for CS50 - 2021: An Android App

Provenance-eventstream-legacy-kotlin - A legacy Kotlin library for reading from the Provenance event stream

provenance-eventstream-legacy-kotlin A legacy Kotlin library for reading from th

Saikou - An anilist only client, which lets you stream & download Anime & Manga

Saikou Saikou is crafted based on simplistic yet out-of-state elegancy. It is an

Dark-souls-overlay - Stream overlay for e.g. a death counter in dark souls
Dark-souls-overlay - Stream overlay for e.g. a death counter in dark souls

(Dark Souls) Text Overlay Stream-overlay to include in Dark-Souls sessions for e

 🛥 Stream Draw - a real-time multiplayer drawing & chat game app built entirely with Jetpack Compose
🛥 Stream Draw - a real-time multiplayer drawing & chat game app built entirely with Jetpack Compose

🛥 Stream Draw is a real-time multiplayer drawing & chat game app built entirely with Jetpack Compose. Draw and guess words with your friends! This pr

HyperUPnP is Android Application that lets you to Stream Media from PC, NAS or any other device running UPnP/DLNA compliant media server to your Android Device.

Hyper UPnP Android UPnP/DLNA client Stream Media from PC, NAS or any other device running UPnP/DLNA compliant media server to your Android Device. Int

📱 WhatsApp clone project demonstrates modern Android development built with Jetpack Compose and Stream Chat SDK for Compose.
📱 WhatsApp clone project demonstrates modern Android development built with Jetpack Compose and Stream Chat SDK for Compose.

This is a WhatsApp clone app built with Jetpack Compose and Stream Chat SDK for Compose. The purpose of this repository is to demonstrate below: Imple

An Android app to stream and download your media stored in Google Drive in an Awesome way !!
An Android app to stream and download your media stored in Google Drive in an Awesome way !!

⚡ Thunder : An Android app to stream and download your media stored in Google Drive in an Awesome way !! (Just Movies for now) 🔘 Getting Started : Le

a Facebook Messenger clone using Stream SDK & Jetpack Compose
a Facebook Messenger clone using Stream SDK & Jetpack Compose

Messenger Clone Built for Android using Stream SDK & Jetpack Compose This project is developed by MathRoda for more projects GitHub . Showcase Video w

AnKunv2 is an Android application built with Jetpack Compose to stream anime on demand.
AnKunv2 is an Android application built with Jetpack Compose to stream anime on demand.

AnKunv2 AnKunv2 is an app a bit similar to YouTube but to stream anime. Updated from AnKun using Jetpack Compose. Tech Stack Kotlin AndroidX UI - Jetp

Loop Habit Tracker, a mobile app for creating and maintaining long-term positive habits

Loop is a mobile app that helps you create and maintain good habits, allowing you to achieve your long-term goals. Detailed graphs and statistics show you how your habits improved over time.

Episodie is a TV show time tracker app with unusual design written in kotlin and clean architecture approach. Get to know how much time you spent watching tv shows.
Episodie is a TV show time tracker app with unusual design written in kotlin and clean architecture approach. Get to know how much time you spent watching tv shows.

Episodie Episodie is a TV show time tracker app with unusual design. Get to know how much time you spent watching tv shows. Track easily overall progr

Open source Crypto Currency Tracker Android App made fully in Kotlin
Open source Crypto Currency Tracker Android App made fully in Kotlin

CoinBit CoinBit is a beautiful CryptoCurrency app, completely open sourced and 100% in kotlin. It supports following features Track prices of over 300

Open source Crypto Currency Tracker Android App made fully in Kotlin
Open source Crypto Currency Tracker Android App made fully in Kotlin

CoinBit CoinBit is a beautiful CryptoCurrency app, completely open sourced and 100% in kotlin. It supports following features Track prices of over 300

Open source Crypto Currency Tracker Android App made fully in Kotlin
Open source Crypto Currency Tracker Android App made fully in Kotlin

CoinBit CoinBit is a beautiful CryptoCurrency app, completely open sourced and 100% in kotlin. It supports following features Track prices of over 300

DNS over HTTPS / DNS over Tor / DNSCrypt client, firewall, and connection tracker for Android.

RethinkDNS + Firewall for Android An OpenSnitch-inspired firewall and network monitor + a pi-hole-inspired DNS over HTTPS client with blocklists. In o

Water tracker app helps you with daily reminder to drink water. This app is just a trial to test and improve my android development skills.
Water tracker app helps you with daily reminder to drink water. This app is just a trial to test and improve my android development skills.

🚀 About Me I am a self-thaught developer learning web and android development. This app is just a trial to test and improve my android development sk

📊 A Minimal Expense Tracker App built to demonstrate the use of modern android architecture component with MVVM Architecture
📊 A Minimal Expense Tracker App built to demonstrate the use of modern android architecture component with MVVM Architecture

Expenso 📊 A Simple Expense Tracker App 📱 built to demonstrate the use of modern android architecture component with MVVM Architecture 🏗 . Made with

Comments
  • Implement Twitch API

    Implement Twitch API

    A simple implementation of the Twitch API that hits the get streams endpoint to get a list of the 20 most popular streamers at the time of app launch.

    opened by johnpcooke94 1
Owner
IUS Computer Science
IUS Computer Science
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Cossack Labs 1.6k Dec 29, 2022
Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.

Themis provides strong, usable cryptography for busy people General purpose cryptographic library for storage and messaging for iOS (Swift, Obj-C), An

Cossack Labs 1.6k Jan 8, 2023
A Unified, Modern and Efficient Bukkit plugin framework

LSPlugin ! WARNING ! This project is still under development DO NOT PUT INTO PRODUCTION ENVIRONMENT 一个专门为了 .DP7 群服务器 Charmless 的定制插件框架。未来Charmless的一切开

DP7 Network Works 0 Dec 24, 2021
A lightweight wrapper around SQLiteOpenHelper which introduces reactive stream semantics to SQL operations.

SQL Brite A lightweight wrapper around SupportSQLiteOpenHelper and ContentResolver which introduces reactive stream semantics to queries. Deprecated T

Square 4.6k Jan 5, 2023
Endoscope lets you to stream live video between android devices over Wi-Fi! 📱📲

Endoscope - RTSP live video streamer for android devices via Wi-Fi. Project is no longer supported. Alternative solution is under development. Stay tu

Przemek 640 Dec 21, 2022
This repository contains RabbitMQ Protobuf starters with its usage samples for spring-rabbit and spring-cloud-starter-stream-rabbit modules

This repository contains RabbitMQ Protobuf starters with its usage samples for spring-rabbit and spring-cloud-starter-stream-rabbit modules

Maksim Kostromin 2 Nov 29, 2021
💙 Android sample Avengers chat application using Stream Chat SDK based on MVVM (ViewModel, Coroutines, Room, Hilt, Repository) architecture.

Avengers Chat AvengersChat is a demo application based on modern Android tech stacks and Stream Chat SDK. Previews Download Go to the Releases to down

Jaewoong Eum 352 Dec 25, 2022
AvengersChat is a demo application based on modern Android tech stacks and Stream Chat SDK.

?? Android sample Avengers chat application using Stream Chat SDK based on MVVM (ViewModel, Coroutines, Room, Hilt, Repository) architecture.

Stream 352 Dec 25, 2022
Build a StateFlow stream using Jetpack Compose

Molecule Build a StateFlow or Flow stream using Jetpack Compose1. fun CoroutineScope.launchCounter(): StateFlow<Int> = launchMolecule { val count by

Cash App 1.3k Dec 29, 2022