By the way, give this Md2All a thumbs up.

preface

If you want to build your own, it is recommended that the flutter environment use the latest stable (I am currently using stable 1.12.13+hotfix.5). Since the project uses a relatively new technology, an older version of the environment should report an error because it cannot find classes or methods.

In addition… Ios because there is no device, so do not know whether the specific normal, reasonable should have no problem. Plugin, the code block is also the basic flutter code. Should there be nothing special about the flutter code …………

I am also constantly exploring and learning about FLUTTER, so please do not hesitate to mention the issue or PR for errors or low performance in this project.

In short, welcome pr, fork, star, or meaningful comments or suggestions in the Issue section.

By the way:

Multi-graph traffic warning!

The effect

Performance Overlay page is now open on the Reading page to show Performance optimization results.

Library – No books


The library. – There are books

Search page:

Search page

Details page:

Details page

Read page:

Settings – Emulation page turning


The page is displayed in the section


The previous chapter and the next chapter


Page directory


Settings – Font size


Setting – Line height


Settings – Override page turning


Settings – Scroll pages


Settings – Background

Summary of core technical points (not UI)

Overall structure:

  1. Provider-based implementation of MVVM thought template framework

Library page

  1. Database sqflite is used

Search page

  1. A small use of RXDART

Details Page

  1. Collapsible expanded text
  2. Theme color comes with the picture

Reading Page (Core)

  1. The use of textPainter in Flutter, including drawing, measurement, etc.
  2. Use of Canvas.
  3. Three kinds of page turning animation (left and right simulation page turning, up and down slide page turning, cover page turning).
  4. Offline caching
  5. SharedPreference, screen brightness and other user Settings.
  6. A small application of Stream
  7. Some uses of the coroutine in DART and the ISOLATE of FLUTTER
  8. An ultra-low coupling listView jump by index

Milestones (tentative)

Unrealized parts:

  1. list
  2. A book review
  3. download
  4. Local book import, wifi book transfer and other ways to import books
  5. Data in non-TXT format is supported
  6. Page capture processing parsing (used to parse pages rather than books retrieved by interfaces)
  7. Volume button to turn pages
  8. Language reading, automatic page turning

Special thanks to

Flutter_app (interface and introduction page from this project) BookPage(implementation ideas for reading page from this project)