A Flutter app to browse content from multiple content providers (e.g. Netflix, Hulu) from a single app.
Created to learn the Flutter framework and best practices in structuring Flutter projects, separating frontend and backend logic, and using the BLoC state management pattern.
NOTE: Link to full demo in 60 fps: Youtube Video.
Search "got" | Search "prison" |
---|---|
Transition using Back Button | Transition using Swipe & Back Button |
---|---|
The Detail Screen shows detailed information about the Movie/Show selected. Note that only the Overview tab of this screen is implemented.
If a card is expanded and does not fit in the current view, then the detail screen will automatically scroll up.
Expanded Does Not Fit --> Auto Scroll | Expanded Fits --> No Auto Scroll |
---|---|
The Detail screen provides links to the media for each platform it's available on. If the streaming service app is installed on the user's phone, it will be opened (deep linking).
App Installed on Device --> App | App not Installed on Device --> Web |
---|---|
Every production company is creating its own streaming platform and making their content exclusive to their platform. As a result, the average American subscribes to 3-4 streaming services (source: Forbes). When you know exactly what you want to watch, then a simple Google search will tell you which services that show or movies is available on.
However, if you don't know what to watch, then you need to browse through Netflix, and then Hulu, and then Disney+, etc., each with its own app and different way of selecting categories and so on. The motivation behind this app is to address this problem by providing a single app you can use to browse through all of the content available to you through the media services that you subscribe to in a single app.
The first milestone in bringing this idea to life is an app which can access and present media from all streaming services, which is where the app is (mostly) at.
The next step would be to build a recommendation system which recommends new media based on what you have watched before, and a view for browsing through all of these recommendations.
Download project dependencies listed in pubspec.yaml
using command:
flutter pub get
You need to update the template lib/globals.dart
with your API keys.
To acquire your own API keys, follow the instructions on each site below:
After you have your API keys from the above sites, follow these instructions for updating the template file:
- To prevent accidentally pushing your API keys to a shared repo, run:
git update-index --skip-worktree lib/globals.dart
This tells git not to track changes made to this file. Note that there are some caveats with this approach for if this template does need to be updated in the remote repo.
- Copy and paste your API keys into
lib/globals.dart
.