# cnblogs-app **Repository Path**: Austims/cnblogs-app ## Basic Information - **Project Name**: cnblogs-app - **Description**: 基于flutter的博客园app - **Primary Language**: Dart - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-13 - **Last Updated**: 2026-06-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 博客园 Cnblogs App 使用 Flutter 开发的博客园跨端阅读器,支持 Android / iOS / Web / Windows。 ## 功能 - 浏览博客园首页、精选、新闻文章 - 查看文章详情,HTML 原生渲染 - 本地收藏 (支持离线查看) - 明/暗主题切换 - 下拉刷新 - 分享文章 ## 技术栈 | 类别 | 技术 | |---|---| | 框架 | Flutter 3.22+ | | 状态管理 | Riverpod 2.x | | 路由 | go_router 14.x | | RSS 解析 | webfeed 0.7 | | HTML 渲染 | flutter_widget_from_html_core | | 本地存储 | shared_preferences | | 平台集成 | url_launcher, share_plus, connectivity_plus | ## 数据源 使用博客园公开 RSS 订阅 (Atom 1.0 格式): - 首页: `https://feed.cnblogs.com/blog/sitehome/rss` - 精选: `https://feed.cnblogs.com/pick/rss` - 新闻: `https://feed.cnblogs.com/news/rss` ## 快速开始 ### 前置要求 - Flutter SDK >= 3.22.0 - Dart SDK >= 3.4.0 ### 安装 Flutter SDK **Windows (推荐):** ```bash # 方式一: 手动下载 # 1. 访问 https://docs.flutter.dev/get-started/install/windows # 2. 下载 flutter_windows_*.zip # 3. 解压到 C:\src\flutter # 4. 添加 C:\src\flutter\bin 到系统 PATH # 方式二: winget winget install Google.Flutter ``` **macOS:** ```bash brew install --cask flutter ``` **验证安装:** ```bash flutter doctor -v ``` ### 运行项目 ```bash # 进入项目目录 cd C:\Software\Project\AiProject # 安装依赖 flutter pub get # Web 运行 (推荐首次验证) flutter run -d chrome # Windows 桌面运行 flutter run -d windows # Android 运行 (需模拟器或真机) flutter run # 运行测试 flutter test ``` ## 项目结构 ``` lib/ ├── main.dart # 入口 ├── app.dart # MaterialApp 配置 ├── core/ # 核心层 (常量/主题/错误) │ ├── constants/ # API URL, App 常量 │ ├── theme/ # 颜色/字体/主题 │ ├── errors/ # 异常和 Failure 类 │ └── utils/ # 日期格式/HTML 清洗 ├── data/ # 数据层 │ ├── datasources/ # 远程 RSS + 本地书签 │ ├── mappers/ # Atom → BlogPost 映射 │ └── repositories/ # 仓储实现 ├── domain/ # 领域层 │ ├── entities/ # BlogPost, FeedType │ └── repositories/ # 抽象接口 └── presentation/ # 表现层 ├── providers/ # Riverpod Provider ├── screens/ # 页面 ├── widgets/ # 组件 └── routes/ # GoRouter 路由 ``` ## License MIT