Giter Club home page Giter Club logo

tiktokclone's Introduction

MasterHeader

Download APK

Download the latest version of the app: Download APK

TikTok Clone

Welcome to the repository for my TikTok clone, a mobile application designed to emulate the essential features of the popular social media platform, TikTok. This project showcases my expertise in mobile app development using Flutter and demonstrates advanced techniques in real-time data handling with Supabase, employing clean architecture principles and state management with Flutter Bloc.

Features

Video Streaming: Users can watch videos on the "For You" and "Following" pages with smooth playback.

Clean Architecture: The app is structured using clean architecture, ensuring scalability, maintainability, and testability.

Flutter Bloc: Utilizes Flutter Bloc for efficient state management across different app modules.

Technologies Used

Flutter: For crafting high-quality cross-platform mobile applications.
Supabase: Backend service used for real-time database interactions, authentication, and storage.
Dart: The programming language used alongside Flutter.

Project Structure

For You Page: Displays a stream of videos tailored to user preferences.
Following Page: Shows videos from followed users.
Profile Page: Allows users to manage their profile and view their own video uploads.

Getting Started

Prerequisites
You will need the following tools installed on your machine:

Flutter 3.19.3
Dart 3.3.1
An IDE (VSCode, Android Studio, or IntelliJ)
Installation
Clone the repository:

bash
git clone https://github.com/DevLuiscode/tiktokclone.git
cd tiktok-clone
Install dependencies:
flutter pub get

Configure Supabase:

Create a new project in Supabase.

Configure the database using schema.sql.

scheme

Set up your unique Supabase URL and anonymous key in the Flutter app.
Create an env.json file in the root path:
{
 "supabase-url": "",
 "supabase-key": ""
}
Have the .vscode folder in the main root, then create a launch.json file and have this configuration (this configuration is to safely handle the apikys):
{
 "version": "0.2.0",
 "configurations": [
     {
         "name": "Launch",
         "request": "launch",
         "type": "dart",
         "program": "lib/main.dart",
         "args": [
             "--dart-define-from-file",
             "env.json"
         ]
     }
 ]
}

Architecture

This project adheres to clean architecture guidelines, which are structured as follows:

Data Layer: Manages data transactions and transformations to and from the database.

Domain Layer: Contains business logic and entities.

Presentation Layer: Comprises UI components and state management handled by Flutter Bloc.

Contributions

Feel free to contribute to this project! Fork the repository and submit pull requests with the proposed changes is for educational use.

tiktokclone's People

Contributors

lucadevv avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.