Cast Play is a podcast management app built with Flutter.
Its features include:
- Searching for podcasts.
- Viewing podcast details.
- Playing podcasts episodes(audio & video).
- Subscribing to podcasts and getting notifications when there are new episodes.
- Downloading podcast episodes and playing them offline.
- WIP
- WIP
This app uses a combination of the architecture guidelines in a guide to app architecture and a feature-first project approach to structuring the project.
Each feature should normally have at least two layers:
- The UI layer
- The data layer
An optional layer called the domain layer can sit between the UI layer and the data layer to simplify and reuse the interactions between them.
The UI layer is responsible for displaying application data on the screen. It consists of:
- The view layer (screens and widgets)
- The state holder layer: The state holder processes ui events and exposes immutable state to the view. This app uses Bloc for state management
The data layer drives the features in the app. It is responsible for handling data operations and exposing data to the layers above it. It consists of:
- The repository layer
- The datasource layer
- The model layer
- This app uses Injectable to manage its dependencies
- WIP
- WIP