CCloud
Android movie streaming application — completely free and ad-free.
Install / Use
/learn @code3-dev/CCloudREADME
CCloud - Movie & TV Series Streaming Application
<p align="center"> <img src="app/src/main/res/drawable/splash_logo.png" alt="CCloud Logo" width="150"/> </p> <div align="center"> <!-- Downloads --> <img src="https://img.shields.io/github/downloads/code3-dev/CCloud/total?label=Downloads&style=for-the-badge" alt="Downloads Badge"> <!-- Main language --> <img src="https://img.shields.io/github/languages/top/code3-dev/CCloud?color=blue&label=Kotlin&style=for-the-badge" alt="Language"> <!-- License --> <img src="https://img.shields.io/github/license/code3-dev/CCloud?style=for-the-badge" alt="License"> <!-- Stars --> <img src="https://img.shields.io/github/stars/code3-dev/CCloud?style=for-the-badge" alt="Stars"> <!-- Issues --> <img src="https://img.shields.io/github/issues/code3-dev/CCloud?style=for-the-badge" alt="Issues"> <!-- Build Status --> <img src="https://img.shields.io/github/actions/workflow/status/code3-dev/CCloud/build-appshare.yml?label=Build&style=for-the-badge" alt="Build Status"> <!-- Min Android Version --> <img src="https://img.shields.io/badge/Android-7.0%2B-green?style=for-the-badge&logo=android" alt="Min Android"> <!-- UI Toolkit --> <img src="https://img.shields.io/badge/UI-Jetpack%20Compose-purple?style=for-the-badge" alt="Jetpack Compose"> </div>CCloud is a modern Android streaming application built with Jetpack Compose and Kotlin. The app provides a sleek user interface for browsing movies and TV series, playing videos, and customizing the viewing experience. With a focus on user experience and performance, CCloud delivers high-quality streaming content in an intuitive and visually appealing interface.
📦 Download Latest CCloud APKs
<div align="center"> </div>🚀 Key Features
🎬 Content Discovery
- Browse Movies & Series: Attractive grid layout for discovering content
- Powerful Search: Search across both movies and TV series with real-time results
- Detailed Information: Comprehensive details for each movie and series including ratings, genres, and descriptions
▶️ Media Playback
- Custom Video Player: Built with ExoPlayer for smooth video playback
- Multiple Quality Options: Choose from various quality options for playback and download
- Download Options: Multiple download methods including browser, ADM, and VLC
- Fullscreen Experience: Optimized landscape mode for immersive viewing
❤️ Favorites Management
- Save Content: Add movies and series to your favorites list
- Quick Access: Easily access your saved content from the Favorites screen
- Organize: Remove items from favorites with individual delete options
- Bulk Actions: Clear all favorites with a single action
🎨 Personalization
- Theme Customization: Light, dark, and system themes with color options
- Subtitle Settings: Customize subtitle appearance (background, text color, border, size)
- Responsive UI: Material Design 3 interface that adapts to all screen sizes
📱 User Experience
- Intuitive Navigation: Bottom navigation for mobile/tablet and sidebar navigation for TV
- Error Handling: Retry mechanisms for failed requests
- Loading States: Shimmer loading animations for smooth user experience
- Season & Episode Management: Easy navigation through TV series seasons and episodes
📺 Android TV Support
- Optimized Layout: Sidebar navigation for better TV experience
- Full Screen Support: Content fills the entire TV screen
- Remote Control Navigation: D-pad optimized navigation
- Cross-Platform Compatibility: Works on mobile, tablet, and TV with adaptive UI
🛠️ Tech Stack
- Kotlin - Primary programming language
- Jetpack Compose - Modern toolkit for building native UI
- ExoPlayer - Media playback library
- Kotlin Serialization - JSON serialization
- Coil - Image loading library
- Material Design 3 - UI components and design system
- Navigation Component - For seamless screen transitions
- ViewModel & LiveData - For state management
- Coroutines - For asynchronous operations
- OkHttp - For network requests
- Leanback - Android TV support library
🏗️ Architecture
The app follows a clean architecture pattern with the following components:
- UI Layer - Jetpack Compose screens and components
- Data Layer - Models and repositories for data management
- Domain Layer - Business logic and use cases
- Utils - Helper classes and extensions
- Navigation - Single-activity architecture with Compose Navigation
- State Management - ViewModel for UI state handling
📱 Supported Android Versions
CCloud supports Android 8.0 (API level 24) and higher. The app is optimized for:
- Android 8.0 - 16 (API levels 24-36)
- Android TV devices
- Tablets and large-screen devices
Compatibility Notes
- Android 6.0 and earlier: Not supported due to Jetpack Compose limitations
- Android 7.0+: Full feature support with optimal performance
- Android TV: Specialized UI with remote control navigation
Getting Started
Prerequisites
- Android Studio Ladybug or later
- Android SDK API 36 (Android 16)
Installation
-
Clone the repository:
git clone https://github.com/code3-dev/CCloud.git -
Open the project in Android Studio
-
Build and run the project
Building
To build the debug APK:
./gradlew assembleDebug
To build the release APK:
./gradlew assembleRelease
Fixing Gradle Wrapper Issues
If you encounter Gradle wrapper validation errors (especially in CI/CD environments), you can fix them using the provided scripts:
On Unix/Linux/macOS:
./scripts/fix-gradle-wrapper.sh
On Windows:
scripts\fix-gradle-wrapper.bat
You can also verify the integrity of the Gradle wrapper:
On Unix/Linux/macOS:
./scripts/verify-gradle-wrapper.sh
On Windows:
scripts\verify-gradle-wrapper.bat
These scripts will regenerate the Gradle wrapper checksums which are required for validation.
Project Structure
app/
├── src/
│ ├── main/
│ │ ├── java/com/pira/ccloud/
│ │ │ ├── components/ # Reusable UI components
│ │ │ ├── data/ # Data layer
│ │ │ │ ├── model/ # Data models (Movie, Series, etc.)
│ │ │ │ └── repository/ # Data repositories
│ │ │ ├── navigation/ # Navigation graph and components
│ │ │ ├── screens/ # Compose screens
│ │ │ ├── ui/ # UI components and theme
│ │ │ │ ├── movies/ # Movie-specific UI components
│ │ │ │ ├── search/ # Search-specific UI components
│ │ │ │ ├── series/ # Series-specific UI components
│ │ │ │ └── theme/ # Theme definitions and management
│ │ │ ├── utils/ # Utility classes
│ │ │ ├── MainActivity.kt # Main application activity
│ │ │ └── VideoPlayerActivity.kt # Video player activity
│ │ └── res/ # Resources
│ │ ├── drawable/ # Drawable resources
│ │ ├── values/ # Default resources
│ │ ├── values-television/ # TV-specific resources
│ │ └── ... # Other resources
│ └── test/ # Unit tests
├── build.gradle.kts # App build configuration
└── ...
Key Components
Video Player
The app features a custom video player built with ExoPlayer that supports:
- Play/Pause controls
- Progress seeking
- Subtitle customization
- Fullscreen landscape mode
Settings
Users can customize their experience through the settings screen:
- Theme mode (Light/Dark/System)
- Primary and secondary color selection
- Subtitle settings (colors and text size)
📱 App Screens
🎬 Movies Screen
- Browse latest movies in an attractive grid layout
- Pull-to-refresh functionality
- Infinite scrolling for loading more content
- Error handling with retry option
- Shimmer loading animations
📺 Series Screen
- Browse TV series with comprehensive information
- Season and episode organization
- Pull-to-refresh and infinite scrolling
- Error handling with retry option
❤️ Favorites Screen
- View all saved movies and series in one place
- Individual item deletion
- Bulk deletion of all favorites
- Direct navigation to content details
- Visual indicators for content type and ratings
🔍 Search Screen
- Real-time search across movies and series
- Instant results as you type
- Error handling with retry button
- Clear search functionality
📄 Single Movie Screen
- Detailed movie information
- Multiple quality options for playback
- Download options (Browser, ADM, VLC)
- Custom video player integration
- Add/remove from favorites
📺 Single Series Screen
- Comprehensive series details
- Season navigation and episode listing
- Multiple quality options per episode
- Download options for each episode
- Error handling with retry functionality
- Add/remove from favorites
⚙️ Settings Screen
- Theme customization (Light/Dark/System)
- Primary and secondary color selection
- Subtitle settings (colors and text size)
- Reset to default options
🏠 Navigation
The app uses adaptive navigation:
- Mobile/Tablet: Bottom navigation bar for switching between screens
- TV: Sidebar navigation for better remote control experience
📺 Android TV Remote Control Guide
Navigation Controls
- D-Pad (Arrow Keys): Navigate between UI elements, scroll through lists, and move focus
- Select (OK) Button: Confirm selections, open items, play/pause media
- Back Button: Navigate to p
