Skip to content

bensunan/BenTVLauncher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ben TV Launcher

一个现代化的 Android TV 启动器应用,基于 Material Design 3 设计系统,使用 Jetpack Compose 构建。

技术栈

  • 语言: Kotlin
  • 最低 SDK: 21
  • 目标 SDK: 34
  • JDK: 17
  • UI 框架: Jetpack Compose
  • 设计系统: Material Design 3 (MD3)
  • 架构: MVVM (Model-View-ViewModel)
  • 依赖注入: Hilt
  • 数据持久化: DataStore

🎯 核心功能

1. 🔍 应用发现 (Application Discovery)

  • 自动发现已安装应用 - 实时扫描设备上的所有应用
  • TV 应用识别 - 特别支持 Leanback Launcher 应用
  • 精选应用推荐 - 自动识别流媒体和娱乐应用
  • 应用图标加载 - 显示真实的应用图标
  • 系统/用户应用分类 - 智能分类管理

2. 🚀 应用启动 (Application Launching)

  • 一键启动应用 - 通过包名快速启动
  • 多重启动方式 - 支持标准和 Leanback 启动
  • 错误处理 - 优雅处理应用未找到或启动失败
  • 用户反馈 - Toast 消息提示
  • 本地化错误提示 - 多语言错误消息

3. 🎮 TV 导航 (TV Focused Navigation)

  • 完整 D-Pad 支持 - 所有组件支持遥控器导航
  • 焦点管理 - 自动焦点处理和状态保持
  • 视觉反馈 - 缩放、边框、阴影、发光效果
  • 轮播导航 - 精选应用横向滚动
  • 应用网格 - 高效的 LazyRow 实现
  • 流畅动画 - Spring 弹性动画系统

4. 🌍 国际化支持 (Localization)

  • 多语言支持:
    • 🇺🇸 English (默认)
    • 🇨🇳 简体中文
    • 🇪🇸 Español (西班牙语)
    • 🇫🇷 Français (法语)
  • 完全本地化 - 所有界面文本均已翻译
  • RTL 支持 - 支持从右到左语言
  • 系统语言自动检测

5. 💾 数据持久化 (Data Persistence)

  • 设置存储 - 基于 Jetpack DataStore
  • 主题偏好 - 深色/浅色模式持久化
  • 强调色保存 - 蓝色/绿色/紫色选择
  • 动态颜色设置 - Android 12+ 动态颜色开关
  • 响应式更新 - 使用 Flow 实时响应变化

🎨 设计系统

Material Design 3 + Apple TV 风格

  • 纯黑背景 - Apple TV 标志性的 #000000 背景
  • 深灰卡片 - #1C1C1E, #2C2C2E 优雅色调
  • 白色焦点边框 - 4dp 纯白边框
  • 大圆角 - 16-24dp 现代化圆角
  • 重阴影 - 最高 32dp 的立体阴影
  • 1.15倍缩放 - 焦点时的优雅放大
  • Parallax 视差 - -8dp 浮动效果

📺 TV 优化体验

  • TV 专属组件 (androidx.tv:tv-material)
  • 远距离可读性优化
  • 流畅的焦点动画
  • MD3 运动系统
  • 精选应用轮播
  • 应用网格浏览

🎯 交互特性

  • 遥控器导航优化
  • 实时主题切换
  • 弹性动画 (Spring dampingRatio: 0.75)
  • 焦点状态突出
  • 主题选择器 UI

设计特性

色彩系统

  • 蓝色主题 - 清新专业,适合商务环境
  • 绿色主题 - 舒适自然,适合休闲观看
  • 紫色主题 - 典雅时尚,适合个性化体验
  • 动态颜色 - Android 12+ 系统壁纸取色

排版系统

  • 针对电视远距离观看优化
  • 提升字体大小和行高
  • 增强字母间距以提高可读性
  • 支持完整的 MD3 排版等级

动画系统

  • 符合 MD3 运动系统规范
  • 弹性(Spring)动画增强交互感
  • 流畅的淡入淡出过渡
  • 焦点缩放和发光效果

项目结构

app/
├── src/main/
│   ├── java/com/ben1231/bentvlauncher/
│   │   ├── data/                      # 数据层
│   │   │   └── SettingsDataStore.kt   # 主题偏好设置
│   │   ├── di/                        # 依赖注入模块
│   │   │   └── DataStoreModule.kt
│   │   ├── ui/
│   │   │   ├── component/             # UI 组件
│   │   │   │   ├── AnimatedAppCard.kt     # 增强动画卡片
│   │   │   │   └── ThemeSelector.kt       # 主题选择器
│   │   │   ├── screen/                # 屏幕/页面
│   │   │   │   └── HomeScreen.kt      # 主屏幕 + 设置
│   │   │   └── theme/                 # MD3 主题系统
│   │   │       ├── Theme.kt           # 主题配置
│   │   │       ├── ColorSchemes.kt    # 色彩方案
│   │   │       └── Typography.kt      # 排版系统
│   │   ├── BenTVLauncherApplication.kt
│   │   ├── MainActivity.kt
│   │   └── MainViewModel.kt           # 主题状态管理
│   ├── res/                           # 资源文件
│   └── AndroidManifest.xml
└── build.gradle

构建说明

  1. 使用 Android Studio 打开项目
  2. 等待 Gradle 同步完成
  3. 连接 Android TV 设备或启动模拟器
  4. 点击 Run 按钮

依赖库

  • Jetpack Compose (BOM 2024.02.00)
    • Compose UI
    • Compose Animation
    • Material3
  • AndroidX TV Material (1.0.0-alpha10)
  • Material Design 3 Components (1.11.0)
  • Hilt (2.48) - 依赖注入
  • DataStore Preferences (1.0.0) - 数据持久化
  • Kotlin (1.9.10)

开发环境要求

  • Android Studio Hedgehog 或更高版本
  • JDK 17
  • Gradle 8.2+
  • Android SDK 34
  • Android TV 设备或模拟器(推荐 API 31+)

使用说明

切换主题

  1. 在主屏幕点击右上角的设置按钮(⚙)
  2. 选择深色或浅色模式
  3. 选择您喜欢的强调色(蓝色、绿色、紫色)
  4. 主题会即时应用

导航

  • 方向键 - 在应用之间移动焦点
  • 确认键 - 启动选中的应用
  • 返回键 - 返回或关闭主题选择器

截图预览

应用支持多种主题组合:

  • 深色模式 + 蓝色强调色
  • 浅色模式 + 绿色强调色
  • 深色模式 + 紫色强调色
  • 动态颜色(Android 12+)

技术亮点

Material Design 3 实现

  • 完整的 MD3 色彩系统(primary, secondary, tertiary, error 等)
  • 动态颜色支持(Android 12+)
  • TV 专属的 Surface、Border、Glow 效果

TV 优化

  • 大尺寸文字(适合 3米+ 观看距离)
  • 焦点高亮和边框
  • 流畅的弹性动画
  • D-Pad 导航优化

性能优化

  • State Flow 响应式状态管理
  • DataStore 异步持久化
  • Compose 声明式 UI
  • Hilt 依赖注入优化

未来计划

  • 动态应用列表加载
  • 应用图标显示
  • 搜索功能
  • 最近使用应用
  • 应用分类
  • 壁纸自定义

许可证

MIT License

作者

Ben1231


基于 Material Design 3 设计系统打造 🎨 为 Android TV 优化 📺

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages