Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dmamakas2000/tiktok-android-app

A distributed broker-client Android application built to simulate TikTok functionalities, including real-time video streaming, uploading, and playback. Utilizing a custom framework and broker-based communication, the app enables seamless content delivery from creators to subscribers by browsing channels, searching hashtags, and uploading videos.
https://github.com/dmamakas2000/tiktok-android-app

android android-application android-studio client-broker java multimedia streaming

Last synced: 6 days ago
JSON representation

A distributed broker-client Android application built to simulate TikTok functionalities, including real-time video streaming, uploading, and playback. Utilizing a custom framework and broker-based communication, the app enables seamless content delivery from creators to subscribers by browsing channels, searching hashtags, and uploading videos.

Awesome Lists containing this project

README

        

# TikTok Video Streaming Platform: A Distributed Broker-Client Android Application :iphone: :video_camera: :family:


## πŸ“’NoteπŸ“’
🎯Please, clone this repository before reading the description. Don't forget to likeπŸ‘and share your thoughts😊.


## About
This repository contains the second phase of the TikTok Java App project, transitioning from the foundational framework developed in **[Part 1](https://github.com/dmamakas2000/tiktok-java-app/)** to an Android application. The goal is to implement a fully functional Android app that allows users to browse, upload, and play videos in real time while leveraging the framework and algorithms developed earlier. This phase focuses on integrating video streaming and playback functionalities, enabling seamless content delivery from creators to subscribers on Android devices.

## Features
**Real-Time Video Playback:**
- The application streams videos directly from user channels, supporting real-time playback through a custom player built with the Android Framework.

**Channel and Hashtag Browsing:**
- Users can view a list of available channels or search for videos using hashtags.
- If no content is found, the app will display an appropriate message and suggest alternative options.

**Video Uploading:**
- Users can upload videos, either recording them directly through the app or selecting pre-recorded files from their device.

**Broker-Based Communication:**
- The app communicates with a broker node to fetch necessary information when the channel list or search results are initially empty.

**Tabbed Interface:**
- Utilizes Android's Tabbed Activity for seamless navigation between video browsing and uploading sections.

## How It Works
**Main Screen:**
- Displays a list of available channels, allowing users to:
- Select a channel to watch videos.
- Upload videos to their channel.
- Search for videos by hashtags.
- If the list is empty, the app requests information from a broker node.

**Handling Empty Results:**
- If the broker node provides no data after a reasonable wait time, the app displays a "not found" message and suggests alternatives.

**Video Playback:**
- Once the app retrieves video data from the broker, it uses a simple custom player, built with the Android Framework to play the videos.

**Uploading Videos:**
- Users can record videos through the app or select pre-recorded videos for uploading.

## Prerequisites
1. Android Studio: The primary IDE for Android development.
1. Android 5.0 (Lollipop) or later: The minimum required version for running the application.

## Getting Started

1. Clone the repository:
```
git clone https://github.com/dmamakas2000/tiktok-android-app.git
cd tiktok-android-app
```

1. Open the project in Android Studio.
1. Sync the Gradle files to install all dependencies.
1. Run the application on an emulator or Android device.

## Directory Structure
```
tiktok-android-app/
β”‚
β”œβ”€β”€ app/
β”‚ β”œβ”€β”€ src/
β”‚ β”‚ β”œβ”€β”€ main/
β”‚ β”‚ β”‚ β”œβ”€β”€ java/ # Core application logic (Java source code)
β”‚ β”‚ β”‚ β”œβ”€β”€ res/ # Android resources (layouts, drawables, etc.)
β”‚ β”‚ β”‚ └── AndroidManifest.xml # Application configuration
β”‚ β”‚ └── test/ # Unit tests
β”‚ β”‚
β”‚ └── build.gradle # App-specific Gradle build configuration
β”‚
β”œβ”€β”€ gradle/ # Gradle wrapper files
β”‚ └── wrapper/
β”‚ β”œβ”€β”€ gradle-wrapper.jar
β”‚ └── gradle-wrapper.properties
```

## License
This project is licensed under the **MIT License** - see the **[LICENSE](LICENSE)** file for details.