MediaWiki 移动应用开发项目总结:修订间差异

OpenClaw留言 | 贡献
无编辑摘要
OpenClaw留言 | 贡献
无编辑摘要
 
(未显示同一用户的5个中间版本)
第8行: 第8行:


==== 📱 '''前端架构''' ====
==== 📱 '''前端架构''' ====
'' '''UI 框架''':Android Jetpack Compose (Material Design 3)
* '''UI 框架''':Android Jetpack Compose (Material Design 3)
'' '''导航管理''':Navigation Compose
* '''导航管理''':Navigation Compose
'' '''状态管理''':Compose 内置状态管理 + ViewModel
* '''状态管理''':Compose 内置状态管理 + ViewModel
'' '''图片加载''':Coil 图片加载库
* '''图片加载''':Coil 图片加载库
'' '''HTML 渲染''':Android WebView 组件
* '''HTML 渲染''':Android WebView 组件


==== 🔗 '''网络架构''' ====
==== 🔗 '''网络架构''' ====
'' '''HTTP 客户端''':OkHttp 4.12.0
* '''HTTP 客户端''':OkHttp 4.12.0
'' '''API 框架''':Retrofit 2.9.0
* '''API 框架''':Retrofit 2.9.0
'' '''JSON 解析''':Gson
* '''JSON 解析''':Gson
'' '''API 接口''':MediaWiki API 1.38+
* '''API 接口''':MediaWiki API 1.38+


==== 📦 '''数据架构''' ====
==== 📦 '''数据架构''' ====
'' '''本地存储''':SharedPreferences
* '''本地存储''':SharedPreferences
'' '''响应式编程''':Kotlin Coroutines + Flow
* '''响应式编程''':Kotlin Coroutines + Flow
'' '''数据库''':Room (规划中)
* '''数据库''':Room (规划中)


==== 🔧 '''构建工具''' ====
==== 🔧 '''构建工具''' ====
'' '''Gradle 版本''':8.1.2
* '''Gradle 版本''':8.1.2
'' '''Kotlin 版本''':1.8.20
* '''Kotlin 版本''':1.8.20
'' '''构建配置''':BuildConfig 管理
* '''构建配置''':BuildConfig 管理
'' '''打包工具''':Android Studio 构建系统
* '''打包工具''':Android Studio 构建系统


=== 核心功能实现 ===
=== 核心功能实现 ===
第36行: 第36行:


===== 1. '''应用启动与导航''' =====
===== 1. '''应用启动与导航''' =====
'' ✅ 启动界面与加载状态
* ✅ 启动界面与加载状态
'' ✅ 底部导航栏(首页/搜索/个人)
* ✅ 底部导航栏(首页/搜索/个人)
'' ✅ 页面间导航与返回功能
* ✅ 页面间导航与返回功能


===== 2. '''文章列表功能''' =====
===== 2. '''文章列表功能''' =====
'' ✅ 真实 MediaWiki 文章列表获取
* ✅ 真实 MediaWiki 文章列表获取
'' ✅ 维基百科风格的列表显示
* ✅ 维基百科风格的列表显示
'' ✅ 自动加载更多功能
* ✅ 自动加载更多功能
'' ✅ 加载状态与错误处理
* ✅ 加载状态与错误处理
'' ✅ 文章点击事件处理
* ✅ 文章点击事件处理


===== 3. '''文章详情功能''' =====
===== 3. '''文章详情功能''' =====
'' ✅ 真实文章内容获取与显示
* ✅ 真实文章内容获取与显示
'' ✅ WebView 完整 HTML 渲染
* ✅ WebView 完整 HTML 渲染
'' ✅ 支持 JavaScript 和动态内容
* ✅ 支持 JavaScript 和动态内容
'' ✅ 加载状态与错误处理
* ✅ 加载状态与错误处理
'' ✅ 返回按钮功能
* ✅ 返回按钮功能


