- A fast and optimized short-form video player
- The beginning of fun, ShortForm Play!
"“Endless enjoyment in short moments! Easily enjoy short videos with infinite looping playback. Don’t miss out on the latest trends and diverse content. Anytime, anywhere, dive into the world of short-form videos that will make your day more exciting!””
Uses Single Activity + Navigation
for screen structureViewModel
handles state management and separates business logic- DI use (Dependency Injection)로 Hilt
🎬 YouTube-based Short-Form Video Player
- Provides trending videos using the YouTube Data API
- WebView-based YouTube Playerfor video playback
- Supports infinite scrolling and loop playback
- Fast loading speed with Firebase Storage JSON data
- Minimizes API calls using cached data
- Stores up to 500 recently watched videos, deleting older ones once the limit is exceeded
- Like and dislike functionality for content preference management
- MVVM-based Clean Architecture implementation
- Flexible navigation with Single Activity + Navigation
- Monetization via Google AdMob
- Supports banner and interstitial ads
[스크린샷]
- Language: Kotlin (1.9.0)
- Tool: Android Studio Koala Feature Drop | 2024.1.2+
- Gradle: 8.7+
- Target SDK: 34
- Minimum SDK: Android 9.0
Architecture | UI | Data | Environment |
---|---|---|---|
MVVM | jetpack Compose | Co-Routines | tomi |
clean Architecture | Material Design 3 | Retrofit | gradle |
Single Activity | Navigation | Hilt | ktlint |
Modular Retrofit architecture | Coil | OkHttp | |
SharedFlow for communication | DataStore | Firebase | |
Reusable UI components | Lottie | Google Analytics | |
Sharing feature | ViewModel | Crashlytics | |
AdMob | YouTube Data Api | ||
Remote Config |
$ git clone https://github.com/generlists/shortform-play.git
$ cd shortform-play.git
- YouTubeData Api
- The YouTube Data API has a daily limit of 10,000 requests
- Instead of making API calls directly, we preprocess data once daily and store JSON data in Firebase Storage to optimize requests within the quota.
- Like/Dislike actions are fetched from the API but are stored locally.
- The recently watched videos list has a 500-video limit, deleting the oldest video when exceeded.
⚠️ YouTube Data API integration is not covered in this guide.
- WebView-based YouTube Player (per YouTube policy)
- Android YouTube Player Modified Android YouTube Player (MIT-licensed)
- Legacy Fragment-based Player → Future plan to refactor into an independent library
- Uses WebView + Compose integration with AndroidView for flexible UI
- To run the app after cloning the repository, you need to configure the following
ShortForm Play manages JSON data using Firebase Storage.
Follow these steps to set up Firebase and download the google-services.json file:
- AdMob & API Configuration
-
Create a project in Firebase Console
-
Switch to the Blaze plan (5GB free storage)
-
Download the google-services.json file and update the package name (com.sean.ratel.android)
-
Update local.properties with the required environment variables:
FIREBASE_BASE_URL= [https://firebasestorage.googleapis.com](https://firebasestorage.googleapis.com/)
ADMOB_APP_ID=your_admob_app_id
MY_EMAIL_ACCOUNT=your_email@example.com](mailto:MY_EMAIL_ACCOUNT=your_email@example.com)
NOTICE_URL=https://example.com/notice
NOTICE_URL_EN=https://example.com/notice_en
REGAL_URL=https://example.com/privacy
REGAL_URL_EN=https://example.com/privacy_en
- Upload the provided file to Firebase Storage Root Directory:
https://play.google.com/store/apps/details?id=com.sean.ratel.android
For inquiries, please contact us atemail