Skip to content

lxchx/lightdao

Repository files navigation

氢岛 (lightdao)

一个轻量的、跨平台的 NMBXD 第三方客户端。

本项目是一个基于 Flutter 构建的非官方 NMBXD 论坛客户端,旨在提供一个简洁、流畅、多功能的论坛浏览体验。

⚠️ 注意

本项目使用 Flutter 构建,具备跨平台能力。但目前仅 Android 端 经过了较为充分的测试,其他平台(iOS, Web, 桌面端)可能存在未知问题,仅作为技术预览或实验性支持。

🏛️ 项目架构解析

本项目已接入 DeepWiki,你可以访问下方链接查看由 AI 自动生成的项目架构图、文件关系、流程图等详细解析。

在 DeepWiki 中查看项目解析

✨ 功能特性

  • 基础功能: 具备完整的论坛浏览、串查看、回复、时间线收藏和内容过滤等基础功能。

  • 特色功能:

    • 只看PO: 支持在串内只看原PO的回复,快速浏览关键信息。
    • 原图模式: 可切换至原图模式,查看未经压缩的高清图片。
    • 引用展开: 在回复列表中直接内联展开被引用的内容,无需跳转。
  • 界面与主题:

    • Material 3 设计: 采用最新的 Material Design 3 设计语言。
    • 高度自定义主题: 支持 Material 3 动态取色,并可高度自定义主题颜色和夜间模式(含AMOLED纯黑模式)。
    • 宽屏优化: 针对平板和桌面端等宽屏设备,自动切换为更高效的多栏布局。
    • 个性化图标: 内置多款应用图标供用户选择。

🛠️ 技术栈

🚀 快速开始

请确保你已经安装并配置好了 Flutter SDK

1. 克隆项目

git clone https://github.com/lxchx/lightdao.git
cd lightdao-temp

2. 初始化子模块

本项目依赖 git submodules,请运行以下命令来初始化它们:

git submodule update --init --recursive

3. 安装依赖

在项目根目录下运行,获取所有 Dart/Flutter 依赖包:

flutter pub get

4. 生成代码

项目中使用 build_runner 来生成部分必要的代码(例如 *.g.dart 文件)。请运行:

flutter pub run build_runner build --delete-conflicting-outputs

5. 首次构建特别说明 (重要)

由于 Flutter 的一个已知问题,在 首次编译或调试 Android 版本 时,可能会遇到编译失败。

解决方法一:(推荐) 执行脚本

项目提供了自动化脚本来处理此问题。根据你的需要执行:

  • 首次 Debug 构建: bash ./scripts/first-build.sh --debug
  • 首次 Release 构建: bash ./scripts/first-build.sh --local

解决方法二:手动修改

  1. 打开 android/app/src/main/AndroidManifest.xml 文件。
  2. 找到被 build-first-time-comment 注释包围的内容。
  3. 将这部分内容 反注释 (即移除注释符号 <!---->)。
  4. 进行一次成功的编译。
  5. 成功编译后,务必将这部分内容重新注释掉,否则应用会显示两个图标。

6. 运行与构建

  • 运行开发版本:

    flutter run
  • 构建发布版本:

    # 构建 Android APK
    flutter build apk --release
    
    # 构建 Android App Bundle (用于上架 Google Play)
    flutter build appbundle --release
    
    # 构建 iOS 应用
    flutter build ios --release
    
    # 构建 Web 应用
    flutter build web
    
    # 构建其他桌面平台 (macos, windows, linux)
    flutter build <platform> --release

📂 目录结构

.
├── android/          # Android 原生项目代码
├── assets/           # 应用所需的静态资源 (如图标、图片)
├── ios/              # iOS 原生项目代码
├── lib/              # Flutter 应用核心代码
│   ├── data/         # 数据模型、常量和数据源
│   ├── main.dart     # 应用主入口
│   ├── ui/           # UI 界面和组件
│   └── utils/        # 工具类和辅助函数
├── macos/            # macOS 原生项目代码
├── packages/         # 本地依赖包
├── scripts/          # 构建和格式化脚本
├── test/             # 测试代码
├── web/              # Web 项目相关文件
├── windows/          # Windows 原生项目代码
└── pubspec.yaml      # 项目配置文件,包含依赖、版本等信息

🤝 如何贡献

欢迎提交 Pull Request 或 Issue 来帮助改进项目。

About

一个基于Flutter的nmbxd第三方客户端

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors