Post Content
Learn to build a full stack music streaming app very similar to Spotify using the MVVM Architecture. In this course, @RivaanRanawat uses Flutter for the app’s frontend, FastAPI for the backend, PostgreSQL for the database, Hive for local data storage and Riverpod (Generators) for state management.
Project Source Code – https://github.com/RivaanRanawat/flutter-spotify-clone-tutorial
AppPallete Class GitHub – https://github.com/RivaanRanawat/flutter-spotify-clone-tutorial/blob/master/client/lib/core/theme/app_pallete.dart
FastAPI Documentation – Dependencies with yield – https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-with-yield/
GitHub Assets – https://github.com/RivaanRanawat/flutter-spotify-clone-tutorial/tree/master/client/assets/images
Normalisation Principles – https://learn.microsoft.com/en-us/office/troubleshoot/access/database-normalization-description
Android Manifest XML Audio Wave Code:
“`
configurations.all {
resolutionStrategy {
eachDependency {
if ((requested.group == “org.jetbrains.kotlin”) && (requested.name.startsWith(“kotlin-stdlib”))) {
useVersion(“1.8.0”)
}
}
}
}
“`
Contents
(0:00:00) Introduction & Prerequisites
(0:01:42) Project Installation
(0:03:15) Flutter Installation & Boilerplate Code
(0:04:21) MVVM Architecture + Feature-wise Development
(0:10:25) Signup Page UI, Theming & Form
(0:48:32) Login Page UI
(0:53:29) Virtual environment, FastAPI Setup, Exploring FastAPI, Docs
(1:13:44) Signup API Route, PostgreSQL Setup & SQLAlchemy
(1:54:55) Code Refactoring – Signup API
(2:10:49) Login API Route
(2:21:08) Psycopg2 error!
(2:21:42) Client Side Login & Signup Route Integration
(3:13:23) Auth View Model – Introducing Riverpod Generators, Lint!
(3:53:35) Running on Android Emulator
(3:56:00) Persisting Auth State & Getting User Data – JWT
(4:59:44) Upload Song Page UI, Picking Color, Audio & Image Files
(5:27:00) Testing on Android, Audio Wave UI
(5:41:41) Uploading Song Data – PostgreSQL, Cloudinary
(6:15:24) Song ViewModel – Upload Song
(6:33:12) Home Page Bottom NavBar
(6:43:28) Fetching & Displaying All Songs
(7:14:07) Playing Songs in Flutter (from anywhere in the app)
(7:26:01) Music Slab UI
(7:41:31) Music Slab Functionalities – Play/Pause Music, Display Song Progress
(7:56:55) Music Player UI & Functionalities
(8:40:51) Storing, Fetching & Displaying Recently Played Music – Hive
(9:04:53) Playing Background Music in Flutter
(9:10:03) Favorite Music – Backend, Frontend (Displaying Fav Music)
(10:04:05) Conclusion
Thanks to our Champion and Sponsor supporters:
Drake Milly
Ulises Moralez
Goddard Tan
David MG
Matthew Springman
Claudio
Oscar R.
jedi-or-sith
Nattira Maneerat
Justin Hual
—
Learn to code for free and get a developer job: https://www.freecodecamp.org
Read hundreds of articles on programming: https://freecodecamp.org/news Read More freeCodeCamp.org
#programming #freecodecamp #learn #learncode #learncoding