πŸŽ‚ GeburtstagskanalApp

Android-App zum Finden und Teilen von Geburtstagsvideos

Übersicht

Eine native Android-App zum Durchsuchen und Teilen von Geburtstagsvideos von YouTube. Die App bietet Live-Suche, eingebetteten YouTube-Player und spezifische Share-Optionen fΓΌr WhatsApp, Facebook, Instagram. Ein integriertes lokales Werbevideo kann auf einen Onlineshop verlinken.

Technologie-Stack

Kotlin Hauptprogrammiersprache
Android SDK API 24-34 (Android 7.0+)
Room Database Lokale SQLite-Datenbank
YouTube Player Eingebettete Video-Wiedergabe
MVVM LiveData, ViewModel, Repository
Material Design 3 Modernes UI-Framework

Hauptfunktionen

  • πŸ” **Live-Suche**: Echtzeit-Suche nach Namen wΓ€hrend des Tippens
  • πŸ“± **YouTube Player**: Geburtstagsvideos direkt in der App ansehen
  • πŸ›οΈ **Werbevideo**: Lokales MP4-Video fΓΌr Onlineshop-Promotion
  • πŸ“€ **Smart Sharing**: WhatsApp, Facebook, Instagram, URL kopieren
  • πŸ’Ύ **Room Database**: Lokale Speicherung der YouTube-Links
  • 🎨 **Material Design 3**: Modernes, responsives UI
  • ⚑ **Coroutines**: Asynchrone Datenverarbeitung

Projektstruktur

geburtstagskanalapp/
β”œβ”€β”€ app/src/main/java/com/geburtstag/kanalapp/
β”‚   β”œβ”€β”€ MainActivity.kt          # Hauptbildschirm mit Suche
β”‚   β”œβ”€β”€ VideoPlayerActivity.kt   # Player + Werbevideo + Sharing
β”‚   β”œβ”€β”€ data/
β”‚   β”‚   β”œβ”€β”€ BirthdayVideo.kt         # Entity (name, youtubeUrl)
β”‚   β”‚   β”œβ”€β”€ BirthdayVideoDao.kt      # Room DAO
β”‚   β”‚   β”œβ”€β”€ BirthdayVideoDatabase.kt # Room Database
β”‚   β”‚   └── BirthdayVideoRepository.kt
β”‚   β”œβ”€β”€ viewmodel/
β”‚   β”‚   └── BirthdayVideoViewModel.kt
β”‚   └── adapter/
β”‚       └── BirthdayVideoAdapter.kt
β”œβ”€β”€ res/layout/
β”‚   β”œβ”€β”€ activity_main.xml
β”‚   β”œβ”€β”€ activity_video_player.xml
β”‚   └── item_birthday_video.xml
β”œβ”€β”€ res/raw/
β”‚   └── add_app.mp4          # Lokales Werbevideo
└── build.gradle.kts         # Android Gradle + Dependencies
                

Key Dependencies

Kotlin 1.9.0 Android Gradle 8.1.0 Room 2.6.1 KSP Lifecycle 2.7.0 Coroutines 1.7.3 YouTube Player 12.1.0 Material Design 1.11.0

Datenmodell

@Entity(tableName = "birthday_videos")
data class BirthdayVideo(
    @PrimaryKey(autoGenerate = true)
    val id: Int = 0,
    val name: String,
    val youtubeUrl: String
) {
    fun getYoutubeVideoId(): String {
        // Extrahiert Video-ID aus:
        // youtu.be/xxx, youtube.com/watch?v=xxx,
        // youtube.com/embed/xxx
    }
}
                

Status

FunktionsfΓ€hig

App enthΓ€lt 3 Testvideos (Anna, Max, Lisa). Bereit fΓΌr Erweiterung mit weiteren Geburtstagsvideos. Werbevideo-Integration fΓΌr Shop-Verlinkung konfigurierbar.