Flutter圈子Flutter中文社区Flutter

开源分享一个 Flutter 混开带 Git 只读功能的阅读器

2020-05-07  本文已影响0人  悟笃笃

1 WReader

一个功能简单、页面简陋、却又实用的带 Git 只读功能的阅读器。提供私有 Git 仓库克隆,分支、标签检出与切换等功能,主要用于阅读 Markdown 笔记与其它文件(支持导出与其它 App 打开)。
支持 Github 、GitLab、Gitblit 或其他 Git 裸仓库等私有仓库的 Clone ,鉴权信息仅保存在本地数据库,仅在 Clone 、Pull 与 Fetch 使用到。支持 https://xxx.gitssh://xxx.gitgit@xxx.git 等格式。

WReader

Github 地址 :https://github.com/Bottlezn/wreader
gitee 仓库地址,我会定期更新的 : https://gitee.com/tea_too_tea_too/wreader

最新 Release 版本下载地址:

1.1 功能图示

1.2 功能列表

  1. 从远程私人 Git 仓库中 Clone 项目到本地,支持使用密钥对与账户密码检出,暂不支持无鉴权方式的检出。一次 Clone 之后无需在输入鉴权信息。
  2. 从 Remote 中检出 Branch 或者 tag 到本地 Branch,切换本地分支时不需要网络,因为 WReader 不会自动帮你 Pull。
  3. 自由 Pull 那些从 远程 Branch 中检出的本地 Branch ,tag 行不通哦。同时带有 Fetch 功能。
  4. 支持亮暗模式自由切换,无论是在设置页面还是阅读页面都可全局切换亮暗模式。
  5. 自动转换仓库中的本地图片,笔记中的图片不需要在带有一个外网地址啦。
  6. 使用 strapdown JS 库与 bootstrap CSS 主题提供较为美观的阅读体验。
  7. 提供最近阅读功能,在仓库文件列表与阅读记录中均带有搜索功能。
  8. 也可长按文件使用手机自带 App 打开文件,同时也支持导出文件哦。 导出后会提示导出目录
  9. 还提供 国际化环境切换 、 无效仓库清除 、 配置文件导入 等功能。
  10. 不提供本地编辑功能哦。

1.3 快速使用

建议使用 json 文件导入的方式来 Clone 项目。

1.4 注意事项

  1. WReader 暂不支持 iOS 设备。因为本人主要做 Android 开发,最近学了几天 iOS 发现搞不定 Objective-Git 的导入与使用。所以源码中的 WReaderHostiOS 只是一个集成了 Flutter Module 的空架子。有兴趣的朋友可以一起参与哦,算是抛砖引玉吧。之后我打算在业余时间努力研究一下 Flutter 调用 C 库 libgit2 的方法,争取在 Android&iOS 双端或更多端中用 Native 代码来实现 Git 的功能。
  2. 本 App 是本人自发需求,自己设计功能与 UI 、并自我测试的一个 App 。如有幸有很多朋友使用,那在这过程中肯定会有很多问题出现。在 App 的设置页面有日志收集功能,大家遇到问题可以其到该页面找找看。
  3. 其他尚未发现的问题,欢迎评论指出。我的邮箱:wdu_udw@163.com
  4. 如果你喜欢 WReader ,欢迎点赞评论支持哦。

2 项目引入

  1. Clone 项目:git clone git@github.com:Bottlezn/wreader.git
  2. 目前 v0.1 版本的 tag 是 v0.1。切换到该 tag,git chekout -b fromTag/v0.1 v0.1
  3. 假设根路径是 $ROOT_DIRcd $ROOT_DIR/wreader_flutter_module ,在 terminal 中运行
    flutter pub get
    flutter create .
    
  4. Android 项目 WReaderHostAndroid 直接使用 AndroidStudio 打开即可。
  5. iOS 项目 WReaderHostiOS 需要在 WReaderHostiOS 目录下运行 pod install之后再打开,我的 XCode 版本是 11 。

2.1 大概设计思路

WReader 是我在业余时间一点点设计、开发出来的:

  1. 绝大部分页面都是使用 Flutter 开发实现,下文不说明的页面均是 Flutter 页面。
  2. 阅读笔记 与 图片浏览 页面是使用 Android 原生开发的。另外 Android 端的 Git 功能是使用 JGit 库。
  3. Markdown 文件的解析使用 WebView 加载本地 Html 并搭配 strapdown.js ,将 Markdown 文件解析为 Html格式,再使用 bootstrap 与 jQuery 等 js 库 与 css 来渲染。
  4. iOS 端建议使用 Objective-Git 或者 libgit2 库来实现的 iOS 端的 Git 功能,关于笔记方面参考 Android 端的 WebView 渲染也 OK 。

3 鸣谢

感谢公司小伙伴: 赟赟小姐姐俊俊小哥哥 给予我的在 H5 与 iOS 上的帮助。

使用到的开源库,٩(๑ᵒ̴̶̷͈᷄ᗨᵒ̴̶̷͈᷅)و棒棒哒

flutter 部分:

Android 部分:

Html 部分:

iOS 部分:

还有一些遗漏的库与热心老哥的分享文章,再次感谢!。

上一篇下一篇

猜你喜欢

热点阅读