If you want to take a look on all screens of the App, they are here.
About this Project
The idea of the App is:
"Share knowledge in the form of podcasts, providing a simple way to learn".
PS: Podcasts was just the context choosed by me for this project, but all the code inside this app can be reused for any app that has audio-streaming as domain, so you can reuse everything here in your next music-player, podcast-library or anything inside this context!
This project is part of my personal portfolio, so, I'll be happy if you could provide me any feedback about the project, code, structure or anything that you can report that could make me a better developer!
Connect with me at LinkedIn.
Also, you can use this Project as you wish, be for study, be for make improvements or earn money with it!
Some Observations about this App
1 - There's no functionality of Login/Register, the buttons and the forms in the Login Screen are only for UI matters.
2 - The only option that works at Settings screen it's toggle the Dark/Light theme, all the others are just for UI matters too.
If you want to test the App in the Production mode, the installers are listed below:
iOS .ipa installer: Soon!
Choose your interests (all, technology, philosfy, science, business, pop-culture or history - it will be used to make requests in order to have a personalized app with what the user want to hear about)
Get informations about a specific Author, with his New Releases/Featured Podcats and Related Authors
Get Informations about a specific Podcast, with its description and Author
Listen and download a single podcasts to listen offline (no need to create a playlist)
- Create, Edit and Remove your Playlists
- Download Playlists to listen when the user goes offline
- Undownload Playlists
Player to listen the selected podcasts and also be able to:
- Shuffle Playlist
- Repeat Playist
- Repeat a single Podcast
- Donwload the current podcast
- Add the current Podcast to a Playlist
- Access the queue of next podcasts that will be played
- Remove podcasts from the queue
- Play/Pause the current Podcast
- Next/Previous podcast on the Playlsit
- Access the bottom player out of the Player screen in order to keep tracking the current podcast
- Get the Author and the Title of the current podcast
- Play/Pause/Forward the current podcast
- Track the timer of the current podcast
- A Dashboard with:
- Trending Authors
- Hottest Podcasts
- New Podcasts Released
- A Dashboard with:
Search for Authors by name
Get information about a certain category, showing it's featured and trending podcats, and the authors that talk about this category
Create Playlists, add podcasts and download it to listen offline
Access Your Podcasts (Downloaded + Podcasts saved on your Playlists) in the form of playlist
Access your Podcasts downloaded in the form of playlist
Access recently played podcasts in the form of playlist
Change your interests
- Choose between the Dark and Light theme
To run this project in the development mode, you'll need to have a basic environment to run a React-Native App, that can be found here.
Also, you'll need to the server running locally on your machine with the mock data. You can find the server and all the instructions to start the server here.
Cloning the Repository
$ git clone https://github.com/steniowagner/mindCast $ cd mindCast
$ npm install
Connecting the App with the Server
1 - Follow the instructions on the mindcast-server to have the server up and running on your machine.
2 - With the server up and running, go to the /.env.development file and edit the SERVER_URL value for the IP of your machine (you can have some issues with localhost if you're running on an android physical device, but you can use localhost safely on iOS).
It should looks like this:
With all dependencies installed and the environment properly configured, you can now run the app:
$ react-native run-android
$ react-native run-ios
- React-Navigation - Router
- Redux - React State Manager
- Redux-Saga - Side-Effect middleware for Redux
- Axios - HTTP Client
- ESlint - Linter
- React-Native-Dotenv - Configs from .env file
- Flow - Static Type Checker
- Prettier - Code Formatter
- Reactotron - Inspector
- Styled-Components - Styles
- React-Native-Fast-Image - Image Loader
- React-Native-Linear-Gradient - Gradient Styles
- React-Native-SplashScreen - Splashscreen of the App
- React-Native-Vector-Icons - Icons
- React-Native-Side-Menu - Side Menu used on Player screen
- React-Native-Swipeout - Swipe for edit/remove playlists and remove podcasts inside some playlist
- React-Native-Video - Consume the audio files via streaming
- React-Native-FS - Handle download/undownload podcasts on file-system
You can send how many PR's do you want, I'll be glad to analyse and accept them! And if you have any question about the project...
Connect with me at LinkedIn
This project is licensed under the MIT License - see the LICENSE.md file for details