Skip to content

Repository files navigation

NoviSign Slideshow App

A simple Android app that fetches and displays media files (images and videos) from the NoviSign API in a looping slideshow. The app includes cross-fade transitions and a display duration for each media item. Built with Kotlin, MVVM architecture, Jetpack Compose, and other modern Android libraries.

Table of Contents

Features

  • Fetches playlists from the NoviSign API and displays each item (image or video) in a looping slideshow.
  • Cross-fade animation between media items.
  • Play/pause control for the slideshow.
  • Customizable display duration for each media item.
  • Progress bar indicating the time remaining for each item.
  • Graceful error handling for network requests.

Architecture

This project follows the MVVM (Model-View-ViewModel) architecture, ensuring a clear separation of concerns and making it easier to test and maintain.

  • Model: Handles data and business logic. In this app, PlaylistRepository fetches data from the NoviSignApi.
  • ViewModel: SlideshowViewModel provides the data to the UI and manages its state. It also controls the play/pause functionality.
  • View: Composables in SlideshowScreen handle the display and user interaction.

Libraries Used

  • Kotlin - Language for all the app’s code.
  • Jetpack Compose - UI toolkit for building declarative UIs.
  • Hilt - Dependency injection library.
  • Coroutines - Asynchronous programming.
  • StateFlow - State management and data flow.
  • Retrofit - HTTP client for making API requests.
  • ExoPlayer - For video playback.
  • MockK - For mocking dependencies in tests.
  • JUnit - Unit testing framework.

Prerequisites

  • Android Studio 4.2 or above
  • Minimum Android SDK level 21
  • Internet connection (for API requests)

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages