The unofficial mobile companion for Saco Cheio TV's podcast platform, built with React Native and Expo.
This is an unofficial mobile app for the Saco Cheio TV podcast platform.
Since the platform doesn't provide an official mobile application and only distributes episodes through RSS feeds, I decided to build a dedicated mobile app that allows fans to listen to the podcast while keeping the visual identity of the platform.
The entire UI of this application was designed by me using Figma, which was quite a challenge since I'm not a designer.
You can see the original UI design here:
https://www.figma.com/file/7LuyM5VZsCj6kYRgQiNyaD/sacocheio-tv-app
This project was mainly created as an excuse to learn new technologies and step out of my comfort zone.
This repository hosts the source code for an unofficial mobile application designed to provide a seamless listening experience for the Saco Cheio TV podcast platform. Developed with React Native and Expo, the app offers a native-like interface for browsing, playing, and managing podcast episodes, allowing fans to enjoy their favorite content on the go.
- π§ Podcast Playback: Listen to episodes with a dedicated audio player, complete with controls for play/pause, seek, and track progression.
- π Episode Browsing: Navigate through a comprehensive list of Saco Cheio TV podcast episodes.
- π± Intuitive Navigation: Smooth user experience powered by React Navigation.
- π¨ Custom Theming: Supports different visual themes for personalized aesthetics (e.g., dark/light mode).
- π‘ API Integration: Fetches podcast data from the Saco Cheio TV platform's API.
- π Background Audio: Potentially supports background audio playback for uninterrupted listening.
- π‘οΈ Type-Safe Development: Built with TypeScript for enhanced code quality and maintainability.
Follow these steps to get the development environment set up and run the app locally.
- Node.js: LTS Version (e.g., 18.x or 20.x)
- Yarn: Package manager
- Expo CLI: Install globally (
npm install -g expo-clioryarn global add expo-cli) - A mobile device or emulator/simulator: To run the app.
-
Clone the repository
git clone https://github.com/Vitor-Carmo/app-sacocheio-tv.git cd app-sacocheio-tv -
Install dependencies
yarn install
This project primarily uses app.json for configuration and doesn't explicitly rely on .env files for basic setup. Ensure app.json contains appropriate settings for your development environment if you intend to customize app metadata.
- Start the Expo development server
yarn start
- Open your app
- On a physical device: Scan the QR code displayed in your terminal or browser with the Expo Go app.
- On iOS Simulator: Press
iin the terminal. - On Android Emulator: Press
ain the terminal. - In Web Browser: Press
win the terminal (for web preview, though primarily a mobile app).
app-sacocheio-tv/
βββ assets/ # Static assets (images, fonts, app icon, splash screen)
βββ src/ # Main application source code
β βββ components/ # Reusable UI components
β βββ context/ # React Context providers (e.g., AudioPlayerContext)
β βββ hooks/ # Custom React hooks
β βββ routes/ # React Navigation setup and navigators
β βββ screens/ # Application screens/pages (e.g., Home, Player, Episodes)
β βββ services/ # API integration and data fetching logic (e.g., api.ts)
β βββ themes/ # Theming configuration and styles
β βββ types/ # TypeScript type definitions
β βββ utils/ # Utility functions and helpers
βββ App.tsx # Main application entry point
βββ app.json # Expo application configuration
βββ babel.config.js # Babel configuration for JavaScript/TypeScript transpilation
βββ eas.json # Expo Application Services (EAS) configuration for builds
βββ metro.config.js # Metro Bundler configuration for React Native
βββ package.json # Project metadata and dependencies
βββ tsconfig.json # TypeScript configuration
βββ yarn.lock # Yarn dependency lock file
The app.json file contains crucial configuration for your Expo project, including:
name: Display name of the app.slug: Unique identifier for the app in Expo.version: Current version of the app.orientation: Screen orientation (e.g., portrait).icon: Path to the app icon.splash: Configuration for the app's splash screen.ios,android: Platform-specific configurations.
The eas.json file configures builds and submissions using Expo Application Services (EAS). It defines different build profiles (e.g., development, preview, production) and their respective settings for:
- Platform (iOS, Android).
- Build type (development, production).
- Environment variables.
- Credentials.
The package.json defines several convenient scripts for development:
| Command | Description |
|---|---|
yarn start |
Starts the Expo development server and opens the app. |
yarn android |
Opens the app on a connected Android device/emulator. |
yarn ios |
Opens the app on a connected iOS device/simulator. |
yarn web |
Runs the app in a web browser (experimental for mobile apps). |
yarn eject |
Ejects the Expo project to a bare React Native workflow. |
yarn test |
Runs the test suite using Jest. |
- Ensure prerequisites are installed.
- Start the development server using
yarn start. - Develop components and screens within the
src/directory. - Utilize Expo Go on your mobile device or an emulator/simulator for real-time preview and debugging.
The project is configured for unit and component testing using Jest and react-test-renderer.
# Run all tests
yarn test
# Run tests in watch mode
yarn test --watch
# Run a specific test file
yarn test -- YourFileName.test.tsxThis project uses Expo Application Services (EAS) for building and deploying mobile applications to app stores.
To create a production build for iOS or Android, you would typically use the eas build command, configured via eas.json.
# Install EAS CLI globally if not already installed
npm install -g eas-cli
# Login to your Expo account
eas login
# Build for Android
eas build --platform android --profile production
# Build for iOS
eas build --platform ios --profile productionRefer to the EAS documentation for detailed setup and deployment guides.
This project is currently archived and contributions are not actively being accepted. However, you are welcome to fork the repository, experiment with the code, and use it as a reference for your own projects.
Should the project become active again, a CONTRIBUTING.md file will be added with specific guidelines.
This project is currently UNLICENSED. For details, please refer to the license field in the package.json file.
- React Native & Expo: For providing a powerful framework and platform for mobile development.
- Saco Cheio TV: For their podcast content that inspired this application.
- All dependencies listed in
package.jsonthat make this project possible.
- π Issues: Report bugs or suggest features via GitHub Issues.
- π€ Author: Vitor Carmo
β Star this repo if you find it helpful!
Made with β€οΈ by Vitor Carmo