Youtube clone using Kotlin Multiplatform. It supports the Android,iOS, Web and Desktop Application.
YouTube Clone KMP is a sophisticated project developed using Kotlin Multiplatform (KMP), enabling the creation of versatile applications across Android, iOS, Web, and Desktop platforms with shared code. This comprehensive YouTube clone mirrors the functionalities of the official YouTube app, offering a seamless user experience across various devices. A Better Version of Original App (A Big Bold Claim).
If you wanna contribute, Please make sure to add new features & Then make a PR.Feel free to contribute to the project and stay tuned for more exciting updates!
Do you wanna Convert your thoughts into Physicall & Successfull Project Then I'm here for you. I'm open to work, available for Freelance or Remote Work Opportunities. Feel free to reach me out on Email.
1.9.23
8.2.2
1.6.2
androidx-appcompat
: 1.6.1
androidx-activityCompose
: 1.9.0
compose-uitooling
: 1.6.7
composeImageLoader
: 1.7.1
composeIcons
: 1.1.0
12.1.0
kotlinx-coroutines
: 1.8.0
kotlinx-serialization
: 1.6.3
kotlinx-datetime
: 0.5.0
coilNetwork
: 3.0.0-alpha01
ktor
: 2.3.9
koin
: 3.5.4
compose-uitooling
: 1.6.3
composeIcons
: 1.1.0
media3Ui
: 1.3.1
media3ExoplayerDash
: 1.3.1
media3Exoplayer
: 1.3.1
napier
: 2.6.1
sql-delight
: 2.0.1
webview-kmp
: 1.8.0
json
: 1.6.3
buildConfig
: 4.1.1
kamelImage
: 0.9.4
size
: 0.3.1
1.0.0
moko-mvvm
: 0.16.1
vlcj
: 4.7.0
ffmpegPlatform
: 4.1-1.4.4
22-ea+16
To use the app, follow these steps:
Create YouTube API V3 credentials:
Add the credentials to composeApp/src/kotlin/com/company/app/utils/
:
Constant.kt
file in your project.API_KEY=Your_API_VALUE
, replacing Your_API_VALUE
with the API key generated in step 1.Ensure API Key Security:
Integrate API Key into the App:
BuildConfig.API_KEY
variable in your code to access the API key securely. (Removed for Now, due to some bugs)Start Using the App:
Feel free to reach out if you have any questions or need further assistance!
Let's chat about potential projects, job opportunities, or any other collaboration! Feel free to connect with me through the following channels:
If you find my work helpful, you can support me by
local.properties
file to the project root and set a path to Android SDK thereTo run the application on android device/emulator:
To build the application bundle:
./gradlew :composeApp:assembleDebug
.apk
file in composeApp/build/outputs/apk/debug/composeApp-debug.apk
Run the desktop application: ./gradlew :composeApp:run
To run the application on iPhone device/simulator:
iosApp/iosApp.xcproject
in Xcode and run standard configurationRun the browser application: ./gradlew :composeApp:jsBrowserDevelopmentRun
to create Native Distributable for the Desktop Windows, MacOS, Linux. We need to follow the procedure.
'First of all following inside the 'build.gradle.kts' ' compose.desktop { application { mainClass = "MainKt"
nativeDistributions {
targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
packageName = "org.company.app.desktopApp"
packageVersion = "1.0.0"
description = "YouTube Clone Using Kotlin Multiplatform"
copyright = "© 2024 Muhammad Khubaib Imtiaz. All rights reserved."
windows {
iconFile.set(project.file("src/commonMain/resources/youtube_music.png"))
}
macOS {
iconFile.set(project.file("src/commonMain/resources/youtube_music.png"))
}
linux {
iconFile.set(project.file("src/commonMain/resources/youtube_music.png"))
}
}
} }'
Now simply run the command 'gradle createDistributable or ./gradlew createDistributable'
We welcome contributions to the YouTube Clone project! To contribute, please follow these guidelines:
We expect all contributors and users of the YouTube Clone project to adhere to our code of conduct. Please review the Code of Conduct for details on expected behavior and reporting procedures.
Here's a brief overview of our project roadmap:
Join our community to connect with other users and contributors:
We'd like to thank the following individuals and organizations for their contributions to the YouTube Clone project:
Here are some frequently asked questions about the YouTube Clone project:
How do I run the application on Android?
Can I contribute to the project if I'm new to Kotlin Multiplatform?
To optimize performance in the YouTube Clone project, consider the following tips: