https://github.com/nehakushwah993/instagram-feed-compose
Instagram Feed Clone: A Kotlin & Jetpack Compose project that replicates the Instagram feed experience. Features video playback based on screen visibility and customizable feed content through local JSON configuration.
https://github.com/nehakushwah993/instagram-feed-compose
android compose exoplayer instagram-clone json kotlin
Last synced: 9 months ago
JSON representation
Instagram Feed Clone: A Kotlin & Jetpack Compose project that replicates the Instagram feed experience. Features video playback based on screen visibility and customizable feed content through local JSON configuration.
- Host: GitHub
- URL: https://github.com/nehakushwah993/instagram-feed-compose
- Owner: NehaKushwah993
- Created: 2024-08-25T20:27:59.000Z (almost 2 years ago)
- Default Branch: develop
- Last Pushed: 2024-08-28T17:36:47.000Z (almost 2 years ago)
- Last Synced: 2025-09-24T04:40:12.302Z (9 months ago)
- Topics: android, compose, exoplayer, instagram-clone, json, kotlin
- Language: Kotlin
- Homepage:
- Size: 202 KB
- Stars: 4
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# InstagramFeedClone-Compose
Hey! Are you searching for how to play videos like Instagram, TikTok, or LinkedIn in Android?
Look no further! This project provides a solution for:
https://github.com/user-attachments/assets/bdcea9f1-b9bd-4875-a533-a73b71c91d28
**Instagram-Feed-Compose** is a Jetpack Compose-based Android project designed to replicate the Instagram feed experience. If you're looking for an Instagram feed clone that incorporates modern UI practices and efficient media handling, this project is a perfect fit.
## Features
- **Jetpack Compose**: Utilizes Jetpack Compose for a modern, declarative UI approach.
- **ExoPlayer Integration**: Employs ExoPlayer for seamless video playback. Videos play based on their visibility percentage on the screen; videos with more than 30% visibility are played, with the most visible video prioritized.
- **Kotlin**: Developed entirely in Kotlin for a streamlined and robust experience.
- **Customizable Feed**:
- **Feed Data**: Modify the local `feed_data.json` file to include your own video and image links. This enables you to customize the content of the feed to suit your needs.
- **URL-Based Video/Image**:
- **Non-Local Media**: Videos and images themselves are not stored locally; only their URLs are provided in the JSON file. This setup ensures that media is fetched and displayed from external sources, rather than being embedded within the app.
- **AutoPlay Videos
## Setup
1. **Clone the Repository**
```bash
git clone https://github.com/yourusername/Instagram-Feed-Compose.git
```
2. **Open the Project**
Open the project in Android Studio.
3. **Modify Feed Data**
Edit the `feed_data.json` file located in `src/main/assets/` to include your own video and image URLs. Ensure the JSON includes the `aspect_ratio` for each media item to maintain consistent post sizes. This prevents posts from fluctuating in size after loading videos or images.
4. **Build and Run**
Build and run the project on an Android device or emulator.
## Usage
- **Home Feed**: Swipe through the feed to view various media items.
- **Video Playback**: Videos play based on their visible percentage on the screen. The project is configured to play videos with more than 30% visibility. This threshold is controlled by the `minimumVisibilityPercentageRequiredToPlayVideo` variable, and the video that is the most visible will be prioritized for playback.
- **Interactive Elements**: Use the like, comment, and share buttons to interact with the content.
## Contributing
Feel free to submit pull requests or open issues if you have suggestions or improvements. Contributions are welcome!
## Upcoming Improvements
Stay tuned for more enhancements and features that are on the way!
## License
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.