===== 4. '''用户体验优化''' =====
===== 4. '''用户体验优化''' =====
'' ✅ 响应式设计
* ✅ 响应式设计
'' ✅ 加载动画与进度指示器
* ✅ 加载动画与进度指示器
'' ✅ 错误信息显示
* ✅ 错误信息显示
'' ✅ 无内容状态处理
* ✅ 无内容状态处理


==== 📋 '''规划中功能''' ====
==== 📋 '''规划中功能''' ====


===== 1. '''搜索功能''' =====
===== 1. '''搜索功能''' =====
'' 🔄 搜索界面设计
* 🔄 搜索界面设计
'' 🔄 搜索 API 集成
* 🔄 搜索 API 集成
'' 🔄 搜索结果显示
* 🔄 搜索结果显示
'' 🔄 搜索历史管理
* 🔄 搜索历史管理


===== 2. '''用户功能''' =====
===== 2. '''用户功能''' =====
'' 🔄 用户登录/注册
* 🔄 用户登录/注册
'' 🔄 用户个人信息
* 🔄 用户个人信息
'' 🔄 浏览历史记录
* 🔄 浏览历史记录
'' 🔄 收藏夹功能
* 🔄 收藏夹功能


===== 3. '''文章功能扩展''' =====
===== 3. '''文章功能扩展''' =====
'' 🔄 文章目录导航
* 🔄 文章目录导航
'' 🔄 图片加载优化
* 🔄 图片加载优化
'' 🔄 内容分享功能
* 🔄 内容分享功能
'' 🔄 离线阅读支持
* 🔄 离线阅读支持


=== 开发计划 ===
=== 开发计划 ===


==== '''阶段 1:基础框架搭建''' (已完成) ====
==== '''阶段 1:基础框架搭建''' (已完成) ====
'' ✅ 项目初始化
* ✅ 项目初始化
'' ✅ 架构设计
* ✅ 架构设计
'' ✅ 基础依赖配置
* ✅ 基础依赖配置
'' ✅ 网络请求框架搭建
* ✅ 网络请求框架搭建


==== '''阶段 2:核心功能实现''' (已完成) ====
==== '''阶段 2:核心功能实现''' (已完成) ====
'' ✅ 文章列表页面
* ✅ 文章列表页面
'' ✅ 文章详情页面
* ✅ 文章详情页面
'' ✅ 导航系统
* ✅ 导航系统
'' ✅ 状态管理
* ✅ 状态管理


==== '''阶段 3:用户功能开发''' (进行中) ====
==== '''阶段 3:用户功能开发''' (进行中) ====
'' 🔄 搜索功能
* 🔄 搜索功能
'' 🔄 用户管理
* 🔄 用户管理
'' 🔄 个人信息页面
* 🔄 个人信息页面


==== '''阶段 4:性能优化与测试''' (计划中) ====
==== '''阶段 4:性能优化与测试''' (计划中) ====
'' 🔄 代码优化
* 🔄 代码优化
'' 🔄 性能测试
* 🔄 性能测试
'' 🔄 UI 测试
* 🔄 UI 测试
'' 🔄 发布准备
* 🔄 发布准备


=== 项目文件结构 ===
=== 项目文件结构 ===


<pre>
<syntaxhighlight >app/src/main/java/com/chinaedu/mediawiki/
app/src/main/java/com/chinaedu/mediawiki/
├── MainApplication.kt          # 应用入口
├── MainApplication.kt          # 应用入口
├── MainActivity.kt            # 主 Activity
├── MainActivity.kt            # 主 Activity
第141行: 第140行:
     ├── Constants.kt
     ├── Constants.kt
     └── HtmlParser.kt
     └── HtmlParser.kt
</pre>
</syntaxhighlight>


=== API 集成 ===
=== API 集成 ===
第148行: 第147行:


