Giter Site home page Giter Site logo

jlongguo / flutter_novel Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lwlizhe/flutter_novel

0.0 0.0 0.0 21.21 MB

仿追书神器,具有仿真、滑动和滚动翻页、字体大小、行高、背景、目录等功能的Flutter 阅读APP

License: BSD 3-Clause "New" or "Revised" License

Kotlin 0.10% Swift 0.11% Objective-C 0.01% Dart 99.78%

flutter_novel's Introduction

前言

如果想自己编译,建议flutter环境使用最新的stable分支(我目前使用的是stable分支的1.12.13+hotfix.5),由于项目中使用了较新的技术点,所以如果是老版本的环境应该会因为找不到类或者方法而报错。

另外……ios因为没设备,所以也不知道具体是否正常,讲道理应该没啥问题的。plugin,代码这块也是基本的flutter代码,应该没什么特殊的…………

本人也是在不断摸索学习flutter中,所以这个项目中存在的错误或者低性能部分,还请不吝提issue或者pr。

总之,欢迎pr、fork、star,或者在issue区中提出有意义的意见或者建议。

体验demo:

Android:戳我

IOS: em,这个木有

注:部分书的章节内容显示为:加载出错,这个是因为网络问题,或者追书神器api并没返回内容导致的

顺便提一下:

多图流量警告!

效果图

在优化上下了很大功夫的,注意看顶部上面的性能分析,绝大部分操作的绘制都不会超过16ms,纵享丝滑

书库

书库-无书 书库-有书

搜索页

搜索页

详情页

详情页

阅读页

设置-仿真翻页 章节内页面跳转 上一章和下一章 目录页 设置-字体大小 设置-行高 设置-覆盖翻页 设置-滚动翻页 设置-背景

核心技术点(非UI)简单概括

整体架构:

  1. 基于provider的实现的mvvm**的模板框架

书库页:

  1. 数据库sqflite使用

搜索页

  1. rxdart的一种小小应用

详情介绍页

  1. 可以折叠展开的text
  2. 主题色随图片

阅读页(核心)

  1. Flutter中textPainter的使用,包含绘制、测量等.
  2. canvas的使用.
  3. 三种翻页动画(左右仿真翻页、上下滑动翻页、覆盖翻页)的实现.
  4. 离线缓存
  5. sharedPreference、屏幕亮度等用户设置内容。
  6. stream的一种小小应用
  7. dart中协程以及flutter的isolate的一些使用方法
  8. 一种超低耦合的listView按index跳转的方式(目录页)

里程碑(暂定)

未实现的部分:

  1. 排行榜
  2. 书评
  3. 下载
  4. 本地书籍导入、wifi传书等其他导入书籍方式
  5. 非txt格式的数据支持
  6. 网页抓包处理解析(用于解析网页而非接口获取的书籍信息)
  7. 音量键翻页
  8. 语言读书,自动翻页

特别感谢

flutter_app(追书神器的接口以及介绍页来自于这个项目)

BookPage(阅读页的实现思路参考自这个项目)

免责声明

本项目仅用于研究学习,请勿用于商业,否则后果与本人无关。

flutter_novel's People

Contributors

lwlizhe avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.