163 lines
5.2 KiB
Markdown
163 lines
5.2 KiB
Markdown
PIKAPIKA - 漫画客户端
|
|
========
|
|
[![license](https://img.shields.io/github/license/niuhuan/pikapika)](https://raw.githubusercontent.com/niuhuan/pikapika/master/LICENSE)
|
|
[![releases](https://img.shields.io/github/v/release/niuhuan/pikapika)](https://github.com/niuhuan/pikapika/releases)
|
|
[![downloads](https://img.shields.io/github/downloads/niuhuan/pikapika/total)](https://github.com/niuhuan/pikapika/releases)
|
|
|
|
- 美观易用且无广告的漫画客户端, 能运行在Windows/MacOS/Linux/Android/IOS中。
|
|
- 本仓库仅作为学习交流使用, 请您遵守当地法律法规以及开源协议。
|
|
- 您的star和issue是对开发者的莫大鼓励, 可以源仓库下载最新的源码/安装包, 表示支持/提出建议。
|
|
- 源仓库地址 [https://github.com/niuhuan/pikapika](https://github.com/niuhuan/pikapika)
|
|
|
|
## 界面 / 功能
|
|
|
|
![阅读器](images/reader.png)
|
|
|
|
### 分流
|
|
|
|
VPN->代理->分流, 这三个功能如果同时设置, 您会在您手机的VPN上访问代理, 使用代理请求分流服务器。
|
|
|
|
### 漫画分类/搜索
|
|
|
|
![分类](images/categories_screen.png) ![列表](images/comic_list.png)
|
|
|
|
### 漫画阅读/下载/导入/导出
|
|
|
|
您可以在除IOS外导出任意已经完成的下载到zip, 从另外一台设备导入。 导出的zip解压后可以直接使用其中的HTML进行阅读
|
|
|
|
![导出下载](images/exporting.png)
|
|
|
|
![HTML预览](images/exporting2.png)
|
|
|
|
### 游戏
|
|
|
|
![games](images/games.png)
|
|
![game](images/game.png)
|
|
|
|
## 特性
|
|
|
|
- [x] 用户
|
|
- [x] 登录 / 注册 / 获取个人信息 / 自动打卡
|
|
- [x] 漫画
|
|
- [x] 分类 / 搜索 / 随机本子 / 看此本子的也在看 / 排行榜
|
|
- [x] 在分类中搜索 / 按 "分类 / 标签 / 创建人 / 汉化组" 检索
|
|
- [x] 漫画详情 / 章节 / 看图 / 将图片保存到相册
|
|
- [x] 收藏 / 喜欢
|
|
- [x] 获取评论 / 评论 / 评论回复 (社区评论后无法删除, 请谨慎使用)
|
|
- [x] 游戏
|
|
- [x] 列表 / 详情 / 无广告下载
|
|
- [x] 下载
|
|
- [x] 导入导出 / 无线共享 / 移动设备与PC设备传输
|
|
- [ ] 聊天室
|
|
- [x] 缓存 / 清理
|
|
- [x] 设备支持
|
|
- [x] 安卓
|
|
- [x] 高刷新频率屏幕适配 (90/120/144... Hz)
|
|
- [x] 安卓10以上随系统进入深色/夜间模式
|
|
|
|
## 其他说明
|
|
|
|
- 在ios/android环境 数据文件将会保存在程序自身数据目录中, 删除就会清理
|
|
- 在 windows 数据文件将会保存在程序同一目录
|
|
- 在 macos 数据文件将会"~/Library/Application Support/pikapika"
|
|
- 在 linux 数据文件将会"~/.pikapika"
|
|
|
|
## 运行 / 构建
|
|
|
|
这个应用程序使用golang和dart(flutter)作为主要语言, 可以兼容Windows, linux, MacOS, Android, IOS
|
|
|
|
使用了不同的框架桥接到桌面和移动平台上
|
|
|
|
- go-flutter => Windows / MacOS / Linux
|
|
- gomobile => Android / IOS
|
|
|
|
![平台](images/platforms.png)
|
|
|
|
### 开发环境准备
|
|
|
|
- [golang](https://golang.org/) (1.16以上版本)
|
|
- [flutter](https://flutter.dev/) (2.5.3)(flutter不同版本api差异较大,建议使用同样版本)
|
|
|
|
### 环境配置
|
|
|
|
- 将~/go/bin ($GoPath/bin) 设置到PATH环境变量内
|
|
- golang开启模块化
|
|
- 设置GoProxy (可选,在中国大陆网络建议设置)
|
|
- 参考地址 [https://goproxy.cn/](https://goproxy.cn/)
|
|
|
|
### 桌面平台 (go-flutter)
|
|
|
|
- [安装hover(go-flutter编译脚手架)](https://github.com/go-flutter-desktop/hover)
|
|
```shell
|
|
GO111MODULE=on go get -u -a github.com/go-flutter-desktop/hover
|
|
# 或
|
|
go install github.com/go-flutter-desktop/hover@latest
|
|
```
|
|
- 安装gcc
|
|
```shell
|
|
# Windows需要安装MSYS(mingw-w64-x86_64-gcc), 并将gcc路径设置到PATH环境变量内
|
|
# MacOS需要安装XCode
|
|
# Linux使用命令行安装gcc
|
|
```
|
|
- 执行编译命令 ($system替换为windows/darwin等)
|
|
```shell
|
|
hover run
|
|
hover build $system
|
|
```
|
|
|
|
### Linux的附加说明
|
|
|
|
- linux编译可能会遇到的问题
|
|
```shell
|
|
# No package 'gl' found
|
|
sudo apt install libgl1-mesa-dev
|
|
# X11/Xlib.h: No such file or directory
|
|
# 或者更多x11的头找不到等
|
|
sudo apt install xorg-dev
|
|
```
|
|
- 字体不显示
|
|
```shell
|
|
# 将字体文件复制到项目目录下
|
|
mkdir -p fonts
|
|
cp -f /usr/share/fonts/truetype/droid/DroidSansFallbackFull.ttf fonts/
|
|
```
|
|
```yaml
|
|
# 编辑 pubspec.yaml
|
|
fonts:
|
|
- family: Roboto
|
|
fonts:
|
|
- asset: fonts/DroidSansFallbackFull.ttf
|
|
```
|
|
|
|
### 移动端 (gomobile)
|
|
|
|
- 编译环境
|
|
```shell
|
|
# 安卓环境需要安装AndroidSDK, 并且安装platforms以及ndk, 配置 ANDROID_HOME
|
|
# IOS需要安装xcode以及CocoaPods
|
|
gem install cocoapods
|
|
```
|
|
- [安装gomobile](https://github.com/golang/mobile)
|
|
```shell
|
|
go install golang.org/x/mobile/cmd/gomobile@latest
|
|
```
|
|
- 执行编译命令 (bind-android.sh/bind-ios.sh根据平台选择, $system替换为apk/ipa等)
|
|
```shell
|
|
cd go/mobile
|
|
go get golang.org/x/mobile/cmd/gobind
|
|
sh bind-ios.sh
|
|
sh bind-android.sh
|
|
cd ../../
|
|
flutter build $system
|
|
```
|
|
|
|
## 请您遵守使用规则
|
|
|
|
本软件或本软件的拓展, 个人或企业不可用于商业用途, 不可上架任何商店
|
|
|
|
拓展包括但是不限于以下内容
|
|
|
|
- 使用本软件进行继续开发形成的软件。
|
|
- 引入本软件部分内容为依赖/参考本软件/使用本软件内代码的同时, 包含本软件内一致内容或功能的软件。
|
|
- 直接对本软件进行打包发布
|