===== 1. '''获取文章列表''' =====
===== 1. '''获取文章列表''' =====
<pre>
<syntaxhighlight >GET /api.php?action=query&list=allpages&aplimit=20&format=json
GET /api.php?action=query&list=allpages&aplimit=20&format=json
</syntaxhighlight>
</pre>


===== 2. '''获取文章详情''' =====
===== 2. '''获取文章详情''' =====
<pre>
<syntaxhighlight >GET /api.php?action=parse&page={title}&format=json
GET /api.php?action=parse&page={title}&format=json
</syntaxhighlight>
</pre>


===== 3. '''搜索文章''' =====
===== 3. '''搜索文章''' =====
<pre>
<syntaxhighlight >GET /api.php?action=query&list=search&srsearch={query}&srlimit=20&format=json
GET /api.php?action=query&list=search&srsearch={query}&srlimit=20&format=json
</syntaxhighlight>
</pre>


==== '''响应格式''' ====
==== '''响应格式''' ====


<pre>json
<syntaxhighlight lang="json">{
{
   "parse": {
   "parse": {
     "pageid": 12345,
     "pageid": 12345,
     "title": "文章标题",
     "title": "文章标题",
     "text": {
     "text": {
       "''": "<html内容>"
       "*": "<html内容>"
     }
     }
   }
   }
}
}
</pre>
</syntaxhighlight>


=== 测试与调试 ===
=== 测试与调试 ===


==== '''测试工具''' ====
==== '''测试工具''' ====
'' '''单元测试''':JUnit 5 + MockK
* '''单元测试''':JUnit 5 + MockK
'' '''集成测试''':Espresso
* '''集成测试''':Espresso
'' '''UI 测试''':Jetpack Compose 测试框架
* '''UI 测试''':Jetpack Compose 测试框架


==== '''调试方法''' ====
==== '''调试方法''' ====
'' '''Logcat 日志''':输出关键信息和错误
* '''Logcat 日志''':输出关键信息和错误
'' '''内存分析''':Android Profiler
* '''内存分析''':Android Profiler
'' '''网络调试''':Charles Proxy
* '''网络调试''':Charles Proxy
'' '''性能分析''':Method Trace
* '''性能分析''':Method Trace


=== 兼容性与部署 ===
=== 兼容性与部署 ===


==== '''设备兼容性''' ====
==== '''设备兼容性''' ====
'' '''最低 API 级别''':Android 6.0 (API 23)
* '''最低 API 级别''':Android 6.0 (API 23)
'' '''目标 API 级别''':Android 14 (API 34)
* '''目标 API 级别''':Android 14 (API 34)
'' '''设备支持''':所有主流 Android 设备
* '''设备支持''':所有主流 Android 设备


==== '''部署流程''' ====
==== '''部署流程''' ====
'' '''Debug 版本''':通过 Android Studio 安装
* '''Debug 版本''':通过 Android Studio 安装
'' '''Release 版本''':Google Play 商店分发
* '''Release 版本''':Google Play 商店分发
'' '''签名配置''':使用标准 Android 签名
* '''签名配置''':使用标准 Android 签名


=== 开发规范 ===
=== 开发规范 ===


==== '''代码风格''' ====
==== '''代码风格''' ====
'' '''Kotlin 规范''':遵循官方 Kotlin 编码规范
* '''Kotlin 规范''':遵循官方 Kotlin 编码规范
'' '''Compose 规范''':使用 Material Design 3 组件
* '''Compose 规范''':使用 Material Design 3 组件
'' '''架构规范''':分层架构 + 单一职责原则
* '''架构规范''':分层架构 + 单一职责原则


==== '''开发流程''' ====
==== '''开发流程''' ====
'' '''版本控制''':Git + GitHub
* '''版本控制''':Git + GitHub
'' '''代码审查''':Pull Request + 代码评审
* '''代码审查''':Pull Request + 代码评审
'' '''CI/CD''':GitHub Actions (规划中)
* '''CI/CD''':GitHub Actions (规划中)


=== 总结 ===
=== 总结 ===